server/.env
Credentials, database selection, public URLs, local paths, Connect relay URLs. Treat as secret.
ReplayVOD has two configuration files.
server/.env
Credentials, database selection, public URLs, local paths, Connect relay URLs. Treat as secret.
server/config.toml
Operational behaviour: download policy, scheduler intervals, logging, storage backend, health endpoint, title-tracking mode.
server/.env always wins. The Go process reads the env file first, then the TOML file. For live/title behavior, a complete SERVER_MODE env config also wins over app-managed server settings and skips onboarding. If SERVER_MODE is empty, the owner dashboard stores server mode setup in the database, and mode or URL changes are applied on the next server start.
The Docker Compose file reads server/.env directly. A few PUBLIC_* variables are Compose-only — they shape what gets passed into the container without changing the stored values.
TWITCH_CLIENT_ID=...TWITCH_SECRET=...SESSION_SECRET=...OWNER_TWITCH_ID=... # optional; empty = first login becomes ownerThe installer generates SESSION_SECRET; for manual installs, generate it with openssl rand -hex 32. OWNER_TWITCH_ID is optional and only preassigns a numeric Twitch user ID as owner; when empty, the first successful login becomes owner. The EventSub HMAC secret is optional: leave it unset and the server generates and stores one in the database on first run, or set HMAC_SECRET to seed a specific value the first time.
For normal deployments, set PUBLIC_BASE_URL and let the server derive the
OAuth callback, frontend redirect URL, and trusted browser origin:
PUBLIC_BASE_URL=https://replayvod.exampleIf the dashboard is hosted on a different origin from the API, add it with
TRUSTED_ORIGINS:
TRUSTED_ORIGINS=https://dashboard.exampleDirect EventSub env setup is optional; leaving SERVER_MODE empty lets the
owner configure live/title behavior in the dashboard.
Storage
Local filesystem or S3-compatible — see Storage.
Recording
Quality, codecs, retries, gap tolerance — see Recording.
Schedules & title tracking
Recording rules and server modes — see Schedules.
EventSub
Direct EventSub setup — see EventSub.
Connect relay
Pointing the recorder at a hosted relay — see Connect relay.
For a flat lookup of every variable or TOML key, see the reference: