-
Notifications
You must be signed in to change notification settings - Fork 1
Configuration
X4Applegate edited this page Apr 14, 2026
·
1 revision
| Variable | Description |
|---|---|
DB_HOST |
MariaDB hostname (e.g. mariadb in Docker Compose) |
DB_USER |
Database username |
DB_PASSWORD |
Database password |
DB_NAME |
Database name (tables are auto-created on first run) |
SESSION_SECRET |
Random string for session signing — must be changed from default or the app will refuse to start in production |
| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
HTTP listen port |
DB_PORT |
3306 |
MariaDB port |
EXTERNAL_URL |
— | Base URL used in webhook dashboard links when no custom domain is set (e.g. https://status.example.com) |
TZ |
UTC |
Container timezone (e.g. America/Los_Angeles) |
NODE_ENV |
production (in Docker) |
Set to development for pretty-printed logs |
LOG_LEVEL |
info |
Pino log level: debug, info, warn, error
|
CHECK_INTERVAL |
30000 |
Global health check poll interval in milliseconds |
CONFIG_PATH |
/config/servers.json |
Path to legacy servers.json for one-time migration to the database |
| Variable | Default | Description |
|---|---|---|
APP_OWNER |
Richard Applegate |
Owner name shown on Privacy Policy and Terms pages |
APP_CONTACT_EMAIL |
admin@richardapplegate.io |
Contact email shown on legal pages |
APP_HOME_URL |
/ |
URL that the Home button in the admin panel links to |
SMTP settings can be configured two ways:
Option A — Admin Settings tab (recommended) Log into the admin panel → Settings tab → fill in SMTP fields. Changes take effect immediately with no restart needed.
Option B — Environment variables
| Variable | Description |
|---|---|
SMTP_HOST |
Mail server hostname |
SMTP_PORT |
SMTP port (typically 587 for STARTTLS) |
SMTP_USER |
Authentication username |
SMTP_PASS |
Authentication password |
SMTP_FROM |
Sender address (e.g. alerts@example.com) |
Google OAuth lets users sign in with their Google account instead of a local password.
- Create a project in Google Cloud Console and set up an OAuth 2.0 client ID.
- Set the authorized redirect URI to
https://your-domain.com/auth/google/callback. - In the admin panel → Settings tab, enter your Client ID and Client Secret.
- Optionally set
GOOGLE_CALLBACK_URLas an environment variable if your callback URL differs from{EXTERNAL_URL}/auth/google/callback.
Turnstile adds a privacy-friendly CAPTCHA to the login page — a good defense against brute-force attacks.
- Create a Turnstile widget at Cloudflare Dashboard → Turnstile.
- In the admin panel → Settings tab, enter your Site Key and Secret Key.
- The CAPTCHA widget appears on the login page immediately. It is automatically skipped on the first-time setup wizard.
In NODE_ENV=production, the app will refuse to start if:
-
SESSION_SECRETis still the default value -
DB_PASSWORDis unset or empty
These checks prevent accidental deployment with insecure defaults.
Sessions are stored in the sessions MariaDB table via express-mysql-session. This means:
- Sessions survive container restarts and re-deploys
- No external Redis or Memcached needed
- Sessions are cleaned up automatically when they expire
If you are upgrading from an older version that used a flat servers.json file:
- Set
CONFIG_PATHto the path of the file (default:/config/servers.json). - On startup, if the
status_serverstable is empty and the file exists, servers are imported automatically. - After migration, the file is not re-read — data lives in the database.