Skip to content

Configuration

Either ADMIN_API_KEY or AUTH0_DOMAIN must be set.

VariableDescriptionExample
ADMIN_API_KEYBootstrap admin API key (enables API-key-only mode)pong_mykey
AUTH0_DOMAINAuth0 tenant domain (optional, for hosted service)your-tenant.us.auth0.com
AUTH0_AUDIENCEAuth0 API identifier (required if AUTH0_DOMAIN is set)https://your-api-identifier

For self-hosted deployments, ADMIN_API_KEY is the simplest option — no Auth0 setup needed.

VariableDescriptionDefault
BASE_URLPublic URL for email verification linkshttp://localhost:8080
PORTHTTP server port8080
DATABASE_PATHPath to SQLite databasedata/ghm.db
WORKER_COUNTNumber of concurrent check workers20
CHECK_TICK_SECONDSScheduler tick interval1
RETENTION_DAYSDays to keep check results and alert logs90
ENFORCE_PLAN_LIMITSEnable plan-based resource limitsfalse
REQUIRE_EMAIL_VERIFICATIONRequire email contacts to verify before receiving alertsfalse
VariableDescriptionDefault
ENCRYPTION_KEY64-character hex string (32 bytes) for AES-256-GCM encryption of monitor credentials(not set)

Generate a key:

Terminal window
openssl rand -hex 32

Required if you want to use HTTP authentication (Basic Auth or custom headers) on monitors. Credentials are encrypted at rest in the database and only decrypted when running checks.

VariableDescription
SMTP_HOSTSMTP server hostname
SMTP_PORTSMTP server port (typically 587)
SMTP_USERSMTP username
SMTP_PASSSMTP password
SMTP_FROMSender email address
SMTP_FROM_NOREPLYSender address for verification emails (falls back to SMTP_FROM if not set)

All SMTP variables are optional. If not set, email alerts will fail silently.

Terminal window
ADMIN_API_KEY=pong_mykey
BASE_URL=https://your-domain.com
PORT=8080
DATABASE_PATH=data/ghm.db
WORKER_COUNT=20
CHECK_TICK_SECONDS=1
RETENTION_DAYS=90
# ENCRYPTION_KEY=your-64-char-hex-key
# SMTP_HOST=smtp.example.com
# SMTP_PORT=587
# SMTP_USER=your-smtp-user
# SMTP_PASS=your-smtp-password
# SMTP_FROM=alerts@yourdomain.com
# SMTP_FROM_NOREPLY=noreply@yourdomain.com