开源问卷系统DWSurvey部署过程

一键部署

🎉 只需几分钟

只需几分钟,简单的六步就能搭建属于自己的调问问卷系统

快速开始

在线尝试

不仅可以自己在本地部署一套,也可以直接在 SurveyForm 上进行在线体验。

概述

适用场景

自定义部署方式适合有一定 Linux 基础的用户,可以灵活配置部署参数,适用于生产环境的定制化需求。

本文档将指导您在 Linux 服务器上通过 Docker 进行调问系统的自定义部署。

前置要求

在开始部署之前,请确保您的服务器满足以下条件:

  • 操作系统:Linux(推荐 Ubuntu 20.04+、CentOS 7+、Debian 10+)
  • Docker 版本:Docker 20.10+ 和 Docker Compose 2.+
  • 权限要求:root 权限或具有 sudo 权限的用户

开始部署

1. 下载安装包

从官网下载最新的自定义部署安装包:

注意

选择适合您服务器架构的安装包(ARM 或 AMD)。

云服务器一般在购买时会选择服务器构架或在服务器信息页也可以查看到架构信息,也可以在服务器上查看,如 Linux 可以通过输入 uname -a命令查看,一般含有 x86_64 或 X64 就是 AMD,含有 arm 字样就是 ARM。

📦 选择版本下载

请根据需求选择企业版或社区版

版本 说明 下载链接
企业版 (Latest) 适合企业级应用 📥 点击下载
社区版 (Latest) 免费开源版本 📥 点击下载

示例截图 - 下载镜像及脚本

如下图所示,下载镜像及对应脚本

2. 上传并解压安装包

将下载的压缩包上传到服务器,可以使用 scpsftp 或其他文件传输工具。

上传完成后,使用 unzip 命令解压:

解压命令

sh

复制代码
# 如果系统未安装 unzip,先安装
# Ubuntu/Debian
sudo apt-get install unzip

# CentOS/RHEL
sudo yum install unzip

解压后,切入 diaowen-docker-v2 安装目录您应该能看到 setup-prod-install.sh 脚本文件及相关配置文件。

注意

请确保解压后的目录结构完整,包含所有必要的配置文件和脚本。

text

复制代码
调问最新部署/企业版/dwsurvey-ent-docker-v8.11.3.20251120/
├── dwsurvey-amd/arm-image.zip
└── dwsurvey-ent-docker-v8.11.3.20251120.zip
├── dwsurvey-amd/arm-image/ (4 items)
└── dwsurvey-ent-docker-v8.11.3.20251120/
    └── diaowen-docker-v2/
        ├── README
        ├── setup-prod-install.sh
        ├── setup-prod-update.sh
        ├── setup-test.bat
        ├── setup-test.sh
        └── diaowen-compose/
            ├── compose-test.yaml
            ├── compose-update.yaml
            ├── compose.yaml
            ├── dwsurvey-app/ (7 items)
            ├── es/ (24 items)
            ├── mysql/ (2 items)
            └── redis/ (5 items)

示例截图 - 初始化环境路径

3. 执行安装脚本

确保当前用户具有 root 权限,或使用 sudo 执行命令:

执行安装脚本

sh

复制代码
# 赋予脚本执行权限
chmod +x setup-prod-install.sh

# 执行安装脚本
sudo ./setup-prod-install.sh

提示

如果您已经是 root 用户,可以直接执行 ./setup-prod-install.sh,无需使用 sudo

示例截图 - 启动脚本

4. 配置部署参数

脚本启动后,会提示您输入以下配置信息:

  • 数据库密码:设置 MySQL 数据库的 root 密码(请使用强密码)
  • Redis 密码:设置 Redis 的访问密码(可选,建议设置)
  • 部署模式:选择 ES 认证模式(无认证/密码认证/证书认证)
  • 服务端口:自定义服务访问端口(默认 8899)

重要

请妥善保管您设置的密码,这些密码将用于系统的数据库和缓存服务。

配置完成后,系统会显示确认信息,请仔细核对:

示例截图 - 确认部署

5. 等待安装完成

确认无误后,按 Y 继续,系统将开始自动安装:

  1. 加载 Docker 镜像
  2. 创建 Docker 网络
  3. 初始化数据库
  4. 启动各项服务(MySQL、Redis、应用服务等)

安装过程可能需要 5-10 分钟,请耐心等待。

提示

安装过程中会显示详细的日志信息,如遇到错误,请查看日志排查问题。

6. 验证部署状态

安装完成后,系统会显示部署成功的提示信息:

示例截图 - 部署成功

您可以使用以下命令检查服务状态:

检查服务状态

sh

复制代码
# 查看所有容器状态
docker ps

# 查看服务日志
docker-compose logs -f

# 查看特定服务日志
docker-compose logs -f app

访问系统

配置防火墙

重要

默认情况下,端口未对外开放。您需要手动配置服务器防火墙和云服务商的安全组规则。

开放端口示例:

Ubuntu/Debian (UFW)CentOS/RHEL (firewalld)

sh

复制代码
# 开放自定义端口(假设为 8899)
sudo ufw allow 8899/tcp
sudo ufw reload

云服务商安全组配置:

如果您使用的是云服务器(阿里云、腾讯云、AWS 等),还需要在云控制台的安全组中添加入站规则,开放对应端口。

访问地址

配置完成后,使用浏览器访问:

text

