Skip to content

Environment Variables

All configuration is supplied via environment variables. No config files need to be edited manually — the setup wizard and admin UI write to /app/config/appsettings.Production.json automatically.

Database

VariableRequiredDefaultDescription
SETUP_DB_HOSTYesPostgreSQL hostname or IP
SETUP_DB_PORTNo5432PostgreSQL port
SETUP_DB_NAMEYesDatabase name
SETUP_DB_USERNAMEYesDatabase user
SETUP_DB_PASSWORDYesDatabase password

First-run admin account

Providing these variables skips the setup wizard entirely and configures the app on first boot.

VariableRequiredDescription
SETUP_ADMIN_EMAILYes (for auto-setup)Admin account email address
SETUP_ADMIN_PASSWORDYes (for auto-setup)Admin account password — must meet complexity requirements (8+ chars, uppercase, digit)
SETUP_ADMIN_DISPLAY_NAMENoDisplay name shown in the UI (defaults to email if omitted)

TIP

If you omit the SETUP_* variables, the app starts in setup-wizard mode and walks you through configuration in the browser. Either approach works — env vars are more convenient for Docker/automated deployments.

Application

VariableExampleDescription
ASPNETCORE_ENVIRONMENTProductionUse Development to enable Swagger UI and detailed error pages
App__BaseUrlhttps://tasks.example.comPublic-facing URL. Used in email links and CORS origin validation.
CORS__AdditionalOriginshttp://localhost:6274Comma-separated extra origins for CORS (e.g. a local dev client or MCP Inspector)

Networking

Exactly one of the following modes should be active. See Reverse Proxy and Direct TLS for full setup guides.

VariableValueDescription
PROXY_ENABLEDtrueTrust X-Forwarded-For and X-Forwarded-Proto from the upstream proxy

Mode 2 — Direct TLS

VariableExampleDescription
TLS_ENABLEDtrueEnable Kestrel HTTPS — Kestrel terminates TLS directly
TLS_CERT_PATH/certs/cert.pemPath to certificate file inside the container
TLS_KEY_PATH/certs/key.pemPath to private key file (PEM only — omit for PFX)
TLS_CERT_PASSWORDsecretPFX password (optional)
TLS_PORT8443HTTPS port (default: 8443)

WARNING

Do not set both PROXY_ENABLED=true and TLS_ENABLED=true at the same time. The app will log a warning and behaviour will be unpredictable.

Ports

PortProtocolWhen active
8080HTTPAlways
8443HTTPSOnly when TLS_ENABLED=true