Skip to main content

Configuration reference

Generated from api/src/utils/config.ts. Secrets are read from Docker secret files at /run/secrets/<name> (with an env-var fallback for local dev); everything else is an environment variable.

Never commit secrets

The values for items marked secret belong in the secrets/ directory (mounted as Docker secrets) or a secret manager — never in source control or plain .env committed to a repo.

VariableTypeRequiredDefaultNotes
DATABASE_URLurlYesMust be a valid URL.
db_passwordsecretYesDocker secret file db_password (no env-var fallback).
integration_encryption_keysecretYesDocker secret file integration_encryption_key (no env-var fallback).
JWT_SECRETsecretYesDocker secret jwt_secret; min length 32.
OPENSEARCH_URLurlYesMust be a valid URL.
TICKETRA_ADMIN_PASSWORDsecretYesDocker secret admin_password; min length 12.
TICKETRA_ADMIN_USERNAMEstringYesRequired.
ALLOWED_ORIGINSstringNoCORS allowlist — comma-separated list of allowed origins.
ATTACHMENTS_DIRstringNo/app/data/attachments
AVATAR_DIRstringNo
BACKUP_DIRstringNo/app/data/backups
INTEGRATION_ENCRYPTION_KEYstringNo
INTEGRATION_ENCRYPTION_KEY_FILEstringNo
LOG_LEVELenumNoinfoOne of: debug, info, warn, error.
MAX_ATTACHMENT_SIZE_MBintegerNo10
MAX_AVATAR_SIZE_MBintegerNo2
NODE_ENVstringNoSet to production in production (enables Secure cookies).
PORTintegerNo8080
RATE_LIMIT_AVATAR_UPLOADS_PER_MINintegerNo3
RATE_LIMIT_LOGIN_IP_PER_MINintegerNo30
RATE_LIMIT_LOGIN_PER_MINintegerNo10
SESSION_TTL_HOURSintegerNo8