Sign inSign up

martin888/yunkan-cuda

By martin888

•Updated 2 days ago

Self-hosted AI NVR/VMS, NVIDIA CUDA accelerated - on-device AI, no cloud

Image
0

3.8K

martin888/yunkan-cuda repository overview

⁠YunKan (云瞰) — self-hosted AI NVR / VMS · CUDA (NVIDIA GPU)

Privacy-first home & small-business camera recording + on-device AI. Your video never leaves your LAN — nothing is uploaded to any vendor cloud, and AI inference (people / vehicles / faces / license plates / pose / fall) runs entirely on-box, no OpenAI / Gemini / Claude API key required.

A self-hosted alternative to Frigate / Shinobi / ZoneMinder / Scrypted / Agent DVR / iSpy / MotionEye / BlueIris — pre-bundled into a single container (ZLMediaKit + database + recording + detection + web admin + nginx, supervised by s6-overlay).

This is the CUDA build — NVIDIA GPU accelerated inference. Want even faster on NVIDIA? try martin888/yunkan-trt (TensorRT). No GPU? use martin888/yunkan-cpu. Intel iGPU? use martin888/yunkan-openvino. Tags: latest and pinned (e.g. 0.9.9). Only one variant runs at a time.

Requires the host to have NVIDIA drivers + nvidia-container-toolkit installed.


⁠Features

  • 24/7 continuous recording + motion-event highlights, scrubbable timeline playback.
  • On-device AI: person / vehicle / pet / face recognition / license plate (ALPR) / pose & fall detection / gesture / cry detection — all local, CUDA-accelerated.
  • AI scene understanding: each event gets a natural-language summary + semantic event search.
  • Sub-second live via WebRTC (WHEP) with HLS fallback; live detection-box overlay.
  • Two-way talkback, Home Assistant MQTT auto-discovery, Web admin + Android + iOS apps, optional 115 Cloud off-site backup.
  • Works with any RTSP / ONVIF camera; Tapo / Wyze / Xiaomi / Eufy / Aqara / Imou via a go2rtc bridge.

Auto-detects the NVIDIA GPU, wires up the runtime, picks this variant, and sets up OTA self-update:

curl -fsSL https://cdn.yun-kan.com/yunkan-install.sh | bash

Then open http://:23406/, run the setup wizard (pick SQLite), create an admin, add cameras.

⁠Manual docker compose (CUDA)

Save as compose.yml then docker compose up -d. Needs nvidia-container-toolkit on the host:

name: yunkan

services:
  yunkan:
    image: martin888/yunkan-cuda:0.9.9   # or :latest
    container_name: yunkan
    restart: always
    network_mode: host
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    volumes:
      - ./data:/app/data
      - ./recordings:/app/data/recordings
      - /etc/machine-id:/etc/machine-id:ro
      - /sys/class/dmi/id/product_uuid:/sys/class/dmi/id/product_uuid:ro
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - TZ=Asia/Shanghai
      - SKYVIEW_SELF_CONTAINER_NAME=yunkan

Keep the machine-id / product_uuid read-only mounts (license fingerprint). Drop the docker.sock mount to disable in-app upgrades (then upgrade via docker compose pull && up -d).


⁠Ports (host networking)

PortProtoPurpose
23406tcpWeb dashboard / REST API (open this in a browser)
23880tcpRTSP
24214tcpHLS + WebRTC (WHEP) signaling + media-server API/hooks
23515udp+tcpWebRTC ICE media

Public / WAN: set SKYVIEW_WEBRTC_EXTERN_IPS=<public-ip-or-domain>.


Keywords: NVR, VMS, CUDA, NVIDIA, GPU, NVDEC, RTX, person detection, vehicle detection, face recognition, license plate, ALPR, fall detection, WebRTC, HLS, Home Assistant, MQTT, AI NVR, on-device AI, edge AI, no cloud, privacy, self-hosted, Frigate alternative, 云瞰, 显卡推理, 本地 AI.

Tag summary

Content type

Image

Digest

sha256:a9c1fa55c…

Size

2.7 GB

Last updated

2 days ago

docker pull martin888/yunkan-cuda