Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Environment variable overrides

Strip the FOGWALL_ prefix, lowercase, and replace _ with . to get the config path.

Environment VariableConfig pathExample
FOGWALL_CONFIG_PROFILES(meta — not a config key)docker-default,ldap
FOGWALL_SERVER_PORTserver.port9090
FOGWALL_SERVER_APPROVAL_MODEserver.approvalModeui
FOGWALL_SERVER_SERVICE_URLserver.serviceUrlhttps://fogwall.example.com/dashboard
FOGWALL_DATABASE_TYPEdatabase.typepostgres
FOGWALL_DATABASE_URLdatabase.urljdbc:postgresql://...
FOGWALL_DATABASE_HOSTdatabase.hostdb.internal
FOGWALL_DATABASE_POOL_MAXIMUMPOOLSIZEdatabase.pool.maximum-pool-size3
FOGWALL_DATABASE_POOL_MINIMUMIDLEdatabase.pool.minimum-idle1
FOGWALL_DATABASE_POOL_CONNECTIONTIMEOUTdatabase.pool.connection-timeout30000
FOGWALL_SERVER_SESSIONSTOREserver.session-storejdbc
FOGWALL_SERVER_REDIS_HOSTserver.redis.hostredis.cluster.local
FOGWALL_SERVER_REDIS_PORTserver.redis.port6379
FOGWALL_SERVER_ALLOWEDORIGINSserver.allowed-originshttps://dashboard.example.com
FOGWALL_PROVIDERS_GITHUB_ENABLEDproviders.github.enabledfalse
FOGWALL_PROVIDERS_<NAME>_URIproviders.<name>.urihttps://gitlab.corp.com

Complex nested structures (URL rules, full commit validation blocks) are not overridable via env vars. Use YAML profile files instead.

Hyphenated keys and provider names

Available since v1.3.0.

The single-underscore rule above can’t produce a hyphen — there’s no way to write providers.gitea-ssh.api-token as an env var name if every _ is a path separator. For a config key or a provider name that itself contains a hyphen, use the double-underscore convention instead (same idea as systemd, Kubernetes, and Docker Compose): __ is the path separator, and a lone _ becomes a hyphen.

Environment VariableConfig path
FOGWALL_PROVIDERS__GITEA_SSH__API_TOKENproviders.gitea-ssh.api-token
FOGWALL_SERVER__SESSION_STOREserver.session-store

This only activates when the env var name contains __ — every existing single-underscore example above still works unchanged, since none of them contain __.