系统部署
手动部署
JAR文件部署方式将前后端代码合并到一个JAR文件中,无需依赖nginx、tomcat,只需在有Java11的环境下直接运行即可使用。其中数据库采用Mysql和嵌入式H2两种方案,用户在启动参数中配置,具体部署步骤如下:
H2数据库方式部署
- 部署工具
工具名称 | 官网下载地址 | 使用说明 |
---|---|---|
JDK 11 | https://www.oracle.com | Java程序运行环境包(必装) |
Ollama | https://ollama.com | AI大模型管理服务(非必装,不安装将无法使用AI功能) |
- 部署程序
在命令行直接执行如下命令:
curl -o cat2bug-platform-latest.jar https://www.cat2bug.com/software/cat2bug-platform/cat2bug-platform-latest.jar
nohup java -jar ./cat2bug-platform-latest.jar>/dev/null 2>&1 --server.port=8022 --cat2bug.ai.host=https://localhost:11434 &
curl -o cat2bug-platform-latest.jar https://www.cat2bug.com/software/cat2bug-platform/cat2bug-platform-latest.jar
javaw -jar ./cat2bug-platform-latest.jar>/dev/null 2>&1 --server.port=8022 --cat2bug.ai.host=https://localhost:11434 &
curl -o cat2bug-platform-latest.jar https://www.cat2bug.com/software/cat2bug-platform/cat2bug-platform-latest.jar
nohup java -jar ./cat2bug-platform-latest.jar>/dev/null 2>&1 --server.port=8022 --cat2bug.ai.host=https://localhost:11434 &
- nohup 命令是从后台启动程序
- java -jar 代表启动一个java程序
- --server.port=8022 将页面访问端口设置为8022(如果不加此配置,默认端口为2020);
- --cat2bug.ai.host=https://localhost:11434 Ollama服务接口地址;
提示
cat2bug.ai.host可配置为https://www.cat2bug.com:8023,这是我们提供的一个用于测试和演示的免费AI服务,此服务会不定期关闭维护,如需更稳定的私有化部署,请自行访问Ollama官网下载并部署Ollama服务,可将Ollama API接口地址配置到CAT2BUG_AI_HOST中,如: http://部署的ollama服务ip:11434
Mysql数据库方式部署
- 部署工具
工具名称 | 官网下载地址 | 使用说明 |
---|---|---|
Nginx | https://nginx.org | 前端程序部署容器(必装) |
JDK 11 | https://www.oracle.com | 后端程序部署环境包(必装) |
MySQL 8.2+ | https://www.mysql.com | 数据库(必装) |
Redis 7+ | https://redis.io | Redis(必装) |
Ollama | https://ollama.com | AI大模型管理服务(非必装,不安装将无法使用AI功能) |
- 新建数据库
- 在MySQL中创建数据库cat2bug_platform;
mysql -u root -p
CREATE DATABASE cat2bug_platform;
- 访问源码 地址,在sql目录下载数据库文件cat2bug_platform.sql,并导入MySQL中。
mysql -u root -p cat2bug_platform2 < ./cat2bug_platform.sql
- 部署后端程序
curl -o cat2bug-platform-latest.jar https://www.cat2bug.com/software/cat2bug-platform/cat2bug-platform-latest.jar
nohup java -jar ./cat2bug-platform-latest.jar>/dev/null 2>&1 \
--server.port=8022 \
--spring.database-type=mysql \
--spring.datasource.druid.master.url="jdbc:mysql://localhost:3306/cat2bug_platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" \
--spring.datasource.druid.master.username=root \
--spring.datasource.druid.master.password=cat2bug_password &
curl -o cat2bug-platform-latest.jar https://www.cat2bug.com/software/cat2bug-platform/cat2bug-platform-latest.jar
javaw -jar ./cat2bug-platform-latest.jar>/dev/null 2>&1 \
--server.port=8022 \
--spring.database-type=mysql \
--spring.datasource.druid.master.url="jdbc:mysql://localhost:3306/cat2bug_platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" \
--spring.datasource.druid.master.username=root \
--spring.datasource.druid.master.password=cat2bug_password
curl -o cat2bug-platform-latest.jar https://www.cat2bug.com/software/cat2bug-platform/cat2bug-platform-latest.jar
nohup java -jar ./cat2bug-platform-latest.jar>/dev/null 2>&1 \
--server.port=8022 \
--spring.database-type=mysql \
--spring.datasource.druid.master.url="jdbc:mysql://localhost:3306/cat2bug_platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" \
--spring.datasource.druid.master.username=root \
--spring.datasource.druid.master.password=cat2bug_password &
- nohup 命令是从后台启动程序
- java -jar 代表启动一个java程序
- --spring.database-type=mysql 代表使用mysql数据库(mysql需自行部署;此选择目前只有h2、和mysql,配置时需要全部小写);
- --server.port=8022 将页面访问端口设置为8022(如果不加此配置,默认端口为2020);
- --spring.datasource.druid.master.url 配置Mysql的链接地址;
- --spring.datasource.druid.master.username=root 数据库登陆账号
- --spring.datasource.druid.master.password=cat2bug_password 数据库登陆密码
提示
如果使用H2数据库,无需再单独部署任何服务; 如选择Mysql数据库,需自行部署Mysql8以上版本的数据库,修改配置参数,并导入 SLQ 文件, 数据库名默认为:cat2bug_platform
- 部署前端程序
部署前端程序,需要先编译前端VUE代码,相关编译方法请参阅编译程序/手动方式编译/前后台分离方式编译/3.编译前端程序 。
编译后的前端文件,拷贝到Nginx的html目录下,并配置Nginx/conf目录下的nginx.conf文件,配置参数如下:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
client_max_body_size 1024M;
server {
listen 8022;
server_name localhost;
location / {
root /etc/nginx/html/cat2bug;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_pass代理的是后端程序的部署IP和端口
proxy_pass http://localhost:2020/;
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
}
error_page 500 502 503 504 /50x.html;
error_page 400 404 error.html;
}
}
之后进入Nginx的bin目录下,启动Nginx容器
./nginx -c ../conf/nginx.conf
- 检查部署是否正常启动
启动成功后,直接在浏览器访问http://127.0.0.1:8022,检查是否可以正常访问;
提示
Ollama服务需配置GPU显卡才能达到良好的体验性,它非必要部署项,如不部署,测试用例的自动创建、缺陷的自动填写等功能将无法使用,但不影响整体业务的使用流程;
宝塔面板部署
此方式需要安装宝塔面板,部署步骤如下:
- 下载最新版 cat2bug-platform-latest.jar 文件;
- 点击宝塔系统左侧【网站】菜单,进入网站管理界面,选择【Java项目】->【Java环境管理】->【JDK管理】,安装JDK11,如下图:
- 选择网站管理界面中的【添加Java项目】按钮,根据下图填写参数,保存配置项后,项目会自动启动。
- 访问http://127.0.0.1:8022,检查是否可以正常访问;
Docker容器化部署
H2数据库方式部署
Docker容器部署是一个独立容器,其中包含了Cat2Bug-Platform系统前后端程序、数据库等,我们只需通过Docker拉取、执行,即可使用,此方式需要安装Docker ,操作步骤如下:
- 拉取镜像
docker pull cat2bug/cat2bug-platform:latest
docker pull qyzw-docker.pkg.coding.net/cat2bug/cat2bug-platform/single:latest
docker tag qyzw-docker.pkg.coding.net/cat2bug/cat2bug-platform/single:latest cat2bug/cat2bug-platform:latest
- 启动容器
以下启动方式任选一种
(1) 简单方式启动
docker run -it -d -p 8022:8022 --name cat2bug-platform cat2bug/cat2bug-platform:latest
(2) 启动时映射cat2bug-platform数据文件到宿主机磁盘
docker run \
-it -d -p 8022:8022 \
-v ~/cat2bug-platform/data:/cat2bug/data \
-v ~/cat2bug-platform/logs:/cat2bug/logs \
-v ~/cat2bug-platform/upload:/cat2bug/uploadPath \
--name cat2bug-platform \
cat2bug/cat2bug-platform:latest
- -v ~/cat2bug-platform/data:/cat2bug/data: 将系统中的h2数据库文件映射到本机~/cat2bug-platform/data目录
- -v ~/cat2bug-platform/logs:/cat2bug/logs: 将系统中的日志文件映射到本机~/cat2bug-platform/logs目录
- -v ~/cat2bug-platform/upload:/cat2bug/uploadPath: 将系统中下载的文件映射到本机~/cat2bug-platform/upload目录
映射文件的好处是当我们删除或升级Docker容器后,相关数据依然存在。
(3) 启动时设置数据库参数
cat2bug-platform系统支持MySQL和H2两种数据库,通过修改配置参数进行选择,在docker启动时配置:
docker run \
-it -d -p 8022:8022 \
-e "SPRING_DATABASE-TYPE=mysql" \
-e "SPRING_DATASOURCE_DRUID_MASTER_URL=jdbc:mysql://127.0.0.1:3306/cat2bug_platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8" \
-e "SPRING_DATASOURCE_DRUID_MASTER_USERNAME=root" \
-e "SPRING_DATASOURCE_DRUID_MASTER_PASSWORD=cat2bug_password" \
--name cat2bug-platform \
cat2bug/cat2bug-platform:latest
- SPRING_DATABASE-TYPE:数据库类型,mysql或h2,如果不配置,默认为h2数据库;
- SPRING_DATASOURCE_DRUID_MASTER_URL:数据库链接地址;
- SPRING_DATASOURCE_DRUID_MASTER_USERNAME:数据库账号;
- SPRING_DATASOURCE_DRUID_MASTER_PASSWORD:数据库密码;
(4) 启动时设置AI大模型参数
docker run \
-it -d -p 8022:8022 \
-e "CAT2BUG_AI_HOST=https://www.cat2bug.com:8023" \
-e "CAT2BUG_AI_TIMEOUT=300" \
--name cat2bug-platform \
cat2bug/cat2bug-platform:latest
- CAT2BUG_AI_HOST:AI服务接口地址(注意,https://www.cat2bug.com:8023是我们提供的一个用于测试和演示的免费AI服务,此服务会不定期关闭维护,如需更稳定的私有化部署,请自行访问Ollama官网下载并部署Ollama服务,可将Ollama API接口地址配置到CAT2BUG_AI_HOST中,如: http://部署的ollama服务ip:11434);
- CAT2BUG_AI_TIMEOUT:AI接口调用超时秒数;
下面是Ollama服务的Docker化部署方案
# Docker官网部署Ollama服务方案
docker run \
-it -d -p 11434:11434 \
-v ~/cat2bug-platform/ai:/root/.ollama \
--name cat2bug-platform-ai \
ollama/ollama:latest
# 国内镜像源部署Ollama服务方案
docker run \
-it -d -p 11434:11434 \
-v ~/cat2bug-platform/ai:/root/.ollama \
--name cat2bug-platform-ai \
qyzw-docker.pkg.coding.net/cat2bug/cat2bug-platform/ollama:latest
提示
AI服务需要在Cat2Bug-Platform服务器前启动;
提示
AI服务需配置GPU显卡才能达到良好的体验性,它非必要部署项,如不部署,测试用例的自动创建、缺陷的自动填写等功能将无法使用,但不影响整体业务的使用流程;
- 检查部署是否正常启动
访问http://127.0.0.1:8022,检查是否可以正常访问;
提示
如部署了AI服务,在启动cat2bug-platform系统事会自动检测AI服务是否存在指定大模型llama3:8b文件,如不存在,将自动下载,此时需要服务器链接外网。模型文件尺寸4.2G,在下载过程中,系统访问会出现卡顿现象,这属于正常范畴。
MySQL数据库方式部署
- 部署工具
工具名称 | 官网下载地址 | 使用说明 |
---|---|---|
Docker 24.0.7+ | https://www.docker.com | Docker客户端(必装) |
Docker-Compose 2.24.0+ | https://github.com/docker/compose/releases | Docker多容器管理工具(必装) |
注意
低版本将无法正常启动容器
此部署方式为前后端分离部署,前端部署在Nginx容器下,后端通过SpringBoot框架开发的服务启动。同时部署Mysql、Redis、Ollama三个服务组件。
- 点击此处下载docker-compose.yml或执行以下命令下载:
curl -o docker-compose.yml http://cat2bug.com/docker/docker-compose.yml
根据自身需求,用户可以修改docker-compose.yml文件中的配置,详细配置如下,此步骤也可跳过。
version: '3.4'
name: cat2bug-platform
services:
# AI服务
cat2bug-platform-ai:
image: ollama/ollama:latest
hostname: ollama
container_name: cat2bug-platform-ai
restart: always
volumes:
# AI模型文件映射路径
- ./ai:/root/.ollama
expose:
# AI接口服务的端口
- "11434"
environment:
TZ: Asia/Shanghai
healthcheck:
test: "exit 0"
networks:
- cat2bug-network
# MySQL数据库
cat2bug-platform-mysql:
image: cat2bug/cat2bug-platform-mysql:latest
hostname: mysql
container_name: cat2bug-platform-mysql
restart: always
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--interactive_timeout=259200
--wait_timeout=259200
--max_connections=1000
volumes:
# 数据库文件映射路径
- ./mysql/:/var/lib/mysql
expose:
- "3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_HOST: "%"
# 数据库名
MYSQL_DATABASE: cat2bug_platform
# root用户密码
MYSQL_ROOT_PASSWORD: cat2bug_password
# 数据库登陆账号
MYSQL_USER: cat2bug
# 数据库登陆密码
MYSQL_PASSWORD: cat2bug_password
healthcheck:
test: "mysql -h127.0.0.1 -P3306 -uroot -pcat2bug_password -e 'SHOW DATABASES;'"
interval: 10s
timeout: 5s
retries: 6
start_period: 30s
networks:
- cat2bug-network
# Redis缓存
cat2bug-platform-redis:
image: redis:7.2.3
hostname: redis
container_name: cat2bug-platform-redis
restart: always
expose:
- "6739"
healthcheck:
test: "exit 0"
networks:
- cat2bug-network
# Cat2Bug-Platform后端服务
cat2bug-platform-web-after:
hostname: after
image: cat2bug/cat2bug-platform-web-after:latest
container_name: cat2bug-platform-web-after
restart: always
expose:
- "2020"
environment:
# 数据库链接配置
SPRING_DATASOURCE_DRUID_MASTER_URL: jdbc:mysql://cat2bug-platform-mysql:3306/cat2bug_platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
# 数据库登陆账号
SPRING_DATASOURCE_DRUID_MASTER_USERNAME: root
# 数据库登陆密码
SPRING_DATASOURCE_DRUID_MASTER_PASSWORD: cat2bug_password
# 缓存Redis链接地址
SPRING_REDIS_HOST: cat2bug-platform-redis
# AI服务接口链接地址
CAT2BUG_AI_HOST: http://cat2bug-platform-ai:11434
volumes:
# 系统的图片、文件映射路径
- ./uploadPath:/home/uploadPath
# 系统日志映射路径
- ./logs:/home/logs
links:
- cat2bug-platform-mysql
- cat2bug-platform-redis
- cat2bug-platform-ai
depends_on:
# 等待以下所有服务启动完成后,在启动cat2bug-platform-web-after服务
cat2bug-platform-mysql:
condition: service_healthy
cat2bug-platform-redis:
condition: service_healthy
cat2bug-platform-ai:
condition: service_healthy
healthcheck:
test: "exit 0"
networks:
- cat2bug-network
# Cat2Bug-Platform页面服务
cat2bug-platform-web-front:
hostname: front
image: cat2bug/cat2bug-platform-web-front:latest
container_name: cat2bug-platform-web-front
restart: always
ports:
# 页面访问端口
- "8022:80"
links:
- cat2bug-platform-web-after
depends_on:
cat2bug-platform-web-after:
condition: service_healthy
networks:
- cat2bug-network
networks:
cat2bug-network:
driver: bridge
- 运行docker-compose脚本
docker-compose up -d
当脚本正常运行后,控制台会返回以下信息:
[+] Running 5/5
✔ Container cat2bug-platform-ai Healthy
✔ Container cat2bug-platform-redis Healthy 0.2s
✔ Container cat2bug-platform-mysql Healthy 0.2s
✔ Container cat2bug-platform-web-after Healthy 0.1s
✔ Container cat2bug-platform-web-front Started
每个容器的功能如下描述:
- cat2bug-platform-mysql:数据库
- cat2bug-platform-redis:缓存
- cat2bug-platform-web-after:cat2bug-platform 后台服务
- cat2bug-platform-web-front:cat2bug-platform 页面服务
- 检查部署是否正常启动
- 安装完成后,在浏览器中输入 http://127.0.0.1:8022
- 在登陆页面,点击注册新用户后,登陆使用。
提示
系统默认管理员账号:admin 密码:cat2bug