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.tomlcan also be set via an env override (see the order below).
Resolution order
Highest priority first - the first place a value is found wins:
EDDYTOR__SECTION__KEYenv override - double-underscore maps to aconfig.tomlpath. e.g.EDDYTOR__SERVER__PUBLIC_URL=https://app.example.comoverrides[server] public_url.$EDDYTOR_CONFIG_FILE- the file at this path, if set../eddytor.toml- in the working directory./etc/eddytor/config.toml.- 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