Configuration reference

The annotated .env.example from the repository, in full. Copy it to .env and edit what you need — every value has a working default.

# Mind Archive — example configuration
#
# Copy this file to .env and edit it:
#
#     cp .env.example .env
#
# Every setting below has a safe default. You can run Mind Archive without
# changing anything here.
#
# .env is git-ignored. Never commit it, and never put a real secret in
# .env.example.

# ---------------------------------------------------------------
# Where your archive is stored
# ---------------------------------------------------------------

# The folder that holds your conversations and documents.
# Relative paths are resolved from the repository root.
MIND_ARCHIVE_DATA_DIR=./data

# A folder Mind Archive watches for exports. Drop a ChatGPT export in and it
# imports itself.
#
# Leave this empty for `data/inbox`, a folder Mind Archive owns — it tidies
# imported files into `imported/` so an empty inbox means everything is in.
#
# Or point it at a folder you already keep exports in. Mind Archive then reads
# only .zip and .json files there and leaves your files exactly where they are,
# keeping a small ledger of what it has already imported.
MIND_ARCHIVE_INBOX_DIR=

# Leave imported files where they are instead of tidying them into `imported/`.
# Only relevant for the default folder; a folder you chose is never tidied.
MIND_ARCHIVE_INBOX_KEEP_FILES=false

# What the interface calls that folder when it tells you where your
# conversations were saved.
#
# Leave this empty unless you are running in Docker. Docker Compose sets it
# automatically: inside the container the archive is at /data, but on your
# machine it is ./data, and being sent to a folder that does not exist on your
# computer helps nobody.
MIND_ARCHIVE_DISPLAY_DATA_DIR=

# ---------------------------------------------------------------
# The API server
# ---------------------------------------------------------------

MIND_ARCHIVE_API_HOST=0.0.0.0
MIND_ARCHIVE_API_PORT=8000

# Extra logging while developing. Turn this off for normal use.
MIND_ARCHIVE_DEBUG=false

# How much the application logs: debug, info, warning, error
# Note: log messages never contain your conversation content.
MIND_ARCHIVE_LOG_LEVEL=info

# Which web origins may call the API, comma-separated.
# The default allows only the local frontend. Widen this only if you
# understand the consequence — the API has no authentication.
MIND_ARCHIVE_CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173

# ---------------------------------------------------------------
# Cloud storage — optional, and off
# ---------------------------------------------------------------
#
# Mind Archive is local-first. Nothing is ever uploaded anywhere unless you
# turn this on deliberately. No cloud adapter exists yet; this setting is
# here so the application can tell you plainly that cloud is disabled.
#
# Leave this as false unless you know you want it.

MIND_ARCHIVE_CLOUD_ENABLED=false

# Where your data lives: local | cloud | both
MIND_ARCHIVE_STORAGE_MODE=local

# ---------------------------------------------------------------
# The web interface
# ---------------------------------------------------------------

# The port the interface is served on.
WEB_PORT=5173

# Where the interface looks for the API.
# Anything prefixed VITE_ is visible in the browser — never put a secret here.
VITE_API_BASE_URL=http://localhost:8000

# The project website. Everything about money lives there, never in the
# application (LICENSING.md, decision D-038) — the Support panel links out to
# it and nothing more.
#
# The default is the local Jekyll server, so the link works while you are
# developing. Preview the site with:
#
#   docker run --rm -p 4000:4000 -v "$PWD/docs:/srv/jekyll" \
#     jekyll/jekyll:4 jekyll serve --host 0.0.0.0
#
VITE_SITE_URL=http://localhost:4000