YunKan-CUDA
Docker 应用程序 from 田继业's Repository
概述
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 CUDA variant — uses an NVIDIA GPU for inference (≥6 GB VRAM recommended; ≥8 GB for many high-resolution cameras). Tested on RTX 3060 / 3070 / 4060 / 4070 / A2000 / A4000 / Tesla P4 / T4 / Quadro P2000. Highest throughput of the three variants — best fit if you already run a GPU in your Unraid box for Plex / Jellyfin transcoding or other AI workloads.
Prerequisites:
- Install the "NVIDIA Driver" plugin in Unraid → reboot →
nvidia-smiworks on the host; - This template already sets
--runtime=nvidiaand the NVIDIA_* env vars — no extra config needed; - The image is ~3-4 GB, so the first pull will take a while.
No NVIDIA GPU? Install "YunKan" (CPU) or "YunKan-OpenVINO" (Intel iGPU). 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 your own GPU), 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, 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.
Ports (hardcoded): 23406/tcp HTTP, 23880/tcp RTSP, 24214/tcp HLS, 24215/tcp WebRTC signaling, 23515/udp WebRTC ICE.
Keywords: NVR, VMS, CCTV, surveillance, security camera, RTSP, ONVIF, IP camera, CUDA, NVIDIA, GPU, NVDEC, RTX 3060, RTX 4060, RTX 4070, A2000, Tesla P4, Tesla T4, Quadro, 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, 自然语言.
要求
运行时参数
- 网络用户界面
http://[IP]:[PORT:23406]/- 网络
host- 外壳
sh- 特权
- false
- 额外参数
--runtime=nvidia
模板配置
Container time zone. Affects log timestamps and quiet-hours cron.
- 目标
- TZ
- 默认值
- Etc/UTC
- 价值
- Etc/UTC
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.
- 目标
- SKYVIEW_SELF_CONTAINER_NAME
- 默认值
- YunKan-CUDA
- 价值
- YunKan-CUDA
Which GPU(s) to use. On multi-GPU hosts set this to a specific 'GPU-xxxx' UUID (`nvidia-smi -L` to list); default is all.
- 默认值
- all
- 价值
- all
GPU capabilities to enable: compute (CUDA inference) + video (NVDEC hardware decode — note: iGPU + VAAPI actually saves more RAM-copy overhead in practice) + utility (nvidia-smi).
- 默认值
- compute,video,utility
- 价值
- compute,video,utility
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.
- 目标
- /app/data
- 默认值
- /mnt/user/appdata/yunkan/data
- 价值
- /mnt/user/appdata/yunkan/data
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.
- 目标
- /etc/machine-id
- 默认值
- /etc/machine-id
- 价值
- /etc/machine-id
Second hardware-fingerprint signal (motherboard DMI UUID). Keep read-only.
- 目标
- /sys/class/dmi/id/product_uuid
- 默认值
- /sys/class/dmi/id/product_uuid
- 价值
- /sys/class/dmi/id/product_uuid
YunKan uses the docker socket internally for self-identification and OTA self-restart. The default Unraid permissions are fine.
- 目标
- /var/run/docker.sock
- 默认值
- /var/run/docker.sock
- 价值
- /var/run/docker.sock
Web dashboard + REST API front door.
- 目标
- 23406
- 默认值
- 23406
- 价值
- 23406
Cameras and external players connect directly to mediamtx here.
- 目标
- 23880
- 默认值
- 23880
- 价值
- 23880
HLS streaming port.
- 目标
- 24214
- 默认值
- 24214
- 价值
- 24214
WebRTC WHEP signaling.
- 目标
- 24215
- 默认值
- 24215
- 价值
- 24215
WebRTC ICE UDP port.
- 目标
- 23515
- 默认值
- 23515
- 价值
- 23515
详细信息
registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-cuda:0.9.8在Unraid 上运行 YunKan-CUDA 。
YunKan-CUDA 已被列入Unraid OS 的社区应用程序。探索Unraid ,构建灵活的家庭服务器、NAS 或家庭实验室。