Skip to content

Configuration ​

All settings are environment variables.

Required ​

VariableMeaning
DATABASE_URLPostgreSQL connection string
WATCHDOG_SECRET_KEYAt least 32 characters. Encrypts stored secrets. Generate with openssl rand -hex 32. Do not lose it

Common ​

VariableDefaultMeaning
APP_URLdetected on Railway, Render, FlyPublic address. Needed for passkeys, invites and OAuth. Set it yourself before moving to a custom domain: see Moving to a custom domain
PORT3000Port to listen on
SETUP_TOKENprinted in the logToken needed to create the owner
TRUST_PROXYfalseNumber of proxy hops in front of the app
CORS_ORIGINSnoneExtra allowed origins, comma separated
INGEST_EVENTS_PER_MINUTE6000Per-project ingest limit
SHIELD_WHITELISTnoneComma-separated IPs or CIDR ranges that skip rate limits and IP blocks. Other SHIELD_* settings are listed under Blocked by the shield
DOCS_URLGitHub docsWhere in-app help links point
UPDATE_CHECKtrueOwners and admins see a notice when a newer Watchdog version is published. Set to false to stop the server contacting the npm registry

Email ​

SMTP_HOST, SMTP_PORT, SMTP_SECURE, SMTP_USER, SMTP_PASSWORD, SMTP_FROM. You can also set these in the app. See Email and SMTP.

Sign-in ​

OAUTH_GOOGLE_CLIENT_ID, OAUTH_GOOGLE_CLIENT_SECRET, OAUTH_GITHUB_CLIENT_ID, OAUTH_GITHUB_CLIENT_SECRET. See OAuth.

Retention ​

RETENTION_EVENT_DAYS, RETENTION_PERFORMANCE_DAYS, RETENTION_REPLAY_DAYS. See Data retention.

Released under the MIT License.