hik-connect-proxy-viewer

Watch the Hikvision cameras a school shared with you through Hik-Connect, in any browser or as a home-screen app. Self-hosted, open source, one Helm chart.

The problem it solves

Non-admin Hikvision recorder accounts often work in the Hik-Connect app but get 401 Unauthorized on RTSP. The app talks to the recorder through Hikvision's proprietary SDK port (8000 by default), which browsers, VLC and ffmpeg cannot use. This project runs Hikvision's HCNetSDK on a small Linux service, pulls the stream, and re-publishes it as HLS behind a password.

[recorder] --SDK port--> stream (mediamtx + HCNetSDK) --HLS--> web (login, PWA) --HTTPS--> phones

Features

On demandNo viewer, no login to the recorder. The first viewer starts the stream, others share it, it stops when everyone leaves.
Auto-discovered channelsProbes every channel and shows only the ones your account may view, with the names from the recorder.
One family passwordType it once; a signed cookie remembers the device for 30 days.
PWAAdd to Home Screen on iPhone or Android, double-tap a tile for full screen.
No re-encodingThe SDK output is MPEG-PS that ffmpeg already understands; it is only remuxed.
Nothing proprietary shippedHikvision's SDK is downloaded when the container starts, so the repo and images stay clean.

Install on Kubernetes

helm upgrade --install cam oci://ghcr.io/phuthuycoding/charts/hik-connect-proxy-viewer --version 0.2.0 \
  --namespace cam --create-namespace \
  --set hik.domain=recorder.example.net \
  --set hik.sdkPort=8000 \
  --set hik.user=USER \
  --set hik.password=PASS \
  --set web.password=FAMILY_PASSWORD \
  --set web.sessionSecret="$(openssl rand -hex 32)" \
  --set ingress.host=cam.example.com

Every value above is required; the chart refuses to install without them. Defaults assume Traefik and cert-manager, both adjustable under ingress.*. To upgrade later, re-run with a newer --version and --reset-then-reuse-values.

Run with Docker Compose

git clone https://github.com/phuthuycoding/hik-connect-proxy-viewer
cd hik-connect-proxy-viewer
cp .env.example .env   # recorder account, family password, session secret
docker compose up -d --build
open http://localhost:8080

Artifacts

WhatWhere
Stream imagephuthuycoding/hik-connect-proxy-viewer-stream on Docker Hub
Web imagephuthuycoding/hik-connect-proxy-viewer-web on Docker Hub
Helm chartoci://ghcr.io/phuthuycoding/charts/hik-connect-proxy-viewer