安裝部署

雲瞰 以單一 Docker 映像檔形式交付,一條指令即可啟動服務。本章涵蓋系統需求、變體選擇、安裝指令、連接埠/磁碟區對應、升級與解除安裝。

系統需求

項目最低建議
作業系統Linux 核心 ≥ 5.x(Ubuntu 22.04+ / Debian 12+)Ubuntu 24.04 LTS
CPU4 核 x86_64(或 RK3588 ARM64)8 核及以上
記憶體4 GB8–16 GB(多路 + AI 偵測)
硬碟64 GB(僅錄影)1 TB+ HDD(依保留天數估算)
Docker20.10+最新穩定版
GPU(選用)無Intel 11 代+ 內顯 / NVIDIA 30 系+

架構支援:x86_64 與 RK3588

雲瞰主要發布 x86_64 映像檔;ARM 平台目前支援瑞芯微 RK3588(NPU 加速的 rknn 變體,見 RK3588 部署)。其它 ARM 裝置(樹莓派 / 香橙派非 RK3588 型號 / Apple Silicon 等)暫不支援。

映像檔變體怎麼選

AI 偵測的硬體加速分成 4 個變體,對應不同硬體。裝錯變體只會讓偵測變慢或無法運作,其它功能(錄影、回放、對講)不受影響。一鍵部署腳本會自動偵測硬體幫你選對——下面這張表只是給想手動選擇的人參考。

映像檔 tag適用硬體說明
cpu純 CPU通用兜底,效能普通,2–4 路 5fps 可接受
openvinoIntel CPU / 內顯 / NPU第 11 代 Core 及以上,性價比首選
cudaNVIDIA 顯示卡需要裝 nvidia-container-toolkit,GTX 16 系起步
trtNVIDIA 顯示卡 + ≥ 8GB 顯示記憶體(最快)速度比 cuda 還快,但顯示記憶體 < 8GB 啟動會失敗;首次啟動會做一次 ~3 分鐘模型最佳化

按硬體選檔(詳細參考)

買新機或評估現有機器時,按 CPU 算力分 5 檔對照下表。給出推薦映像檔、能穩定帶的攝影機數、以及能流暢跑哪些 AI 偵測功能(啟用與否需自己在網頁後台手動開)。

檔位硬體舉例攝影機數推薦映像檔一句話定位
入門Celeron J4125 / J4105 / J4025(老 Atom)1 路cpu老舊礦渣機的撿便宜方案,堪用就好
家用起步N100 / N97 / N95(Alder Lake-N 4 核)1–2 路openvino主流家用,性價比起步檔
家有長輩N150 / N250 / N3051–3 路openvino能開跌倒偵測的最低門檻
多機位i5 / i7 11–13 代 + Iris Xe 內顯(80EU+)2–4 路openvino多攝影機 + 全屋偵測的合理上限
全功能 / 商用NVIDIA GTX 1060 / RTX 2060 及以上獨立顯示卡4+ 路cuda(顯示記憶體 ≥ 8GB 可上 trt 提速 ~2×)能開手勢、嬰兒哭聲等所有功能

各檔位能流暢跑的偵測功能

檔位越高,能穩定開啟的功能越多。低檔位機器開太多功能,會讓推理跟不上攝影機的影格速率,導致漏掉偵測事件。下表是每個檔位建議開啟的偵測能力——✅ 表示建議開啟、❌ 表示不建議在該硬體上開啟。新安裝預設只開啟物件偵測,其餘都需要在 網頁後台 → 設定 → 偵測 裡依需求手動啟用。

偵測功能入門 J4125家用 N100長輩 N150多機 Iris Xe全功能 NVIDIA
移動偵測✅✅✅✅✅
人臉辨識✅✅✅✅✅
物件偵測(人 / 車輛 / 動物等)❌✅✅✅✅
跌倒偵測❌❌✅✅✅
車牌辨識❌❌❌✅✅
手勢辨識❌❌❌❌✅
嬰兒哭聲辨識❌❌❌❌✅

建議至少設定子串流

AI 偵測走子串流(640x360 / 480p)比走主串流(1080p)省 5–10 倍 CPU。絕大多數 ONVIF 攝影機都有子串流。詳見 攝影機接入。

多攝影機時,關掉非重點機位的偵測

5 路攝影機裡只有 2 路是關鍵位(門口 / 客廳),剩下 3 路只錄影不偵測。這樣就算是 N100 也能穩穩運作——把算力集中在關鍵位上。

一鍵部署(推薦)

執行一行指令,腳本會自動偵測硬體、選最合適的映像檔變體、拉取映像檔、啟動容器,全程 5–15 分鐘(視網路狀況而定)。

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

想先看腳本做什麼再執行

把腳本用管道送進 bash 是業界慣例,但不是最穩妥的做法。想先審一遍再跑:先 curl -fsSL https://cdn.yun-kan.com/yunkan-install.sh -o install.sh 下載下來、cat install.sh 看一遍,再執行 bash install.sh。或者加上 --detect-only,讓腳本只偵測硬體、推薦變體,不實際部署。

