EddytorDocs & API

Where config lives

config.toml vs environment variables, and the exact resolution order Eddytor uses.

Eddytor reads its settings from two places: config.toml for non-secret operator settings (public URL, CORS, …) and environment variables for secrets (database URL, encryption key, SMTP/OAuth credentials). Knowing the resolution order tells you exactly which value wins.

config.toml vs env

  • config.toml - non-secret settings. The installer downloads it into your install directory and the compose file mounts it. The shipped file documents every section and field inline.
  • Environment - secrets and per-deploy overrides. Anything in config.toml can also be set via an env override (see the order below).

Resolution order

Highest priority first - the first place a value is found wins:

  1. EDDYTOR__SECTION__KEY env override - double-underscore maps to a config.toml path. e.g. EDDYTOR__SERVER__PUBLIC_URL=https://app.example.com overrides [server] public_url.
  2. $EDDYTOR_CONFIG_FILE - the file at this path, if set.
  3. ./eddytor.toml - in the working directory.
  4. /etc/eddytor/config.toml.
  5. Built-in defaults.

Good to know

The EDDYTOR__SECTION__KEY form is how the Helm chart and compose inject overrides without editing the file. Note the double underscores between segments.

Changes need a restart

Config is read at boot, not hot-reloaded:

docker compose restart                              # Compose
kubectl -n eddytor rollout restart deploy/eddytor-server   # Kubernetes

Next

On this page