Install (Kubernetes / Helm)
ChannelWatch ships an official Helm chart for Kubernetes deployments. The chart wires up the Deployment, Service, PersistentVolumeClaim, ConfigMap, Secret, and health probes in a single install command.
Prerequisites
Section titled “Prerequisites”- Kubernetes 1.25+ cluster
- Helm 3.10+
- A PersistentVolume or StorageClass that supports
ReadWriteOnceaccess mode - Network access from the pod to your Channels DVR server
Add the Helm repository
Section titled “Add the Helm repository”helm repo add channelwatch https://coderluii.github.io/ChannelWatchhelm repo updateInstall the chart
Section titled “Install the chart”helm install channelwatch channelwatch/channelwatch \ --namespace channelwatch \ --create-namespace \ --set persistence.size=1Gi \ --set env.TZ="America/New_York"This creates a channelwatch namespace and deploys the application with a 1 GiB persistent volume for configuration storage.
After the pod reaches Running state, forward the port to access the web UI:
kubectl port-forward -n channelwatch svc/channelwatch 8501:8501Then open http://localhost:8501 and complete the first-run wizard.
Key values
Section titled “Key values”The chart exposes these values for customization. Pass them with --set or in a values.yaml file:
| Value | Default | Description |
|---|---|---|
image.repository | coderluii/channelwatch | Container image repository |
image.tag | "" (uses chart appVersion) | Image tag; leave empty to track the chart’s pinned version |
image.pullPolicy | IfNotPresent | Image pull policy |
replicaCount | 1 | Must remain 1 (see single-replica note above) |
persistence.enabled | true | Enable PVC for /config |
persistence.size | 1Gi | PVC size |
persistence.storageClass | "" | StorageClass name; empty uses the cluster default |
service.type | ClusterIP | Service type (ClusterIP, NodePort, or LoadBalancer) |
service.port | 8501 | Service port |
env.TZ | UTC | Container timezone (IANA format) |
resources.requests.memory | 64Mi | Memory request |
resources.limits.memory | 256Mi | Memory limit |
Example values.yaml
Section titled “Example values.yaml”replicaCount: 1
image: repository: coderluii/channelwatch tag: "" pullPolicy: IfNotPresent
persistence: enabled: true size: 2Gi storageClass: "local-path"
service: type: LoadBalancer port: 8501
env: TZ: "America/Chicago"
resources: requests: memory: "64Mi" cpu: "50m" limits: memory: "256Mi" cpu: "500m"Apply with:
helm install channelwatch channelwatch/channelwatch \ --namespace channelwatch \ --create-namespace \ -f values.yamlHealth probes
Section titled “Health probes”ChannelWatch v1.0 exposes three Kubernetes-idiomatic health endpoints. The Helm chart configures these automatically, but they are documented here for reference if you deploy via raw manifests.
| Probe | Path | Purpose |
|---|---|---|
| Liveness | /healthz/live | Basic process alive check. Returns 200 if the application can respond at all. Kubernetes restarts the pod if this fails. |
| Readiness | /healthz/ready | Returns 200 when at least one configured Channels DVR server is connectable. Traffic is withheld until this passes. |
| Startup | /healthz/startup | Returns 200 after the core has completed its initial load (config read, migration check, first DVR connection attempt). Prevents liveness/readiness checks from firing too early. |
Example probe configuration for a raw Deployment manifest:
livenessProbe: httpGet: path: /healthz/live port: 8501 initialDelaySeconds: 10 periodSeconds: 30 failureThreshold: 3
readinessProbe: httpGet: path: /healthz/ready port: 8501 initialDelaySeconds: 15 periodSeconds: 10 failureThreshold: 6
startupProbe: httpGet: path: /healthz/startup port: 8501 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 24Upgrading
Section titled “Upgrading”helm repo updatehelm upgrade channelwatch channelwatch/channelwatch \ --namespace channelwatch \ -f values.yamlChannelWatch migrates its configuration automatically on startup. A backup of your previous settings is written to /config/backups/ before any migration step runs.
Uninstalling
Section titled “Uninstalling”helm uninstall channelwatch --namespace channelwatchNext steps
Section titled “Next steps”- First-Run Configuration — add your Channels DVR server and configure alerts
- Health Probes — detailed probe behavior and Prometheus metrics
- Multi-DVR Setup — monitor multiple Channels DVR servers from one instance