部署与安全
装在哪、数据放哪、外网怎么开,都在这一页说清楚。
🐳 Docker 部署(推荐)
核心就两件事:端口映射、数据目录挂载。不用 FUSE、不用 privileged、不用 host 网络。
① 通用 Docker(群晖 / 威联通 / Ubuntu / 绿联…)
services:
zyjkw:
image: crpi-dbr3innzupa5risf.cn-hangzhou.personal.cr.aliyuncs.com/zyjkw/zyjkw:latest
container_name: zyjkw
restart: unless-stopped
ports:
- "10001:10001" # HTTP
- "10002:10002" # HTTPS(证书放 data/certs)
environment:
- TZ=Asia/Shanghai
# - WJK_HTTP_PORT=10001 # 改容器内端口时解开,ports 左边也要跟着改
# - WJK_PUBLIC_PORT=10001 # 仅用于页面显示"外部端口"
volumes:
- ./data:/data # 数据、授权、缓存、日志都在这里
# - /vol1/1000/网盘挂载:/mnt/cd2 # 要用「挂载中转」才需要
logging: # 防止日志把磁盘写满
driver: json-file
options: { max-size: "10m", max-file: "3" }
在 compose 目录执行 docker compose up -d,浏览器打开 http://NAS_IP:10001,首次会让你创建管理员账号。
② 飞牛 NAS 版本(差别只有路径)
飞牛的 compose 工作目录不确定,一律用绝对路径,不要写 ./data:
services:
zyjkw:
image: crpi-dbr3innzupa5risf.cn-hangzhou.personal.cr.aliyuncs.com/zyjkw/zyjkw:latest
container_name: zyjkw
restart: unless-stopped
ports:
- "10001:10001"
- "10002:10002"
environment:
- TZ=Asia/Shanghai
volumes:
- /vol1/1000/Docker/zyjkw/data:/data
- /vol1/1000/网盘挂载:/mnt/cd2 # 可选
logging:
driver: json-file
options: { max-size: "10m", max-file: "3" }
飞牛注意:路径区分大小写——
/vol1/1000/Docker(大写 D)和 docker 是两个不同目录,写错会在一份全新空目录里启动:机器码变化、授权失效、任务清空。两种版本别混用:飞牛 fpk 版已经能一键更新;偏好 Docker 就固定用一份 compose。两个同时跑会抢端口。
飞牛 fpk 版改端口:不在软件页面改,去 飞牛应用中心 → 该应用 → 应用设置 → 运行设置,改完飞牛会自动重启应用;软件内「服务端口」页只展示当前值。
③ 要不要开 host 网络?
| 模式 | 适合 | 代价 |
|---|---|---|
| bridge(默认,推荐) | 99% 的场景;端口映射清晰,隔离好,能多实例 | 容器内访问宿主服务要用 host.docker.internal 或宿主 IP |
| host | 容器里要直接用宿主 127.0.0.1 的服务,或做局域网发现/UPnP | 不能再写 ports;容器端口即宿主端口,容易和飞牛自带服务冲突;隔离变弱 |
结论:默认用 bridge。本软件不需要 host 网络;只有当你确认容器内必须访问宿主本地服务时才切 host,切换写法:
services:
zyjkw:
image: crpi-dbr3innzupa5risf.cn-hangzhou.personal.cr.aliyuncs.com/zyjkw/zyjkw:latest
network_mode: host # 开了 host 就删掉 ports 段
environment:
- TZ=Asia/Shanghai
volumes:
- ./data:/data
④ 可选增强(按需加)
| 需求 | 加什么 |
|---|---|
| 核显硬件转码(4K HEVC 转 1080P 更快、CPU 占用低) | devices: ["/dev/dri:/dev/dri"] + group_add: ["render","video"] |
| TMDB 访问困难(部分网络 DNS 被污染) | extra_hosts: ["api.tmdb.org:<可用IP>","image.tmdb.org:<可用IP>"];一般不需要,程序内置了多域名与中转兜底 |
| 自定义心跳地址(企业内网) | WJK_HEARTBEAT_URL=http://内网地址/v1/heartbeat |
| 限制内存 / CPU | mem_limit: 2g、cpus: "2.0" |
| 健康检查 | healthcheck: { test: ["CMD","python","/app/healthcheck.py"], interval: 60s } |
⑤ 常用运维命令
docker compose logs -f --tail=100 # 看日志
docker compose pull && docker compose up -d # 升级(数据不动)
docker exec -it zyjkw sh # 进容器排查
tar -czf data_backup_$(date +%Y%m%d).tar.gz data # 备份数据目录
docker compose down && docker compose up -d # 重启容器
升级不会丢数据:所有状态都在
data/(账号、授权、任务、缓存、证书)。换机器时把这个目录整份拷走即可;容器/虚拟机请保留 data/license/.license_identity,否则机器码会变。🧩 飞牛应用(fpk)
- 飞牛「应用中心 → 手动安装」,选
zyjkw-monitor_x.y.z.fpk - 装完在应用列表点「打开」,首次同样创建管理员
- 之后可在应用内点「立即更新」:下载 → 校验 sha256 → 停应用 → 安装 → 启动
升级保护:安装包校验不过不会动现有版本;安装失败会重试 3 次,仍失败自动回滚到上一版。数据在应用的数据目录里(安装时可选),卸载不会删。
🪟 Windows 桌面版
- 双击安装包,装完是独立窗口(不需要浏览器)+ 托盘常驻
- 数据在
%LOCALAPPDATA%\ResourceMonitor\data,卸载不删 - 关窗口 = 收进托盘;退出走托盘菜单(托盘被 Windows 收进「^」里找不到时,可用设置页的「退出程序」)
- 更新:设置里点「立即更新」,后台静默安装并自动重启回来
💾 数据目录与迁移
| 路径 | 内容 | 能不能删 |
|---|---|---|
data/data_users.json | 账号与密码哈希 | 不能删(删了要重新建管理员) |
data/license/ | 授权码 + 实例标识 | 不能删;换机器会变机器码 |
data/server_config.json | 端口、更新渠道等本机配置 | 不能删 |
data/*.json | 任务、日志、状态 | 删了任务会丢 |
data/cache/ data/remux/ data/strm/ | 缓存、转封装、生成的 STRM | 可以删,会自动重建 |
迁移:整目录拷走即可;Docker 里就是 ./data。CPU 架构变化(x86 ↔ ARM)需要重新拉对应镜像。
🌐 端口与反向代理
- 只用内网:直接
http://NAS_IP:10001,不需要改任何东西 - 要外网:不要把 10001 直接映射到公网。推荐 Cloudflare Tunnel / 反向代理 + HTTPS + 访问控制
- 反向代理要开 WebSocket、放大上传体积(上传文件走请求体)、超时 ≥ 600 秒(转码/大文件)
- HTTPS 证书放
data/certs/server.crt+server.key,程序会自动加载
🛡 安全
外网访问前请先看「安全」页:暴露面收敛、加固清单、出问题怎么回滚。