YunKan

YunKan

Docker app from 田继业's Repository

Overview

YunKan (云瞰) — self-hosted, local-first NVR / VMS for home and small-business IP cameras, with on-device AI: motion, person / vehicle / face / license plate (ALPR / LPR) / pose / fall detection. Your video stays on your LAN — nothing is uploaded to any vendor cloud. A privacy-first Frigate / Shinobi / ZoneMinder / Scrypted / Agent DVR / iSpy / MotionEye alternative — pre-bundled into a single container so there is no Mosquitto / database / reverse-proxy / model-download wiring to do by hand.

This is the CPU variant — runs on any amd64 Unraid host with no special hardware. Best for 1-4 cameras at moderate FPS. Have an Intel iGPU (J4125 / N100 / N305 / N5105 / 12-14th gen Core)? Install "YunKan-OpenVINO" instead for 3-5x faster inference. Have an NVIDIA GPU? Install "YunKan-CUDA". All three variants share the same ports — only one can run at a time.

Works with any RTSP or ONVIF camera — Reolink, Hikvision, Dahua, Amcrest, Annke, Uniview, EZVIZ, Foscam, Lorex, Anpviz, generic Chinese ONVIF, etc. Tapo, Wyze, Xiaomi, Eufy, Mi Home, Aqara, Imou and other proprietary-protocol cameras work via a go2rtc bridge.

Built in: 24/7 continuous recording + motion-event highlights, scrubbable timeline playback, AI scene understanding that turns each event into a natural-language summary ("an elderly person fell in the living room" — no OpenAI / Gemini / Claude API keys, all inference on-box), bilingual EN ↔ 中文, WebRTC (WHEP) sub-second live streaming with HLS fallback, two-way talkback (push-to-talk on supported ONVIF cameras), Home Assistant integration via MQTT auto-discovery (every camera becomes an HA device with motion / person / vehicle binary_sensors), Web admin + Android + iOS apps, optional off-site backup to 115 网盘 (115 Pan / 115 Cloud).

On first launch, open the WebUI to enter the Setup wizard (pick SQLite for the simplest path), create an admin, and add cameras.

Ports (hardcoded inside the image — don't edit them on this page; if you need to change ports use the docker compose path):

  • 23406/tcp — HTTP dashboard / API (nginx front door)
  • 23880/tcp — RTSP (direct mediamtx)
  • 24214/tcp — HLS
  • 24215/tcp — WebRTC WHEP signaling
  • 23515/udp — WebRTC ICE

Keywords: NVR, VMS, CCTV, surveillance, security camera, video doorbell, RTSP, ONVIF, IP camera, motion detection, person detection, vehicle detection, face recognition, license plate recognition, ALPR, LPR, fall detection, pose detection, two-way audio, talkback, 24/7 recording, continuous recording, timeline playback, WebRTC, HLS, Home Assistant, MQTT, smart home, AI NVR, AI camera, AI scene understanding, natural language event summary, smart event description, on-device AI, edge AI, offline AI, no API key, no cloud, privacy, self-hosted, Frigate alternative, Shinobi alternative, ZoneMinder alternative, Scrypted alternative, Agent DVR alternative, iSpy alternative, MotionEye alternative, BlueIris alternative, Reolink, Hikvision, Dahua, Amcrest, Annke, Uniview, EZVIZ, Foscam, Lorex, Tapo, Wyze, Xiaomi, Eufy, Imou, Aqara, go2rtc, 云瞰, 摄像头, 监控, AI 监控, 本地 AI, 自然语言.

Runtime arguments

Web UI
http://[IP]:[PORT:23406]/
Network
host
Shell
sh
Privileged
false

Template configuration

Time zone (TZ)Variable

Container time zone. Affects log timestamps and quiet-hours cron.

Target
TZ
Default
Etc/UTC
Value
Etc/UTC
Container name (license anchor)Variable

Must exactly match the 'Name' field above. The license heartbeat uses this to identify the container itself; if you rename the container, change this too.

Target
SKYVIEW_SELF_CONTAINER_NAME
Default
YunKan
Value
YunKan
Data directory (DB / recordings / models / logs)Pathrw

All YunKan persistent data. Unraid convention is /mnt/user/appdata/app/. **For heavy recording workloads, point this at a cache pool or a dedicated share** to avoid spinning up the array.

Target
/app/data
Default
/mnt/user/appdata/yunkan/data
Value
/mnt/user/appdata/yunkan/data
machine-id (license hardware fingerprint)Pathro

The license uses the Unraid host's machine-id as part of its hardware fingerprint. **Without this mount the fingerprint drifts on every container recreate; the license then consumes a new activation slot and eventually fails to activate.** Keep read-only.

Target
/etc/machine-id
Default
/etc/machine-id
Value
/etc/machine-id
product_uuid (license hardware fingerprint)Pathro

Second hardware-fingerprint signal (motherboard DMI UUID). Keep read-only.

Target
/sys/class/dmi/id/product_uuid
Default
/sys/class/dmi/id/product_uuid
Value
/sys/class/dmi/id/product_uuid
docker socket (self-introspection / OTA self-restart)Pathrw

YunKan uses the docker socket internally for self-identification and OTA self-restart. The default Unraid permissions are fine.

Target
/var/run/docker.sock
Default
/var/run/docker.sock
Value
/var/run/docker.sock
HTTP / API (nginx)Porttcp

Web dashboard + REST API front door.

Target
23406
Default
23406
Value
23406
RTSP (mediamtx)Porttcp

Cameras and external players connect directly to mediamtx here.

Target
23880
Default
23880
Value
23880
HLSPorttcp

HLS streaming port.

Target
24214
Default
24214
Value
24214
WebRTC signaling (WHEP)Porttcp

WebRTC WHEP signaling.

Target
24215
Default
24215
Value
24215
WebRTC ICEPortudp

WebRTC ICE UDP port.

Target
23515
Default
23515
Value
23515

Details

Repository
registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-cpu:0.9.8
Last Updated2026-05-31
First Seen2026-05-27

Run YunKan on Unraid.

YunKan is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.