Environment Bootstrap Config
The web UI is the primary configuration surface for DVR servers. Use this page only when you need a headless or compose-managed bootstrap path.
Supported setup paths in v0.9.10
Section titled “Supported setup paths in v0.9.10”| Path | Status | Use it when |
|---|---|---|
| First-run wizard and Settings UI | Supported and recommended | You can open the browser UI and want validation before settings are saved. |
CHANNELS_DVR_SERVERS | Supported | You want to seed one or more DVR entries from Docker Compose or another container environment. |
/config/settings.json | Supported with care | You manage config files directly and can keep valid JSON plus backups. |
CHANNELS_DVR_HOST and CHANNELS_DVR_PORT | Legacy compatibility | You are carrying an older single-DVR install forward. These still work with startup warnings. |
CW_DVR_<N>_* | Deferred | Do not use in v0.9.10. |
/config/dvrs.yaml | Deferred | Do not use in v0.9.10. |
CHANNELS_DVR_SERVERS
Section titled “CHANNELS_DVR_SERVERS”CHANNELS_DVR_SERVERS accepts comma-separated entries in this form:
Name@host:port,Name@host:portExample:
services: channelwatch: image: coderluii/channelwatch:0.9.10 container_name: channelwatch init: true network_mode: host volumes: - /opt/channelwatch:/config environment: TZ: "America/New_York" restart: unless-stoppedBehavior:
- entries are parsed at startup into the saved
dvr_serverslist - matching existing DVRs keep their IDs and overrides where possible
- manual DVR entries that are already in settings are preserved
- saved
/config/settings.jsonremains the runtime source of truth after bootstrap
Use static IP addresses or stable hostnames. ChannelWatch derives DVR identity from host and port, so changing either value creates a new DVR identity unless an existing saved ID is preserved by the merge path.
Legacy single-DVR variables
Section titled “Legacy single-DVR variables”Older compose files may contain:
environment: CHANNELS_DVR_HOST: "192.168.1.10" CHANNELS_DVR_PORT: "8089"Those variables still work in v0.9.10 so existing installs can start safely, but ChannelWatch logs startup warnings and recommends moving to CHANNELS_DVR_SERVERS, the web UI, or saved dvr_servers in /config/settings.json.
For a one-DVR compose file, the replacement is:
environment:Direct settings file edits
Section titled “Direct settings file edits”If you manage /config/settings.json yourself, make a backup first and keep the JSON valid:
{ "dvr_servers": [ { "id": "dvr_17c621dc", "name": "Living Room", "host": "192.168.1.10", "port": 8089, "enabled": true, "api_key": "", "overrides": {}, "deleted_at": null } ]}The web UI is safer because it validates values before saving and signals the core process to reload. If you edit the file manually, trigger a reload or restart the container and then verify the DVR appears in the UI.
Deferred paths
Section titled “Deferred paths”Do not use these in ChannelWatch v0.9.10:
environment: CW_DVR_1_NAME: "Living Room" CW_DVR_1_HOST: "192.168.1.10" CW_DVR_1_PORT: "8089"dvrs: name: "Living Room" host: "192.168.1.10" port: 8089The v0.9.10 app changelog lists CW_DVR_<N>_* and /config/dvrs.yaml as deferred. If you see those names in older references, do not treat them as the shipped runtime startup path for this release.
Kubernetes and Helm
Section titled “Kubernetes and Helm”The Helm chart is single-replica only in v0.9.10 and stores writable state under /config. Use Install (Kubernetes / Helm) for the chart values and keep secrets in Kubernetes Secrets. Do not assume the chart has a dedicated dvrs values block for CW_DVR_<N>_* or /config/dvrs.yaml.
Next steps
Section titled “Next steps”- Adding DVR Servers - add and manage servers through the web UI
- Per-DVR Notification Routing - route event types to notification channels per server
- Hot Reload - understand what reloads and what needs restart