Skip to content

Environment variables

Advanced reference for headless / container configuration. Most day-to-day tunables live in the Settings UI (SQLite). Env vars wire the process, supply secrets at bootstrap, and act as fallbacks when a UI value is empty.

Precedence for fallbacks: saved Settings value wins over env, which wins over built-in default (unless noted).

Container / entrypoint

Variable Default Effect
CONFIG_PATH /config SQLite, blobs, backups, session key
PUID / PGID 1000 Container user/group for /config ownership
TZ unset Schedules and log timestamps
BACKEND_URL http://localhost:8080 Frontend → backend (set by entrypoint if empty)
FRONTEND_BACKEND_API_KEY random if unset Shared API key; also seeds api.key when empty
MAX_BACKEND_HEALTH_RETRIES 30 Entrypoint health wait
MAX_BACKEND_HEALTH_RETRY_DELAY 1 Seconds between health probes

Frontend (Node)

Variable Default Effect
PORT 3000 HTTP listen port
BACKEND_URL required in split deploys Backend base URL
FRONTEND_BACKEND_API_KEY required Injected as x-api-key for authenticated proxy
TRUST_PROXY off 1/true/yes — honor proxy forwarded headers
SECURE_COOKIES unset true for HTTPS-only UI (recommended behind TLS)
SESSION_KEY file under CONFIG_PATH Stable cookie signing secret
SESSION_MAX_AGE ~1 year (seconds) Session lifetime
DISABLE_FRONTEND_AUTH false true disables UI login (dangerous)
LOG_LEVEL info (prod) Frontend log verbosity
VITE_ALLOWED_HOSTS unset Dev/build host allowlist
NZBDAV_VERSION / NZBDAV_COMMIT_SHA image build Version display

Backend (.NET)

Variable Default Effect
ASPNETCORE_URLS from hosting Backend listen URLs
CONFIG_PATH /config Same as above
LOG_LEVEL Information Serilog minimum level
LOG_BUFFER_SIZE 2000 In-memory log buffer for UI (100–50000)
STREAM_TRACE_EVENTS 0 (off) Opt-in stream trace capacity; local scripts set 20000
TRUSTED_PROXY_CIDRS loopback Comma-separated IPs/CIDRs trusted for forwarded headers
DISABLE_WEBDAV_AUTH unset Disables WebDAV auth (dangerous)
USENET_DISABLE_CRC_VALIDATION since 0.8.0 unset 1 skips yEnc CRC checks (emergency)
THREADPOOL_MIN_THREADS max(2×CPU, 50) Override min worker/IOCP threads
THREADPOOL_MAX_THREADS max(50×CPU, 1000) Override max threads
MAX_REQUEST_BODY_SIZE 100 MiB Max request body bytes
NZBDAV_VERSION 0.0.0 Reported app version
DOTNET_DbgEnableMiniDump off Opt-in crash dumps — Logs

Settings fallbacks (when UI empty)

Variable Related setting Default if both empty
FRONTEND_BACKEND_API_KEY API Key required
CATEGORIES Categories audio,software,tv,movies
NZB_GRAB_USER_AGENT User Agent / retrieve UA nzbdav/{version}
NZB_SEARCH_USER_AGENT Search User-Agent nzbdav/{version}
TRUSTED_INTERNAL_HOSTS since 0.8.0 Trusted local hosts none
MOUNT_DIR Rclone Mount Directory /mnt/nzbdav
WEBDAV_USER WebDAV User admin
WEBDAV_PASSWORD WebDAV Password none (hashed when set)
RESOLUTION_CACHE_TTL_HOURS since 0.8.0 Search link lifetime 168
DATABASE_HISTORY_RETENTION_DAYS History retention 90
DATABASE_HEALTHCHECK_RETENTION_DAYS Health-check retention 30
DATABASE_MAINTENANCE_INTERVAL_HOURS Retention sweep cadence 6

Example Compose snippet

environment:
  PUID: "1000"
  PGID: "1000"
  TZ: America/New_York
  TRUST_PROXY: "1"
  SECURE_COOKIES: "true"
  TRUSTED_INTERNAL_HOSTS: "prowlarr"

Security

Never enable DISABLE_FRONTEND_AUTH or DISABLE_WEBDAV_AUTH on a network-exposed instance. Prefer TLS + strong WebDAV passwords + SECURE_COOKIES=true.