Skip to content

Configuration

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.

  • Directoryreplayvod/
    • Directoryserver/
      • .env secrets, paths, network
      • .env.example committed template — every supported var is listed and commented here
      • config.toml tuning
    • docker-compose.yml
    • Directorydata/

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=...

The installer generates SESSION_SECRET; for manual installs, generate it with openssl rand -hex 32. 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 Compose deployments, set PUBLIC_BASE_URL and let Compose derive everything:

PUBLIC_BASE_URL=https://replayvod.example

For separate services or manual runtime, set each URL directly:

CALLBACK_URL=https://replayvod.example/api/v1/auth/twitch/callback
FRONTEND_URL=https://replayvod.example

Direct 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: