Skip to content

Configuration

zhiar edited this page May 29, 2026 · 1 revision

Configuration

Apricity is configured entirely through environment variables — there's no config file format to learn. Copy .env.example to .env and edit, or export the variables before launching. Every variable is optional; the defaults match a stock MemPalace install under ~/.mempalace.

Network

Variable Default Purpose
PORT 8765 Port to listen on. The server always binds to 127.0.0.1 (loopback only).

Storage paths

Variable Default Purpose
MEMPALACE_HOME ~/.mempalace Root for all of Apricity's data and the palace.
MEMPALACE_PALACE_DB <HOME>/palace/chroma.sqlite3 The Chroma SQLite backend storing drawer content.
MEMPALACE_KG_DB <HOME>/knowledge_graph.sqlite3 The knowledge-graph SQLite database.
MEMPALACE_INBOX <HOME>/dashboard-inbox Where drafts are staged before filing.
MEMPALACE_VERSIONS <HOME>/dashboard-versions.jsonl Append-only log of deletes (powers Recently deleted).
MEMPALACE_PREFERENCES <HOME>/dashboard-preferences.json Server-side UI preferences (e.g. default sort, auto-delete, notification settings).

The MemPalace bridge (writes)

Variable Default Purpose
MEMPALACE_PYTHON_BIN ~/.local/share/mempalace-venv/bin/python A Python interpreter that can import mempalace. Every write shells out to this; reads go straight to SQLite.

If writes fail with ModuleNotFoundError: No module named 'mempalace', this is the variable to fix — see Troubleshooting.

Authentication

Variable Default Purpose
MEMPALACE_CREDENTIALS <HOME>/dashboard-credentials.json Username + PBKDF2 hash. Written with mode 0600.
MEMPALACE_SESSIONS <HOME>/dashboard-sessions.json Active session tokens. Mode 0600.
MEMPALACE_TOKEN (unset) Optional shared secret for scripted access via the X-Auth-Token header. Coexists with the cookie login.

Password hashing uses PBKDF2-HMAC-SHA256 (200,000 iterations) and sessions default to 12 hours (30 days with "Remember me"). These are built-in constants, not environment variables.

Notifications & history state

Variable Default Purpose
MEMPALACE_SEEN <HOME>/dashboard-seen.json Notification seen-state, synced LAN-wide.
MEMPALACE_WAL_LOG <HOME>/wal/… MemPalace write-ahead log Apricity reads to detect recently-updated memories.
MEMPALACE_RESTORED_DRAWERS <HOME>/dashboard-restored-drawers.jsonl Ledger of restored drawers (so the bell / Updated badge don't misfire on restore).

Behaviour & performance

Variable Default Purpose
MEMPALACE_NO_MINIFY (unset) Set to disable serve-time JavaScript minification (useful for debugging the front-end).

That's the complete set — Apricity reads exactly these environment variables and no others. Anything not listed here is configured in-app (Settings) or is a built-in default.

Example .env

# Network
PORT=8765

# Where MemPalace lives
MEMPALACE_HOME="$HOME/.mempalace"
MEMPALACE_PYTHON_BIN="$HOME/.local/share/mempalace-venv/bin/python"

# Only if your install is non-standard:
# MEMPALACE_PALACE_DB="$MEMPALACE_HOME/palace/chroma.sqlite3"
# MEMPALACE_KG_DB="$MEMPALACE_HOME/knowledge_graph.sqlite3"

# Optional scripted-access secret:
# MEMPALACE_TOKEN=some-long-random-string

All of Apricity's own state (drafts, snapshots, credentials, sessions, preferences) lives under $MEMPALACE_HOME next to the palace data, so a single backup of that directory captures everything.

Next: API Reference.

Clone this wiki locally