飞牛 NAS(fnOS)部署
SurveyKing 官方 Docker 镜像支持 amd64 和 arm64,可以在安装了 Docker 的飞牛 NAS 上运行。本文使用 Compose 同时部署 SurveyKing v1.13.0 和 MySQL 8。
1. 创建持久化目录
在文件管理器中新建共享目录,例如 docker/surveyking,并在其中创建:
surveyking/
├── config/
├── db/
├── files/
├── logs/
└── mysql/
├── conf/
└── data/
这些目录保存配置、附件和数据库。重新创建容器时也必须保留。
2. 创建 Compose 项目
在 Docker 应用的 Compose/项目功能中创建项目,把工作目录设置为刚才的 surveyking 目录。
使用 Docker Compose 部署 中的 .env 和 docker-compose.yml。至少修改 MySQL root 密码:
SURVEYKING_PORT=1991
MYSQL_ROOT_PASSWORD=替换为你自己的强密码
相对路径 ./config、./files、./mysql/data 会映射到当前项目目录。不要添加旧教程中的 sqls 挂载,也不要预先导入初始化 SQL。
3. 启动并检查
创建并启动项目后,确认 mysql 与 surveyking 两个服务都处于运行状态。需要排查时,先查看 SurveyKing 容器日志;应用等待 MySQL 健康后才会启动。
4. 完成 /setup
在同一局域网的电脑上打开:
http://NAS 的局域网 IP:1991/setup
选择 MySQL 并填写:
| 配置项 | 值 |
|---|---|
| 地址 | mysql |
| 端口 | 3306 |
| 数据库名 | surveyking |
| 用户名 | root |
| 密码 | .env 中的 MYSQL_ROOT_PASSWORD |
这里的数据库地址是容器服务名,不是 NAS 的 IP;端口是容器内部端口 3306。
5. 局域网访问
局域网用户使用:
http://NAS 的局域网 IP:1991
如果打不开,检查 fnOS 防火墙、Docker 端口映射和 NAS 的 IP 是否变化。建议在路由器中为 NAS 固定 DHCP 地址。
不建议直接把 1991 映射到公网。需要外网访问时,优先通过 HTTPS 反向代理、VPN 或可信的内网穿透服务,并为管理员设置强密码。
6. 备份和升级
升级前先在 SurveyKing 内导出备份,再备份项目目录中的:
config/;files/;mysql/data/;.env和 Compose 文件。
升级时拉取 surveyking/surveyking:latest 并重新创建 SurveyKing 服务,MySQL 数据目录保持不变。不要删除项目卷或持久化目录。