YunKan
martin888/yunkan-cpu:0.9.11
https://hub.docker.com/r/martin888/yunkan-cpu
host
sh
false
https://github.com/mrtian2016/yunkan-unraid-templates/issues
https://yun-kan.com
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 (cameras / external players)
- 24214/tcp — HLS + WebRTC (WHEP) signaling
- 23515/udp+tcp — WebRTC ICE media
**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, 自然语言.
### 0.9.11 (2026-06-01)
- **Fixed a background error after upgrading** — servers upgraded from an older version could repeatedly log errors in event-recording retention / cleanup because a database column was missing. This now self-heals on upgrade with no manual action.
### 0.9.10 (2026-06-01)
- **Fixed a regression where some pages could fail to load after upgrading** — a small number of users saw blank "Cameras", "Automations", and "Live" pages after updating from the previous version. This now self-heals on upgrade with no manual action.
- **Clearer license plates** — the detection-box outline no longer covers the plate number itself.
- **Improved event list** — thumbnails switched to a landscape aspect ratio, plate / face recognition results now show inline in the list, and unread markers are cleaner.
- Other fixes: iOS "mark all read" not refreshing the list; smoother web playback timeline dragging (cursor-anchored scroll zoom).
### 0.9.9 (2026-06-01)
- **AI scene understanding** — each event gets an automatic natural-language summary ("a person walks up to the door holding a package"), shown on event cards in the web admin and the Android / iOS apps. All inference runs on-box; no OpenAI / Gemini / Claude API key required.
- **Smart event search** — search past events by keyword on web and mobile, with semantic matching (searching "delivery" also surfaces "package" events).
- **Automatic LAN / WAN switching** — configure both a local and a public address for the same server; the app uses whichever is reachable (LAN at home, public when away), plus a one-tap switch on the home screen. The public live-stream host is now editable in Settings and applies instantly.
- **Live detection-box overlay** — overlay recognition boxes and labels (person / vehicle / pet) on the live preview; toggleable on all three clients.
- **Lower-latency live streaming** — added a more compatible playback path with automatic best-method selection for smoother live view across more networks.
- **Redesigned live view, home, and add / edit-camera screens** on mobile, with full per-camera settings (motion sensitivity, per-class detection toggles, PTZ auto-tracking, offline alerts).
- **Cyclist merge** — a person riding a bike / motorcycle is now reported as a single "someone cycling" event instead of separate person + vehicle notifications.
- **Push opens the event detail directly**; event snapshots can be saved to the phone album (with boxes / labels); the web event center adds a zoom / pan snapshot viewer.
- **Per-camera motion-notification cooldown** for cameras without advanced recognition.
- **More accurate license-plate recognition**, especially at distance / under motion blur; plates are merged into the matching vehicle event (one record per car).
- **More reliable Android background keep-alive** to reduce missed push on Chinese OEM phones.
- **AI summary usage panel** to see processing volume, resource use and success rate.
- Stability fixes: camera online / offline false reports, occasionally clipped recording segments, drifting detection boxes, talkback behind a reverse proxy, and a blank "cleanup" log tab; push title / event type / image now stay consistent; fixed duplicate device entries piling up under "bound devices".
### 0.9.8 (2026-05-22)
- More accurate recognition (new in-house model) for people, vehicles, bikes, motorcycles, buses, trucks, birds, cats / dogs, and personal items (backpack / handbag / suitcase).
- Detection / ignore zones can now apply per object type (e.g. an ignore zone that only ignores vehicles still captures passing people).
HomeAutomation: MediaApp:Video Security:
http://[IP]:[PORT:23406]/
https://raw.githubusercontent.com/mrtian2016/yunkan-unraid-templates/main/templates/yunkan-cpu.xml
https://raw.githubusercontent.com/mrtian2016/yunkan-unraid-templates/main/icon.png
Etc/UTC
YunKan
/mnt/user/appdata/yunkan/data
/etc/machine-id
/sys/class/dmi/id/product_uuid
/var/run/docker.sock
23406
23880
24214
23515