Skip to content

Configuration

Atomic has two kinds of configuration:

  • Server configuration - command-line flags and environment variables that control how atomic-server starts.
  • Runtime settings - key-value settings stored in the registry or data database and editable through the UI/API.
Terminal window
atomic-server [GLOBAL_OPTIONS] <COMMAND>
Global options:
--data-dir <path> Directory containing registry.db and data databases
--db-path <path> Deprecated; use --data-dir
Commands:
serve Start the HTTP server
token Manage API tokens
Terminal window
atomic-server --data-dir ./data serve \
--bind 0.0.0.0 \
--port 8080 \
--public-url https://atomic.example.com \
--setup-token "$ATOMIC_SETUP_TOKEN"
FlagEnv VarDefaultDescription
--port8080Port to listen on
--bind127.0.0.1Address to bind to
--public-urlPUBLIC_URLunsetPublic URL used for OAuth/MCP discovery
--storageATOMIC_STORAGEsqliteStorage backend: sqlite or postgres
--database-urlATOMIC_DATABASE_URLunsetPostgres connection string when using Postgres
--setup-tokenATOMIC_SETUP_TOKENunsetToken required to claim a fresh instance through the setup UI
--dangerously-skip-setup-tokenATOMIC_DANGEROUSLY_SKIP_SETUP_TOKENfalseInsecurely allow first-run setup claims without a setup token

Use --bind 0.0.0.0 only when the server should accept connections from outside the host or container network. Put it behind a reverse proxy for public deployments. Set ATOMIC_SETUP_TOKEN before using the setup UI on a fresh server:

Terminal window
export ATOMIC_SETUP_TOKEN="$(openssl rand -base64 24)"

--dangerously-skip-setup-token is intended only for trusted development environments. With that flag enabled, any client that can reach an unclaimed server can claim it.

The token command must point at the same data directory or storage backend as the server:

Terminal window
atomic-server --data-dir ./data token create --name "my-laptop"
atomic-server --data-dir ./data token list
atomic-server --data-dir ./data token revoke <token-id>

For Postgres:

Terminal window
ATOMIC_STORAGE=postgres \
ATOMIC_DATABASE_URL=postgres://user:pass@host:5432/atomic \
atomic-server token list

Runtime settings are available through:

  • The Settings UI
  • GET /api/settings
  • PUT /api/settings/{key}
  • SQLite/Postgres direct inspection for operators

Important settings include:

KeyPurpose
provideropenrouter, ollama, or OpenAI-compatible provider selection
embedding_modelOpenRouter embedding model
tagging_modelOpenRouter tagging model
wiki_modelWiki and briefing model
chat_modelChat model
auto_tagging_enabledEnables or disables automatic tagging
ollama_hostOllama server URL
openai_compat_base_urlOpenAI-compatible API base URL
task.daily_briefing.enabledEnables scheduled briefings
task.daily_briefing.interval_hoursBriefing interval
task.draft_pipeline.enabledEnables scheduled draft pipeline processing

Inspect SQLite settings:

Terminal window
sqlite3 databases/registry.db "SELECT key, value FROM settings;"

Atomic uses a registry database plus one or more data databases. Global settings and API tokens live in the registry. Atoms, tags, chunks, wiki articles, conversations, feeds, and briefings live in data databases.

For multi-database deployments, background jobs and per-database state are isolated by database. See Multi-Database.

Public endpoints useful for operations:

  • GET /health
  • GET /api/docs
  • GET /api/docs/openapi.json

Authenticated status endpoints:

  • GET /api/embeddings/status
  • GET /api/embeddings/status/all
  • GET /api/logs