复制代码
http://您的公网IP:自定义端口

例如:http://123.45.67.89:8899

默认登录信息

默认账号

text

复制代码
用户名:service@diaowen.net
密码:123456

安全提示

首次登录后,请立即修改默认密码,确保系统安全。

登录界面:

示例截图 - 登录界面:

版本更新

更新前准备

在进行版本更新之前,强烈建议您做好以下准备工作:

重要提示

更新前请务必备份数据,避免因更新失败导致数据丢失。

备份步骤:

备份数据库备份配置文件备份上传文件

sh

复制代码
# 备份 MySQL 数据库
docker exec diaowen-mysql mysqldump -u root -p diaowen > backup_$(date +%Y%m%d_%H%M%S).sql

更新步骤

1. 下载新版本

从官网下载最新版本的 JAR 包:

下载最新的 JAR 包

📦 选择版本下载

  • 选择对应的版本进行下载
  • 确认下载的版本号与您需要更新的版本一致
  • 更新仅需要下载最新的 JAR 包,放在对应目录就可以
版本 说明 下载链接
企业版 (Latest) 适合企业级应用 📥 点击下载
社区版 (Latest) 免费开源版本 📥 点击下载
2. 上传并替换 JAR 包

将下载的新版本 JAR 包上传到服务器的应用目录。

注意

对应目录在 diaowen-docker-v2/diaowen-compose/dwsurvey-app/diaowen/

请确保对应的 dwsurvey-app/diaowen/ 目录仅有一个后缀为 .jar 的文件,删除或备份旧版本的 JAR 包后再上传新版本。

操作步骤:

备份旧版本上传新版本

sh

复制代码
# 进入应用目录
cd diaowen-docker-v2/diaowen-compose/dwsurvey-app/diaowen

# 备份旧版本 JAR 包
mv diaowen-v7.x.x.jar backup/diaowen-v7.x.x.jar.bak

# 或者直接删除(不推荐)
# rm diaowen-v7.x.x.jar

替换前的目录结构:

示例截图 - 替换旧的 jar 包

示例截图 - 替换后的目录结构:

3. 执行更新脚本

返回到部署脚本所在的目录,执行更新命令:

执行更新

sh

复制代码
# 进入部署目录
cd /xxx

# 赋予脚本执行权限(如果还没有)
chmod +x setup-prod-update.sh

# 执行更新脚本
sudo ./setup-prod-update.sh

提示

更新脚本会自动检测新版本的 JAR 包,并执行以下操作:

  • 停止当前运行的服务
  • 更新应用文件
  • 重新启动服务

执行更新命令:

示例截图 - 执行更新命令

4. 确认更新

脚本会显示即将更新的版本信息,请仔细核对:

  • 当前版本号
  • 目标版本号
  • 更新内容摘要

确认无误后,输入 Y 继续更新。

更新确认界面:

示例截图 - 更新确认

5. 等待更新完成

更新过程通常需要 2-5 分钟,期间系统会:

  1. 停止旧版本服务
  2. 替换应用文件
  3. 读取配置更新
  4. 重新启动服务

注意

更新过程中请勿中断操作,等待脚本执行完成。

更新成功提示:

示例截图 - 更新成功显示

验证更新

更新完成后,请进行以下验证:

1. 检查服务状态

检查容器状态

sh

复制代码
# 查看所有容器是否正常运行
docker ps

# 查看应用日志
docker compose logs -f app
2. 访问系统

使用浏览器访问系统:

text

复制代码
http://您的公网IP:端口号

例如:http://123.45.67.89:8899

登录界面(V8 版本):

示例截图 - 登录界面(V8 版本)

系统首页:

示例截图 - 系统首页:

3. 功能测试

登录系统后,建议测试以下功能:

  • ✅ 用户登录是否正常
  • ✅ 问卷列表是否显示
  • ✅ 创建新问卷功能
  • ✅ 数据统计功能
  • ✅ 文件上传功能
  • ✅ 问卷测试功能
相关推荐
咖啡星人k3 小时前
MonkeyCode:开源+私有化+企业级管控,重新定义AI编程安全
安全·开源·ai编程
子榆.3 小时前
Flutter 与开源鸿蒙(OpenHarmony)生物识别实战:人脸 + 指纹双模认证,筑牢信创应用安全防线
flutter·开源·harmonyos
qq_463408423 小时前
React Native跨平台技术在开源鸿蒙中使用WebView来加载鸿蒙应用的网页版或通过一个WebView桥接本地代码与鸿蒙应用
javascript·算法·react native·react.js·开源·list·harmonyos
lusasky3 小时前
AI领域开发TOP开源产品-GitHub-2025
人工智能·开源·github
OpenCSG4 小时前
GLM-4.7上线:国产开源编码大模型的新进展
人工智能·开源·opencsg·agentichub
子榆.4 小时前
Flutter 与开源鸿蒙(OpenHarmony)离线地图与定位实战:无网络也能精准导航
flutter·开源·harmonyos
炸裂狸花猫4 小时前
开源IaC工具 - Terraform
云原生·开源·devops·terraform
梦帮科技4 小时前
第二十三篇:自然语言工作流生成:GPT-4集成实战
人工智能·python·机器学习·开源·gpt-3·极限编程
IvorySQL4 小时前
Postgres 18 默认开启数据校验及升级应对方案
数据库·人工智能·postgresql·开源