跳到主要内容

群晖 NAS 一键部署

群晖 NAS 一键部署适合在 DSM 的 Container Manager 里启动卷王 v1.12.0 和 MySQL,不需要自己安装 Java。

使用场景

  • 你有一台群晖 NAS,并且已经安装 Container Manager
  • 你希望卷王在家里、办公室或学校内网长期运行。
  • 你希望数据、附件和日志都保存在 NAS 的固定目录里,方便备份。
注意

NAS 部署适合内网使用。需要外网访问时,再单独配置路由器端口转发、反向代理或内网穿透。

操作步骤

1. 打开 Container Manager

在 DSM 套件中心安装并打开 Container Manager

如果后面需要用命令排查问题,可以进入 控制面板终端机和 SNMP,勾选 启动 SSH 功能

群晖终端机设置

群晖开��启 SSH

如果镜像下载很慢,进入 Container Manager注册表设置,添加镜像加速地址。

群晖镜像注册表设置

群晖镜像加速地址

2. 准备项目目录

打开 File Station,在 docker 目录下新建 surveyking 文件夹。

再进入 surveyking,新建下面几个文件夹:

文件夹保存什么
files上传的附件
logs运行日志
mysql/dataMySQL 数据库文件
sqls以后手动维护 SQL 时用

群晖项目目录

注意

mysql/data 是数据库目录,不要随便删除。删除后,问卷、用户和答卷数据都会丢失。

3. 新建项目并粘贴 Compose

进入 Container Manager项目,点击 新增

群晖新建项目入口

项目名称填写 surveyking,路径选择刚才创建的 docker/surveyking

选择 创建 docker-compose.yml,把下面内容完整粘贴进去:

services:
mysql:
image: mysql:8.0
container_name: surveyking-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: surveyking
MYSQL_DATABASE: surveyking
volumes:
- ./mysql/data:/var/lib/mysql
ports:
- '33060:3306'
command: >
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--default-time-zone='+8:00'
--log-bin-trust-function-creators=1

surveyking:
image: surveyking/surveyking:latest
container_name: surveyking-app
restart: unless-stopped
environment:
PROFILE: mysql
MYSQL_USER: root
MYSQL_PASS: surveyking
DB_URL: jdbc:mysql://mysql:3306/surveyking?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8mb4
TZ: Asia/Shanghai
volumes:
- ./files:/app/files
- ./logs:/app/logs
depends_on:
- mysql
ports:
- '1991:1991'

群晖粘贴 Compose

提示

v1.12.0 会在 /setup 页面初始化数据库,本文这份 Compose 不需要提前导入 init-mysql.sql

4. 启动项目

确认配置后点击完成,Container Manager 会自动拉取镜像并启动项目。

如果没有自动启动,回到项目列表,选中 surveyking 后点击 启动

群晖项目启动

5. 打开并初始化系统

在浏览器打开:

http://群晖NAS的IP:1991

如果没有自动跳转,直接打开:

http://群晖NAS的IP:1991/setup

选择 MySQL 数据库,部署方式选择 Docker Compose 内置 MySQL。如果页面里的默认值不一致,按下面填写:

配置项填写内容
数据库地址mysql
端口号3306
数据库名称surveyking
用户名root
密码surveyking

然后按 初始化、备份和升级 填写系统信息并完成初始化。第一次登录后,马上修改默认密码。

群晖 MySQL 目录

群晖 MySQL 数据目录

常见问题

手机为什么不能访问 localhost:1991

localhost 只表示当前这台设备。

手机访问卷王时,要输入群晖 NAS 的局域网 IP,比如:

http://192.168.1.23:1991

不要在手机上输入 http://localhost:1991。那样访问的是手机自己,不是 NAS。

/setup 里为什么端口填 3306,不是 33060

33060 是 NAS 对外暴露 MySQL 的端口,方便你用数据库工具连接。

卷王容器连接 MySQL 容器时走内部网络,所以 /setup 里填:

mysql:3306
镜像一直下载失败怎么办?

先检查 NAS 能不能正常访问外网。

如果外网正常,可以在 Container Manager注册表设置 里添加镜像加速地址,然后重新启动项目。

也可以把 Compose 里的镜像改成阿里云镜像:

image: registry.cn-hangzhou.aliyuncs.com/surveyking/surveyking:latest
端口 1991 被占用了怎么办?

把 Compose 里的:

ports:
- '1991:1991'

改成:

ports:
- '8080:1991'

保存后重新启动项目,再访问 http://群晖NAS的IP:8080

怎么备份?

优先进入系统设置导出备份包。备份、恢复和升级步骤见:初始化、备份和升级

如果系统已经打不开,再停止 surveyking 项目,手动复制 mysql/datafiles 目录。