Configuration
Configuration
SchellingBoard is configured entirely through environment variables. Only
AUTH_SECRET is required; everything else has a sensible default or switches
a feature off when unset.
Environment variables
| Variable | Required | Description |
|---|---|---|
SITE_PASSWORD |
No | Password gate for the whole site (leave unset to disable) |
ADMIN_PASSWORD |
No | Password for the /admin UI (leave unset to disable) |
AUTH_SECRET |
Yes | Signs all login cookies — site, admin, and attendee name protection. Random, min 32 chars. Changing it logs everyone out |
DATABASE_URL |
No | SQLite path (default: file:/data/data.db) |
SB_UPLOADS_DIR |
No | Dir for admin-uploaded files (default: ./uploads, /data/uploads in Docker) |
HOST_PORT |
No | Host port to bind (default: 3000, compose only) |
SCHELLINGBOARD_VERSION |
No | Image tag to run, e.g. a release tag (default: latest, compose only) |
SMTP_FROM |
No | Sender address for outgoing email |
SMTP_URL |
No | SMTP connection URL (see below) |
SMTP_HOST |
No | SMTP server hostname (see below) |
SMTP_PORT |
No | SMTP server port |
SMTP_USER |
No | SMTP username |
SMTP_PASSWORD |
No | SMTP password |
SMTP_SECURE |
No | true, false, or requireTLS (default) |
SITE_URL |
No* | Public base URL of the site, e.g. https://sessions.example.org |
SB_ENABLE_DEV_TOOLS |
No | Set to 1 to enable the dev fake clock on a staging/demo instance. Leave unset in production |
REMINDER_DISPATCH_INTERVAL_MS |
No | How often to deliver due attendee-count reminders, in milliseconds (default: 60000). 0 turns them off entirely — nothing else does, email or no email |
Email is optional — leave the SMTP variables unset to disable it. To enable
email, set SMTP_FROM plus either SMTP_URL (a single connection string,
e.g. smtp://user:pass@localhost:1025, which already includes the host,
port, user, password, and security settings) or SMTP_HOST together
with SMTP_PORT/SMTP_USER/SMTP_PASSWORD/SMTP_SECURE — not both.
* SITE_URL is required when email is enabled, so that emails can link back
to the site.
Notification emails go out a few seconds after whatever they announce, not as part of it, so a slow mail server never slows the site down. One that fails is retried for up to a day.
Leaving email unconfigured also disables attendee name protection, since it relies on emailed login codes. It does not disable in-app notifications, including the reminders to record attendance: those are delivered whether or not the instance can send mail. For which messages SchellingBoard sends and when, see How it works § Email.