腳本做了什麼:

  • 檢查系統是 Linux x86_64(或 RK3588 板),且已安裝 Docker
  • 檢查 23406 / 23880 / 24214 / 23515 等連接埠空閒
  • 偵測硬體:NVIDIA 顯示卡(含顯示記憶體)/ Intel 內顯 / Intel NPU
  • 自動在 cpu / openvino / cuda / trt 中選出最合適的映像檔變體
  • 拉取映像檔(預設從阿里雲)+ 寫入 docker-compose 檔案 + 自動產生高強度隨機金鑰
  • 啟動容器並等待健康檢查通過(約 60 秒)
  • 輸出瀏覽器存取位址(如 http://192.168.1.10:23406/)

腳本不會動你的系統

腳本不會主動安裝 Docker,也不會安裝 NVIDIA 驅動程式或 nvidia-container-toolkit。這些前置依賴如果沒有,腳本會停下來,給你一份針對你發行版的安裝指令,自己執行完再回來重跑腳本即可。

常用參數

參數用途
--variant cpu/openvino/cuda/trt強制指定映像檔變體,不讓腳本自動選擇
--detect-only只偵測硬體 + 推薦變體,不實際部署
--offline image.tar.gz離線包部署(無外網環境)
--data-dir /path自訂狀態目錄(資料庫 / cookies / 日誌,預設 ~/skyview/data)
--recordings-dir /path把錄影單獨指到大硬碟 / NAS(預設 ~/skyview/recordings,與 data 同層級;錄影可達 TB 等級)
--registry <url>換成私有映像檔儲存庫
--version 0.6.0拉取指定版本(預設 latest)
-y 或 --yes非互動模式
bash
# 只看推薦什麼變體,不部署
curl -fsSL https://cdn.yun-kan.com/yunkan-install.sh | bash -s -- --detect-only

# 強制用 trt 變體並跳過互動
curl -fsSL https://cdn.yun-kan.com/yunkan-install.sh | bash -s -- --variant trt -y

# 離線部署(先把映像檔 tar.gz scp 到機器上)
curl -fsSL https://cdn.yun-kan.com/yunkan-install.sh -o install.sh
bash install.sh --offline /path/to/skyview-image.tar.gz
幾個常用範例

需要公網網域存取

如果你前面架了 Caddy / Nginx 做 HTTPS 終止 + 自訂網域,腳本會互動式詢問網域和協定(http/https),自動寫入設定。純 LAN 部署直接選 N,瀏覽器用 http://<伺服器 IP>:23406 存取即可。

按平台部署(選擇你的裝置)

一鍵腳本對通用 Linux + Docker 環境最方便,但 NAS、HA OS、PVE 等平台都有自己的容器管理介面、網路模式、iGPU 透傳方式和已知的坑。下面針對常見目標平台提供各自的教學,包含每個平台專屬的 compose 檔案、介面部署路徑、防火牆設定和常見問題:

  • 群暉 Synology DSM 7.2+ — Container Manager + Intel 內顯機型(DS920+ / DS423+ / DS224+ 等)
  • Unraid 6.12+ — Compose Manager + Intel GPU TOP / NVIDIA Driver plugin
  • 飛牛 fnOS — Debian 12 base + N100/N305 內建 iGPU
  • 綠聯 UGOS Pro — x86 機型(DXP2800/DXP4800/DXP6800 等)
  • TrueNAS Scale 24.10+ — Custom App YAML + ZFS dataset 持久化
  • Ubuntu / Debian — apt + docker compose v2,最乾淨的部署路徑
  • Fedora 39+ — dnf docker-ce + SELinux 磁碟區標籤 + firewalld 放行
  • Proxmox VE LXC — privileged LXC + Intel iGPU 透傳(家用 N100 / N305 PVE 使用者首選)
  • Home Assistant OS 附加元件 — 加入雲瞰儲存庫一鍵安裝 yunkan / yunkan-openvino addon
  • RK3588 板 — 瑞芯微 NPU 加速的低功耗 ARM 小盒子(Orange Pi 5 / Radxa Rock 5 等);推薦 4GB 板,8G+ 實驗性

沒有你的平台?

Ubuntu / Debian 教學其實涵蓋了 99% 的 Linux 發行版(CentOS Stream / Rocky / Arch / openSUSE 等只需把 apt install 換成對應的套件管理器)。SELinux 系列(CentOS / Rocky / Alma)參考 Fedora 教學的 :Z 磁碟區標籤處理即可。

手動部署(進階)

想自己一步步掌控部署過程的,按下面 4 個步驟走。一鍵腳本本質上就是把這些指令自動化了。

  1. 1

    拉取映像檔

    選好上面四個變體之一:

    bash
    docker pull registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-cpu:latest
  2. 2

    建立資料 / 錄影目錄

    小型狀態(資料庫 / cookies / 日誌)放在 data/;錄影(可達 TB 等級)單獨放在同層級的 recordings/,方便單獨指到大硬碟 / NAS。

    bash
    mkdir -p ~/skyview/data ~/skyview/recordings && cd ~/skyview
  3. 3

    啟動容器

    用 host 網路讓攝影機直接透過宿主機連接埠,避免 NAT 影響影像品質。授權綁定要求 bind-mount /etc/machine-id 和 product_uuid,不要省略。

    bash
    docker run -d --name yunkan --restart=always \
      --network host \
      -v $(pwd)/data:/app/data \
      -v $(pwd)/recordings:/app/data/recordings \
      -v /etc/machine-id:/etc/machine-id:ro \
      -v /sys/class/dmi/id/product_uuid:/sys/class/dmi/id/product_uuid:ro \
      registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-cpu:latest
  4. 4

    開啟瀏覽器

    首次造訪會跳到 /setup 精靈,按 首次啟動 一章往下走。

    http://<伺服器 IP>:23406

硬體資訊必須 bind-mount

授權綁定在本機硬體上。如果你只掛載 data、不掛這兩個檔案,下次重建容器時硬體指紋會改變,授權就會失效。

連接埠與磁碟區對應

雲瞰 用 host 網路模式運作,所有連接埠都直接綁在宿主機上。正式環境的連接埠都加了一個非常規偏移,落在 2xxxx 區間,避免和你機器上已有的 nginx 80/443、redis 6379、其它服務的 8080/8554/8888 衝突。

連接埠用途必須開嗎
23406 / TCP網頁管理後台 + App 介面 + 直播必須
23515 / UDP + TCP即時畫面低延遲通道建議開,不開會降級為 HLS(延遲約 2.5 秒)
23880 / TCPRTSP 直連輸出(VLC / 第三方 NVR 用)可選
23443 / TCP公網直連(HTTPS),預設關閉只在需要外網存取時開
24214 / TCP內部串流服務不用開
容器路徑用途建議
/app/data資料庫 / 設定 / cookies / 日誌等小型狀態必掛,生命週期跨容器
/app/data/recordings錄影(可達 TB 等級,巢狀掛在 /app/data 之上)必掛,可單獨指到大硬碟 / NAS;模型已內建在映像檔裡,不需要掛載
/etc/machine-id硬體指紋 1/2必掛唯讀
/sys/class/dmi/id/product_uuid硬體指紋 2/2必掛唯讀

環境變數參考

以下環境變數全部可選——host 網路的標準部署一個都不用設,只有橋接網路、反向代理、固定內部金鑰等進階場景才用得到。在 compose 檔案的 environment: 段(或各 NAS 平台的環境變數表單)裡設定。

環境變數預設用途
SKYVIEW_WEBRTC_EXTERN_IPS自動偵測區域網路 IP即時畫面(WebRTC)對外通告的 IP / 網域,逗號分隔。橋接網路或多層 NAT 下客戶端連不上即時畫面時設定
SKYVIEW_PUBLIC_PORT23406客戶端實際存取網頁後台的連接埠。只在橋接網路把 23406 映射為其它宿主連接埠時設定,否則分享連結和區域網路探索會帶錯連接埠
SKYVIEW_PUBLIC_TCP_PORT關閉公網直連的 HTTPS 連接埠。通常在網頁後台裡設定即可;用環境變數設定後以它為準,網頁後台對應項鎖定
SKYVIEW_PUBLIC_TLS_CERT / SKYVIEW_PUBLIC_TLS_KEY自動申請公網直連改用自備憑證:容器內憑證鏈 / 私鑰 PEM 的路徑,必須成對設定
SKYVIEW_MEDIA_SECRET首次啟動自動產生內部串流媒體介面金鑰(32 位元組十六進位)。僅進階整合需要固定金鑰時設定
SKYVIEW_MDNS_ENABLED1設為 0 關閉區域網路探索通告(yun-kan.local)。宿主系統已自帶 mDNS 服務時使用
SKYVIEW_DB_TYPE 等(_SOCKET 或 _HOST / _PORT,加 _USER / _PASSWORD / _NAME)未設由部署範本固定資料庫(編排自帶資料庫容器時用)。設定後資料庫組態以環境變數為準:精靈跳過資料庫步驟,設定頁的線上遷移停用

升級

最方便:網頁後台一鍵升級。 瀏覽器進 網頁後台 → 設定 → 系統 → 檢查更新,發現新版本點 "升級" 即可——系統會自動拉取新映像檔並重建容器(升級前自動備份資料庫,新版本啟動異常會自動回滾到升級前版本),幾分鐘後頁面自動重連到新版本。

想自己在 SSH 裡手動升級也行:

bash
cd ~/skyview
docker compose -f compose.yml pull
docker compose -f compose.yml up -d

或者重跑一鍵腳本(帶 -y 不打擾):

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

資料自動遷移

資料庫結構升級會在容器啟動時自動完成,不需要人工操作。建議升級前先 tar -czf data-backup-$(date +%F).tar.gz data/ 備份一下。

解除安裝

bash
cd ~/skyview
docker compose -f compose.yml down
docker rmi registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-cpu:latest
# 錄影 / 資料庫仍會保留,需要徹底清理:
rm -rf ~/skyview

data 目錄刪除後無法恢復

裡面有資料庫、人臉庫、錄影、115 登入資訊。刪除前請確認所有需要的錄影都已下載或上傳到雲端。

這篇文件有幫助嗎?