Skip to main content

Configuration

This page lists the environment variables exposed by .env.example.

Core Runtime

VariablePurpose
DEBUGenables verbose runtime logging when set to true
NODE_ENVruntime mode for Node/Bun services (production by default)
APP_MODEboth, api, or dashboard route gating
WEB_API_KEYrequired header value for protected API requests
API_URL / API_KEYdashboard-to-API server-side calls (dashboard mode)
DASHBOARD_URLpublic dashboard URL used in notifications and generated links
WEB_PORThost port bound to web:3000 in local Compose deployments
WP_PATHpath to the Wappalyzer database inside the web container

Orchestrator

VariablePurpose
MAX_ATTEMPTSmax retry attempts for failed queue tasks before final failed status
JOB_QUEUE_RETENTIONdaily retention window (in days) for job_queue cleanup (default 365)

Database

VariablePurpose
DB_PORThost port bound to SurrealDB in local Compose deployments
SURREAL_PROTOCOLwebsocket/http protocol
SURREAL_ADDRESShost:port of SurrealDB
SURREAL_NAMESPACEnamespace
SURREAL_DATABASEdatabase
SURREAL_USERdb user
SURREAL_PASSdb password + superuser bootstrap password

Auth & ACL

VariablePurpose
AUTH_SIGNUP_ENABLEDenable/disable public signup
SCHEDULE_MIN_INTERVAL_SECONDSminimum allowed schedule interval in seconds (default 3600)
SESSION_COOKIE_NAMEdashboard session cookie name
SESSION_COOKIE_SECUREmark dashboard session cookie as secure (true/false)
SESSION_COOKIE_MAX_AGEdashboard session cookie max age in seconds (default 3600)

Notifications

VariablePurpose
APPRISE_URLApprise API endpoint used for notification channel tests (web) and job-triggered delivery (orchestrator)
APPRISE_API_KEYoptional Apprise API key attached to notification requests
APPRISE_WORKER_COUNTApprise worker process count
NOTIFICATION_BRAND_LOGO_URLlogo used in long-form notification templates

System Email (SMTP)

VariablePurpose
SMTP_HOSTSMTP server hostname
SMTP_PORTSMTP server port
SMTP_USERSMTP auth user
SMTP_PASSSMTP auth password
SMTP_SECUREuse SMTPS/TLS (true/false)
SMTP_FROMsender address used for forgot/invite/onboarding emails

Routes that require SMTP (return 503 smtp_not_configured when unavailable):

  • POST /api/v1/auth/forgot
  • POST /api/v1/users
  • POST /api/v1/websites/{id}/invite
  • POST /api/v1/websites/{id}/transfer-ownership

Reporting

VariablePurpose
GOTENBERG_URLPDF conversion service endpoint
PDF_PORThost port bound to Gotenberg in local Compose deployments

Security Tool

VariablePurpose
SECURITY_NUCLEI_TEMPLATESoptional comma-separated Nuclei template paths/tags to run instead of the default template set
SECURITY_NUCLEI_TIMEOUTNuclei request timeout in seconds (production default 8)
SECURITY_NUCLEI_RETRIESNuclei retry count (production default 1)
SECURITY_NIKTO_TIMEOUTwrapper-level Nikto process timeout in seconds (production default 600)
SECURITY_NIKTO_REQUEST_TIMEOUTNikto per-request timeout passed to nikto -timeout (production default 6)
SECURITY_WAPITI_MAX_SCAN_TIMEWapiti total scan limit passed to wapiti --max-scan-time (production default 600)
SECURITY_WAPITI_MAX_ATTACK_TIMEWapiti per-attack-module limit passed to wapiti --max-attack-time (production default 120)
SECURITY_SCORE_THRESHOLDthreshold used by security scoring logic

The production defaults favor web-facing findings and predictable runtime. Higher Nuclei/Wapiti/Nikto limits can recover slower network-fingerprint findings at the cost of longer scans.

WCAG Tool

VariablePurpose
WCAG_RUN_ONLYoptional comma-separated axe rule IDs/tags to run
WCAG_EXCLUDE_RULESoptional comma-separated axe rule IDs to exclude

WCAG_DEVICE_NAME is task-specific and is set by the orchestrator for each WCAG device queue row.

Stress Tool

VariablePurpose
STRESS_RATEVegeta request rate (default 10)
STRESS_DURATIONVegeta attack duration (default 30s)
STRESS_METHODHTTP method (default GET)
STRESS_TIMEOUTper-request timeout (default 10s)
STRESS_WORKERSinitial Vegeta workers (default 10)
STRESS_MAX_WORKERSmaximum Vegeta workers (default 100)
STRESS_HEADERSJSON object of request headers (default {})
STRESS_BODYoptional request body
STRESS_LATENCY_WARN_MSlatency warning threshold used in scoring (default 500)

Compose Notes

Production Compose files pass tool runtime variables through the orchestrator service because scans are launched as short-lived tool containers. docker-compose.dev.yaml also keeps direct tool environment blocks for manual tool runs during development.