Configuration
Configuration
A deployment is defined by a config directory — the contract the GUI writes
into a streamer's config repo. The site has no built-in content, so every build
needs one. A build with no config (and no site.yaml) fails.
Point a build at a config directory with the CAPYSTREAMA_CONFIG_DIR environment
variable:
CAPYSTREAMA_CONFIG_DIR=/path/to/config pnpm build Files
| File | Required | Purpose |
|---|---|---|
site.yaml | ✅ | Identity: stream_name, streamer. |
schedule.yaml | – | The weekly schedule. Absent → schedule page disabled. |
worlds.yaml | – | Worlds and their per-locale display names. |
theme.json | – | Color token overrides ({ "light": {...}, "dark": {...} }). |
messages/<locale>.json | – | Override existing message keys and add new ones. |
site.yaml
Identity, fed into the title, greeting, and schedule-label messages:
stream_name: Dev Stream
streamer: Dev Streamer schedule.yaml
Each weekday maps to a list of streams. Times are 24-hour "HH:MM" strings in the streamer's local time ("24:00" means end of day); end can be a flexible
window with earliest/latest. Each stream's world must be a key defined in worlds.yaml, validated at build time. platform is optional.
saturday:
- start: "13:00"
end:
earliest: "15:00"
latest: "16:00"
game: Stardew Valley
world: sandbox
- start: "16:00"
end:
earliest: "18:00"
latest: "19:00"
game: Minecraft
platform: Bedrock
world: sandbox When schedule.yaml is absent, the schedule page is hidden and /schedule redirects home.
worlds.yaml
Worlds keyed by id, with a display name per locale:
sandbox:
en-US: The Sandbox
es-US: La Caja de Arena Any world referenced by schedule.yaml must exist here, or the build fails.
See Theming for theme.json and Localization for messages/<locale>.json.