YunKan-TRT

YunKan-TRT

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 recognition / license plate (ALPR / LPR) / pose & fall / package / baby-cry 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 TensorRT variant — the highest-throughput option for NVIDIA GPUs (≥6 GB VRAM recommended; ≥8 GB for many high-resolution cameras). On first start it builds inference engines optimized for your exact GPU — this takes a few extra minutes, one time only; the engines are cached on disk (inside the data directory) and reused across restarts and image updates, rebuilt only if you change the GPU. Pick this over "YunKan-CUDA" when you run many cameras / many AI features on one GPU and want the most headroom. Prefer a no-wait first start, or the engine build fails on an older GPU? Use "YunKan-CUDA" instead — same features, no engine build.

Prerequisites:

  1. Install the "NVIDIA Driver" plugin in Unraid → reboot → nvidia-smi works on the host;
  2. This template already sets --runtime=nvidia and the NVIDIA_* env vars — no extra config needed;
  3. This is the largest of the four image variants, so the first pull will take a while.

No NVIDIA GPU? Install "YunKan" (CPU) or "YunKan-OpenVINO" (Intel iGPU). All four 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. GB/T 28181 cameras & NVRs (Hikvision / Dahua / Uniview, etc.) register directly into YunKan — import individual channels, including many NVR channels in one batch.

Built in: 24/7 continuous recording + motion-event highlights, NVR-style multi-camera synced timeline playback, a Birdseye all-cameras overview, PTZ control with presets, virtual tripwires (line-crossing) for accurate entry/exit direction, customizable video-wall layouts, a built-in file manager for recordings & snapshots, a people library for face recognition, 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), Apple Home (HomeKit) incl. HomeKit Secure Video — record motion clips to iCloud (Pro), 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 + WebRTC (WHEP) signaling, 23515/udp+tcp WebRTC ICE media.

Keywords: NVR, VMS, CCTV, surveillance, security camera, RTSP, ONVIF, IP camera, TensorRT, TRT, CUDA, NVIDIA, GPU, NVDEC, RTX 3060, RTX 4060, RTX 4070, A2000, Tesla T4, 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, HomeKit, Apple Home, HomeKit Secure Video, HKSV, Siri, GB28181, GB/T 28181, birdseye, virtual tripwire, line crossing, entry exit detection, video wall, PTZ, pan tilt zoom, package detection, parcel detection, baby cry detection, people library, NVR playback, multi-channel playback, go2rtc, 云瞰, 摄像头, 监控, 显卡推理, AI 监控, 本地 AI, 自然语言.

Install YunKan-TRT on Unraid in a few clicks.

Find YunKan-TRT in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for YunKan-TRT Review the template variables and paths Click Install

Requirements

Install the "NVIDIA Driver" plugin so `nvidia-smi` works on the host, otherwise the container can't find CUDA at startup. First start builds GPU-specific inference engines — give it a few extra minutes before adding cameras.

Download Statistics

531
Total Downloads

Related apps

Details

Repository
martin888/yunkan-trt:latest
Last Updated2026-06-11
First Seen2026-06-12

Runtime arguments

Web UI
http://[IP]:[PORT:23406]/
Network
host
Shell
sh
Privileged
false
Extra Params
--runtime=nvidia

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-TRT
Value
YunKan-TRT
NVIDIA_VISIBLE_DEVICESVariable

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.

Default
all
Value
all
NVIDIA_DRIVER_CAPABILITIESVariable

GPU capabilities to enable: compute (CUDA / TensorRT inference) + video (NVDEC hardware decode — note: iGPU + VAAPI actually saves more RAM-copy overhead in practice) + utility (nvidia-smi).

Default
compute,video,utility
Value
compute,video,utility
Data directory (DB / config / logs)Pathrw

Small state: database, config, cookies, logs, upgrade state, and the cached GPU inference engines built on first start. Unraid convention is /mnt/user/appdata/app/ (cache pool / SSD recommended). Recordings have their own path entry below — don't size this share for video.

Target
/app/data
Default
/mnt/user/appdata/yunkan/data
Value
/mnt/user/appdata/yunkan/data
Recordings directoryPathrw

Camera recordings — can grow to TBs. Mounted on top of the data directory (container path /app/data/recordings), so snapshots / exports / face thumbnails follow it automatically. **To put recordings on a big array share or a dedicated pool, change the host path of THIS entry — do not add your own path mapping with a different container path, it will be silently ignored.** If YunKan already ran on this host and you point this at a new location, FIRST move the contents of .../yunkan/data/recordings/ there — otherwise the old recordings become invisible to the app (playback and auto-cleanup can't see them) while still occupying the data share.

Target
/app/data/recordings
Default
/mnt/user/appdata/yunkan/data/recordings
Value
/mnt/user/appdata/yunkan/data/recordings
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
RTSPPorttcp

Cameras and external players connect directly here.

Target
23880
Default
23880
Value
23880
HLS + WebRTC (WHEP) signalingPorttcp

HLS streaming, WebRTC WHEP signaling, and the media-server API / hooks all share this one port.

Target
24214
Default
24214
Value
24214
WebRTC ICE mediaPortudp

WebRTC ICE media (UDP + TCP).

Target
23515
Default
23515
Value
23515