Skip to content

Hot Reload

ChannelWatch v1.0 watches /config/settings.json for changes. When you save settings through the web UI, the application reloads the affected components immediately — no container restart needed for most changes.

These settings take effect the moment you save them in the web UI:

Setting categoryWhat happens on save
DVR serversChanged DVRs are re-initialized; unchanged DVRs keep running without interruption
Alert settingsNew thresholds, cooldowns, and toggles apply to the next alert event
Notification providersUpdated credentials and provider settings apply to the next delivery attempt
Notification templatesCustom message templates apply to the next notification
Logging verbosityLog level switches immediately (Standard or Verbose)

When a DVR’s configuration changes, ChannelWatch cancels that DVR’s monitoring task and spawns a new one with the updated settings. DVRs whose configuration did not change are not touched. A CONFIG_RELOADED log entry is written with a summary of what changed.

A small number of settings cannot be changed at runtime. These require a full container restart to take effect:

SettingWhy a restart is required
Network binding (host and port)The HTTP server binds to the port at startup; rebinding requires stopping and restarting the process
Database URLThe database connection is established at startup; changing it requires a fresh connection pool
RBAC feature flagThe security middleware is wired at startup; toggling RBAC requires reinitializing the middleware stack

To apply any of these changes:

  1. Update the value in your compose file or environment variables.
  2. Run docker compose down && docker compose up -d (or the equivalent for your setup).

Notification provider plugins (files in /config/plugins/notifications/) are not hot-reloaded. The plugin loader runs once at startup. To activate a new plugin or update an existing one, restart the container.

See Provider Plugins for details on the plugin system.

After saving settings, check the application logs to confirm the reload completed:

INFO CONFIG_RELOADED: dvr_servers[0].port changed (8089 -> 8090); DVR task re-initialized

If the new configuration is invalid (for example, a DVR host that can’t be reached), ChannelWatch logs an error and keeps the previous configuration active. It does not apply a broken config.