官方网站:https://surveyking.cn/
宝塔部署开源版(一键部署)
卷王问卷系统与宝塔面板深度合作,自宝塔面板 9.2 版本开始,在软件商店里面可以一键部署卷王问卷系统。
有两种部署方式:
官方应用一键部署(Docker 应用)
一键部署
安装宝塔
通过上述链接安装宝塔的卷王问卷系统新注册用户不仅可以返佣,而且可以领取 3 台 3 年的 app 授权劵(单独领取)
一键部署
Docker 一键部署
1、进入软件商店,在「官方应用」里面,输入 问卷检索,点击安装即可
2、安装完成之后,可以在 Docker 里面看到我们部署的应用
3、打开浏览器,访问系统即可
一键部署
1、进入软件商店,点击「一键部署」,输入 问卷 检索,点击一键部署
2、如果检测到数据库或者 JDK 未安装,点击立即安装即可
如果检测到未安装数据库,点击「立即安装 >> 极速安装」,安装 mysql 数据库,版本选择 5.7 或者 8.0。
安装 JDK,版本选择 jdk1.8.0_371
安装 Nginx,可以在软件商店里面搜索 Nginx,点击快速安装即可
3、管理应用,此时在 Java 项目里面可以看到我们部署的问卷系统
如何升级
参考 开源版本更新,获取最新的软件包以及对应版本的数据库更新文件
Docker 部署开源版
本文介绍如何使用 Docker 一键部署卷王问卷考试系统,卷王官方镜像已发布到 Dockerhub surveyking/surveyking,并且同时支持 linux/amd64
和 linux/arm64
两种架构。
如何部署
H2 数据库运行
这种部署方式使用的是内置的 H2 数据库,相比 MySQL 的好处是无需额外配置或安装数据库,部署更为简单和快速。
# 一键启动,默认使用的是内置的 h2 数据库
docker run -d -p 1991:1991 surveyking/surveyking
# 挂载数据库文件、上传附件、日志文件
docker run -d -p 1991:1991 -v ${PWD}/db:/app/db -v ${PWD}/files:/app/files -v ${PWD}/logs:/app/logs surveyking/surveyking
# 由于 dockerhub 国内无法访问,可以使用阿里云镜像库
docker run -d -p 1991:1991 registry.cn-hangzhou.aliyuncs.com/surveyking/surveyking:latest
启动之后,容器内有如下四个目录,分别对应文件目录(编辑问卷里面的图片,以及用户上传的附件等)、日志目录(卷王运行过程的一些日志)、卷王数据库文件(h2 数据库文件)
MySQL 数据库运行
这种部署方式使用的是外部的 MySQL 数据库,好处是数据持久化更可靠,适合生产环境和高并发场景,同时可以利用 MySQL 的性能优化和集群功能。缺点是部署和配置复杂度较高,需要单独维护数据库服务,并且在初次配置时可能需要额外的时间和技能。
# 使用外置 mysql 数据库
docker run -e PROFILE=mysql \
-v ${PWD}/logs:/app/logs \
-v ${PWD}/files:/app/files \
-e MYSQL_USER=surveyking \
-e MYSQL_PASS=surveyking \
-e DB_URL='jdbc:mysql://172.17.0.1:3306/surveyking?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8' \
-p 1991:1991 \
surveyking/surveyking
用户需要修改的参数:
MYSQL_USER
(MySQL 数据库的用户名) :
这个参数是你 MySQL 数据库的用户名。如果你使用了不同的用户名(比如
root
或其他名称),需要将surveyking
修改为你自己的 MySQL 数据库用户名。例如,如果你的 MySQL 用户名是
admin
,你需要将这一行修改为:
-e MYSQL_USER=admin
MYSQL_PASS
(MySQL 数据库的密码) :
这个参数是你 MySQL 数据库的密码,用于连接数据库。如果你在设置 MySQL 数据库时使用了不同的密码,需要在这里将
surveyking
修改为你自己的 MySQL 数据库密码。例如,如果你的 MySQL 密码是
mysecretpassword
,你需要将这一行修改为:-e MYSQL_PASS=mysecretpassword
DB_URL
(MySQL 数据库的连接地址) :
这个参数指定了如何连接到你的 MySQL 数据库,包括 IP 地址、端口号、数据库名称和一些连接选项。
你需要修改以下部分:
172.17.0.1
:这是你的 MySQL 数据库的 IP 地址或主机名。如果你的 MySQL 数据库运行在本地机器上,可以保持不变;如果它在另一台机器上,请将其更改为该机器的 IP 地址或主机名。3306
:这是 MySQL 数据库的端口号。如果你没有修改 MySQL 的默认端口号,可以保持不变;如果修改了端口号,请将其更改为实际使用的端口号。surveyking
:这是数据库名称。你需要将它更改为你在 MySQL 中创建的实际数据库名称。例如,如果你的数据库在
192.168.1.100
服务器上,端口号是3307
,数据库名称是mydatabase
,你需要将这一行修改为:
-e DB_URL='jdbc:mysql://192.168.1.100:3307/mydatabase?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8'
日志文件和数据文件挂载路径 :
-v ${PWD}/logs:/app/logs
:这个参数将本地机器上的logs
文件夹挂载到容器内的/app/logs
目录。这样,应用程序的日志文件将保存在你的本地机器上。你可以将${PWD}/logs
替换为你希望保存日志文件的具体路径。-v C:/myapp/logs:/app/logs
例如,如果你想把日志保存到
C:\myapp\logs
,你可以修改为:-v ${PWD}/files:/app/files
:这个参数将本地机器上的files
文件夹挂载到容器内的/app/files
目录,用于存储上传的文件。你可以将${PWD}/files
替换为你希望保存文件的具体路径。-v D:/myapp/files:/app/files
例如,如果你想把文件保存到
D:\myapp\files
,你可以修改为:
端口映射 :
-p 1991:1991
:这个参数将容器内部的 1991 端口映射到你机器的 1991 端口。这意味着你可以通过浏览器访问http://localhost:1991
来访问应用程序。如果你有其他应用程序占用了这个端口,或者你想使用不同的端口,你可以修改第一个1991
为其他值。-p 8080:1991
例如,如果你想在本地机器上使用 8080 端口访问该应用程序,你可以修改为:
Docker compose 方式部署
Docker Compose 部署
快速开始
本文介绍,如何使用 Docker compose 的方式快速部署卷王问卷考试系统开源版,感谢 xianyu-one/surveyking-docker 整理的文档。
curl -O https://surveyking.cn/surveyking-docker/setup.sh
chmod +x setup.sh
bash setup.sh
手工部署
步骤 1:创建目录并下载必要文件
首先,打开终端并执行以下命令以创建必要的目录结构:
mkdir -p ./surveyking/mysql
mkdir ./surveyking/sqls
cd ./surveyking
步骤 2:下载初始化 SQL 文件和 Docker Compose 文件
接下来,我们将下载初始化 MySQL 数据库所需的 SQL 文件和 Docker Compose 配置文件:
curl -o sqls/init-mysql.sql https://surveyking.cn/surveyking-docker/sqls/init-mysql.sql
curl -o docker-compose.yml https://surveyking.cn/surveyking-docker/docker-compose.yml.example
步骤 3:启动 Docker 容器
现在,我们将使用 Docker Compose 启动 SurveyKing 应用程序的容器。确保已经安装了 Docker 和 Docker Compose。执行以下命令:
docker-compose up -d
这将启动 SurveyKing 应用程序的容器,并且该应用程序应该已经在运行中。
docker-compose 内容示例
services:
mysql:
image: mysql:8
container_name: mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: surveyking
MYSQL_DATABASE: surveyking
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/data:/var/lib/mysql
- ./sqls:/docker-entrypoint-initdb.d
networks:
app_net:
ipv4_address: 10.20.52.20
surveyking:
image: surveyking/surveyking:latest
container_name: surveyking
restart: unless-stopped
environment:
PROFILE: mysql
MYSQL_USER: root
MYSQL_PASS: surveyking
DB_URL: jdbc:mysql://mysql:3306/surveyking
volumes:
- ./files:/app/files
- ./logs:/app/logs
depends_on:
- mysql
ports:
- '1991:1991'
networks:
app_net:
ipv4_address: 10.20.52.10
networks:
app_net:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 10.20.52.0/24
gateway: 10.20.52.1
- subnet: FD00:1:1::/64
gateway: FD00:1:1::1
本文 暂无 评论