安装部署
云瞰 以单 Docker 镜像形式交付,一条命令即可起服务。本章覆盖系统要求、变体选择、安装命令、端口/卷映射、升级与卸载。
系统要求
| 项目 | 最低 | 推荐 |
|---|---|---|
| 操作系统 | Linux 内核 ≥ 5.x(Ubuntu 22.04+ / Debian 12+) | Ubuntu 24.04 LTS |
| CPU | 4 核 x86_64(或 RK3588 ARM64) | 8 核及以上 |
| 内存 | 4 GB | 8–16 GB(多路 + AI 检测) |
| 磁盘 | 64 GB(仅录像) | 1 TB+ HDD(按保留天数估算) |
| Docker | 20.10+ | 最新稳定版 |
| GPU(可选) | 无 | Intel 11 代+ 集显 / NVIDIA 30 系+ |
架构支持:x86_64 与 RK3588
镜像变体怎么选
AI 检测的硬件加速分 4 个变体,对应不同硬件。装错变体只会让检测变慢或不工作,其它功能(录像、回放、对讲)不受影响。一键部署脚本会自动探测硬件帮你选对——下面这张表只是给想手动选的人参考。
| 镜像 tag | 适用硬件 | 说明 |
|---|---|---|
cpu | 纯 CPU | 通用兜底,性能一般,2–4 路 5fps 可接受 |
openvino | Intel CPU / 集显 / NPU | 11 代酷睿及以上,性价比首选 |
cuda | NVIDIA 显卡 | 需要装 nvidia-container-toolkit,GTX 16 系起步 |
trt | NVIDIA 显卡 + ≥ 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 / N305 | 1–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 |
|---|---|---|---|---|---|
| 运动检测 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 人脸识别 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 物体识别(人/车/动物等) | ❌ | ✅ | ✅ | ✅ | ✅ |
| 跌倒检测 | ❌ | ❌ | ✅ | ✅ | ✅ |
| 车牌识别 | ❌ | ❌ | ❌ | ✅ | ✅ |
| 手势识别 | ❌ | ❌ | ❌ | ❌ | ✅ |
| 婴儿哭声识别 | ❌ | ❌ | ❌ | ❌ | ✅ |
建议至少配子码流
多摄像头时关掉非重点机位的检测
一键部署(推荐)
运行一行命令,脚本会自动检测硬件、选最合适的镜像变体、拉镜像、起容器,全程 5–15 分钟(看网络)。
curl -fsSL https://cdn.yun-kan.com/yunkan-install.sh | 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 / 23515等端口空闲 - 探测硬件:NVIDIA 显卡(含显存)/ Intel 集显 / Intel NPU
- 自动选 cpu / openvino / cuda / trt 中最合适的镜像变体
- 拉镜像(默认从阿里云)+ 写 docker-compose 文件 + 自动生成强随机密钥
- 启动容器并等健康检查通过(约 60 秒)
- 输出浏览器访问地址(如
http://192.168.1.10:23406/)
脚本不会动你的系统
常用参数
| 参数 | 用途 |
|---|---|
--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 | 不交互模式 |
# 只看推荐什么变体,不部署
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需要公网域名访问
http://<服务器 IP>:23406 访问即可。按平台部署(选你的设备)
一键脚本对通用 Linux + Docker 环境最方便,但 NAS、HA OS、PVE 等平台都有自己的容器管理 UI、网络模式、iGPU 透传方式和已知坑。下面针对常见目标平台给单独教程,包含每个平台特定的 compose 文件、UI 部署路径、防火墙配置和常见问题:
- 群晖 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+ 实验性
没你的平台?
apt install 换成对应包管理器)。SELinux 系(CentOS / Rocky / Alma)参考 Fedora 教程的 :Z 卷标签处理即可。手动部署(高级)
想自己一步步控制部署过程的,按下面 4 步走。一键脚本本质就是把这些命令自动化了。
- 1
拉镜像
选好上面四个变体之一:
bashdocker pull registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-cpu:latest - 2
建数据 / 录像目录
小状态(数据库 / cookies / 日志)落在
data/;录像(可达 TB 级)单独放同级的recordings/,方便单独指到大盘 / NAS。bashmkdir -p ~/skyview/data ~/skyview/recordings && cd ~/skyview - 3
起容器
用 host 网络让相机直接通过宿主机端口,避免 NAT 影响视频质量。授权绑定要求 bind-mount
/etc/machine-id和product_uuid,不要省。bashdocker 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
硬件信息必须 bind-mount
端口和卷映射
云瞰 用 host 网络模式跑,所有端口都直接绑在宿主机上。生产端口都加了一个非常规偏移到 2xxxx 区间,避免和你机器上已有的 nginx 80/443、redis 6379、其它服务的 8080/8554/8888 冲突。
| 端口 | 用途 | 必须开吗 |
|---|---|---|
| 23406 / TCP | 网页管理后台 + App 接口 + 直播 | 必须 |
| 23515 / UDP + TCP | 实时画面低延迟通道 | 建议开,不开会降级为 HLS(延迟约 2.5 秒) |
| 23880 / TCP | RTSP 直连出(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_PORT | 23406 | 客户端实际访问网页后台的端口。只在桥接网络把 23406 映射为其它宿主端口时设置,否则分享链接和局域网发现会带错端口 |
SKYVIEW_PUBLIC_TCP_PORT | 关闭 | 公网直连的 HTTPS 端口。通常在网页后台里设置即可;用环境变量设置后以它为准,网页后台对应项锁定 |
SKYVIEW_PUBLIC_TLS_CERT / SKYVIEW_PUBLIC_TLS_KEY | 自动申请 | 公网直连改用自备证书:容器内证书链 / 私钥 PEM 的路径,必须成对设置 |
SKYVIEW_MEDIA_SECRET | 首次启动自动生成 | 内部流媒体接口密钥(32 字节十六进制)。仅进阶集成需要固定密钥时设置 |
SKYVIEW_MDNS_ENABLED | 1 | 设为 0 关闭局域网发现通告(yun-kan.local)。宿主系统已自带 mDNS 服务时使用 |
SKYVIEW_DB_TYPE 等(_SOCKET 或 _HOST / _PORT,加 _USER / _PASSWORD / _NAME) | 未设 | 由部署模板固定数据库(编排自带数据库容器时用)。设了后数据库配置以环境变量为准:向导跳过数据库步骤,设置页的在线迁移停用 |
升级
最方便:网页后台一键升级。 浏览器进 网页后台 → 设置 → 系统 → 检查更新,发现新版本点 "升级" 即可——系统会自动拉取新镜像并重建容器(升级前自动备份数据库,新版本启动异常会自动回滚到升级前版本),几分钟后页面自动重连到新版本。
想自己在 SSH 里手动升级也行:
cd ~/skyview
docker compose -f compose.yml pull
docker compose -f compose.yml up -d或者重跑一键脚本(带 -y 不打扰):
curl -fsSL https://cdn.yun-kan.com/yunkan-install.sh | bash -s -- -y数据自动迁移
tar -czf data-backup-$(date +%F).tar.gz data/ 备份一下。卸载
cd ~/skyview
docker compose -f compose.yml down
docker rmi registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-cpu:latest
# 录像 / 数据库继续保留,需要彻底清理:
rm -rf ~/skyviewdata 目录删了无法恢复