安装部署

云瞰 以单 Docker 镜像形式交付,一条命令即可起服务。本章覆盖系统要求、变体选择、安装命令、端口/卷映射、升级与卸载。

系统要求

项目最低推荐
操作系统Linux 内核 ≥ 5.x(Ubuntu 22.04+ / Debian 12+)Ubuntu 24.04 LTS
CPU4 核 x86_648 核及以上
内存4 GB8–16 GB(多路 + AI 检测)
磁盘64 GB(仅录像)1 TB+ HDD(按保留天数估算)
Docker20.10+最新稳定版
GPU(可选)Intel 11 代+ 集显 / NVIDIA 30 系+

仅支持 x86_64 架构

云瞰 现阶段只发布 x86_64 镜像。树莓派 / 香橙派 / Apple Silicon Mac / 大多数家用 ARM NAS(绿联 DXP 系列、极空间 Z2/Z4 系列等)暂不支持。装机前先在目标机器上跑 uname -m,输出必须是 x86_64 才能装。

镜像变体怎么选

AI 检测的硬件加速分 4 个变体,对应不同硬件。装错变体只会让检测变慢或不工作,其它功能(录像、回放、对讲)不受影响。一键部署脚本会自动探测硬件帮你选对——下面这张表只是给想手动选的人参考。

镜像 tag适用硬件说明
cpu纯 CPU通用兜底,性能一般,2–4 路 5fps 可接受
openvinoIntel CPU / 集显 / NPU11 代酷睿及以上,性价比首选
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 + Docker 已装
  • 检查 23406 / 23880 / 24214 / 24215 / 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 等平台都有自己的容器管理 UI、网络模式、iGPU 透传方式和已知坑。下面针对常见目标平台给单独教程,包含每个平台特定的 compose 文件、UI 部署路径、防火墙配置和常见问题:

没你的平台?

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-idproduct_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 接口必须(也可放在反代后做 HTTPS)
23880 / TCPRTSP 直连出(VLC / 第三方 NVR 用)可选
24214 / TCP回放 + 兜底实时画面建议开
24215 / TCP实时画面(低延迟通道信令)建议开
23515 / UDP实时画面(低延迟通道音视频)建议开,不开会自动降级到 24214(延迟变 2–4s)
容器路径用途建议
/app/data数据库 / 配置 / cookies / 日志等小状态必挂,生命周期跨容器
/app/data/recordings录像(可达 TB 级,嵌套挂在 /app/data 之上)必挂,可单独指到大盘 / NAS;模型已内置在镜像里,无需挂载
/etc/machine-id硬件指纹 1/2必挂只读
/sys/class/dmi/id/product_uuid硬件指纹 2/2必挂只读

升级

最方便:网页后台一键升级。 浏览器进 网页后台 → 设置 → 系统 → 检查更新,发现新版本点 "升级" 即可——内置 OTA sidecar (yunkan-updater) 会接管 docker compose pull + up -d --force-recreate,几分钟后页面自动重连到新版本。

想自己在 SSH 里手动升级也行:

bash
cd ~/skyview
docker compose -f compose.all-in-one.yml pull
docker compose -f compose.all-in-one.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.all-in-one.yml down
docker rmi registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-cpu:latest
# 录像 / 数据库继续保留,需要彻底清理:
rm -rf ~/skyview

data 目录删了无法恢复

里面有数据库、人脸库、录像、115 登录信息。删之前请确认所有需要的录像已经下载或上传到云端。
安装部署 - 云瞰 文档