Use server/.env.example as a starting point. These tables describe its variables and the optional DEVELOPMENT override. Defaults below are for the server or example file; the supplied Compose file overrides some values for its containers.
Apply environment changes by restarting a source install or running docker compose up -d with your existing environment file and profile. See Configuration for details.
| Variable |
Default |
Purpose |
DATABASE_DRIVER |
postgres |
Database type: postgres or sqlite. Compose sets this from the selected profile. |
POSTGRES_HOST |
127.0.0.1 |
PostgreSQL hostname. Compose uses postgres. |
POSTGRES_PORT |
5432 |
PostgreSQL port. |
POSTGRES_DATABASE |
replayvod |
Database name. |
POSTGRES_USER |
postgres |
Database user. |
POSTGRES_PASSWORD |
Empty |
Database password. |
POSTGRES_SSL_MODE |
disable |
TLS mode: disable, require, verify-ca, or verify-full. |
SQLITE_PATH |
./data/replayvod.db |
SQLite file path. Compose uses /app/data/replayvod.db. |
| Variable |
Default |
Purpose |
TWITCH_CLIENT_ID |
Empty |
Required Twitch app client ID from the developer console. |
TWITCH_SECRET |
Empty |
Required Twitch app client secret. |
HMAC_SECRET |
Generated |
Optional initial EventSub signing secret. Saved in the database on first start and ignored on later starts. |
| Variable |
Default |
Purpose |
HOST |
0.0.0.0 |
Address the HTTP server listens on. |
PORT |
8080 |
HTTP port. |
DEVELOPMENT |
Unset |
Override development in config.toml with true or false. The Docker image sets false. |
| Variable |
Default |
Purpose |
SESSION_SECRET |
Empty |
Required encryption secret, at least 32 characters. Generate a random value and keep it with your database backup. |
WHITELIST_ENABLED |
false |
Restrict sign-in to accounts on the whitelist. |
WHITELISTED_USER_IDS |
Empty |
Comma-separated numeric Twitch user IDs to add to the whitelist at each start. |
OWNER_TWITCH_ID |
Empty |
Numeric Twitch user ID to assign as owner. Empty allows the first successful sign-in to become owner. Added to the whitelist at startup. |
Admins manage access in the dashboard after setup. To remove an ID added through the environment, remove it from both the environment and the dashboard whitelist. See Users & invitations.
| Variable |
Default |
Purpose |
PUBLIC_BASE_URL |
Empty |
Public dashboard address, such as https://replayvod.example. Used for sign-in callbacks, redirects, trusted browser origin, and signed recording download links. Compose defaults to http://localhost:8080. |
TRUSTED_ORIGINS |
Empty |
Comma-separated extra browser origins, for a dashboard hosted separately from the API. |
WEBHOOK_CALLBACK_URL |
Empty |
Public HTTPS EventSub callback for SERVER_MODE=direct. |
| Variable |
Default |
Purpose |
SERVER_MODE |
Empty |
Live detection mode: off, poll, direct, or relay. Leave empty to configure it in the owner dashboard. |
A complete environment configuration takes precedence over dashboard settings. If SERVER_MODE is empty, leave EventSub and relay URL variables empty too.
| Variable |
Default |
Purpose |
RELAY_INGEST_URL |
Empty |
Public HTTPS relay URL where Twitch sends notifications. Required for relay mode. |
RELAY_SUBSCRIBE_URL |
Empty |
Outbound WebSocket URL for receiving notifications. Required for relay mode. Must match the ingest URL’s host and token. |
RELAY_LOCAL_CALLBACK_URL |
Empty |
Local destination for forwarded notifications. Defaults to http://127.0.0.1:${PORT}/api/v1/webhook/callback. Must use loopback and the callback path. |
| Variable |
Default |
Purpose |
COMPOSE_PROFILES |
sqlite in the example |
Choose sqlite or postgres. Supply this or an explicit --profile flag to start the recorder services. |
| Variable |
Default |
Purpose |
VIDEO_DIR |
./data/videos |
Local recording directory. Compose uses /app/data/videos. |
THUMBNAIL_DIR |
./data/thumbnails |
Preview directory. Compose uses /app/data/thumbnails. |
DASHBOARD_DIR |
Empty |
Built dashboard directory for manual installs. The Docker image serves /app/dashboard. |
SCRATCH_DIR |
./data/.scratch |
Temporary download files. Keep on the same filesystem as local recordings. Compose uses /app/data/.scratch. |