# 介绍
Cat2Bug-Platform项目最新版本是0.3.2。目前提供传统统一部署和前后端分离部署两种方式,大家可以根据自身需求选择下载部署,有关发布线的更多信息和建议,请参阅下面的链接。
# 下载
下载方式 | 下载文件 | 下载说明 |
---|---|---|
Jar文件 | cat2bug-platform-0.3.2.jar (opens new window) | Java 二进制包,可单独执行 |
Docker容器 | docker-compose-latest (opens new window) | Docker-Compose文件,将系统前后端分离,并本别部署Mysql、Redis |
# 部署
# JAR手动部署
JAR文件部署方式将前后端代码合并到一个JAR文件中,无需依赖nginx、tomcat,只需在有Java11的环境下直接运行即可使用。其中数据库采用Mysql和嵌入式H2两种方案,用户在启动参数中配置,具体部署步骤如下:
启动服务程序,如需部署H2数据库,可直接执行如下命令:
nohup java -jar ./Cat2Bug-Platform-0.3.2.jar>/dev/null 2>&1 --spring.database-type=h2 --server.port=8022 &
- nohup 命令是从后台启动程序
- java -jar 代表启动一个java程序
- --spring.database-type=h2 代表使用h2数据库(如果不加此配置,默认使用h2数据库;此选择目前只有h2、和mysql,配置时需要全部小写)
- --server.port=8022 将页面访问端口设置为8022(如果不加此配置,默认端口为2020)
提示
如果使用H2数据库,无需再单独部署任何服务; 如选择Mysql数据库,需自行部署Mysql8以上版本的数据库,修改配置参数,并导入 SLQ (opens new window) 文件, 数据库名默认为:cat2bug_platform
- 启动成功后,直接访问http://127.0.0.1:8022,检查是否可以正常访问;
# 宝塔面板部署
此方式需要安装宝塔面板 (opens new window),部署步骤如下:
- 下载最新版 cat2bug-platform-latest.jar (opens new window) 文件;
- 点击宝塔系统左侧【网站】菜单,进入网站管理界面,选择【Java项目】->【Java环境管理】->【JDK管理】,安装JDK11,如下图:
- 选择网站管理界面中的【添加Java项目】按钮,根据下图填写参数,保存配置项后,项目会自动启动。
- 访问http://127.0.0.1:8022,检查是否可以正常访问;
# 单个Docker容器部署
Docker容器部署是一个独立容器,其中包含了Cat2Bug-Platform系统前后端程序、数据库等,我们只需通过Docker拉取、执行,即可使用,此方式需要安装Docker (opens new window) ,操作步骤如下:
- 拉取镜像
docker pull cat2bug/cat2bug-platform:latest
- 启动容器
docker run -it -d -p 8022:8022 --name cat2bug-platform cat2bug/cat2bug-platform:latest
如果我们需要将容器中的数据映射到宿主机,执行如下启动命令:
docker run -it -d -p 8022:8022 --name cat2bug-platform -v ~/cat2bug-platform/data:/cat2bug/data -v ~/cat2bug-platform/logs:/cat2bug/logs -v ~/cat2bug-platform/upload:/cat2bug/uploadPath cat2bug/cat2bug-platform:latest
- -v ~/cat2bug-platform/data:/cat2bug/data: 将系统中的数据库文件映射到本机~/cat2bug-platform/data目录
- -v ~/cat2bug-platform/logs:/cat2bug/logs: 将系统中的日志文件映射到本机~/cat2bug-platform/logs目录
- -v ~/cat2bug-platform/upload:/cat2bug/uploadPath: 将系统中下载的文件映射到本机~/cat2bug-platform/upload目录
映射文件的好处是当我们删除或升级Docker容器后,相关数据依然存在。
提示
cat2bug/cat2bug-platform:latest镜像中采用的是H2数据库,如需Mysql数据库,需要用户自行编写Dockerfile文件,后面我们也会给大家提供样例
- 访问http://127.0.0.1:8022,检查是否可以正常访问;
# Docker前后端分离部署
前后端分离部署是将Cat2Bug-Platform前后端、Mysql数据库、Redis缓存分别部署到不同容器上,通过Docker-Compose启动管理,此方式需要安装Docker及Docker-Compose (opens new window) ,部署步骤如下:
- 下载docker-compose-latest (opens new window) 文件,在linux下,也可通过命令行下载。
curl -o docker-compose.yml http://cat2bug.com/docker/docker-compose.yml
- 启动容器
在下载的docker-compose.yml目录下,执行以下命令启动容器。
docker-compose up -d
- 访问http://127.0.0.1:8022,检查是否可以正常访问;
# 环境配置
所有环境配置文件都在JAR文件的./BOOT-INF/classes目录下。
提示
采用.yml为扩展名的文件,需要按照层级结构显示,在修改时需要注意保持结构,在参数前面不要多写或少写空格,这样系统将会导致系统无法正常工作
# 基础配置
基础配置数据在application.yml文件中
# 项目相关配置
cat2bug:
# 名称
name: Cat2Bug
# 版本
version: 0.3.2
# 版权年份
copyrightYear: 2024
# 文件路径
profile: uploadPath
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
captchaType: math
# API服务
api:
# 是否启动api服务
enabled: true
# 开发环境配置
server:
# 服务器的HTTP端口,默认为2020
port: 2020
servlet:
# 应用的访问路径
context-path: /
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数,默认为100
accept-count: 1000
threads:
# tomcat最大线程数,默认为200
max: 800
# Tomcat启动初始化的线程数,默认值10
min-spare: 100
# 日志配置
logging:
level:
com.cat2bug: debug
org.springframework: warn
# 用户配置
user:
password:
# 密码最大错误次数
maxRetryCount: 5
# 密码锁定时间(默认10分钟),已失效,在caffeine.properties里配置
lockTime: 10
j2cache:
config-location: classpath:${spring.database-type}-j2cache.properties
open-spring-cache: true
caffeine:
properties: caffeine.properties
# Spring配置
spring:
database-type: h2
thymeleaf:
mode: HTML
encoding: utf-8
cache: false
prefix: classpath:/static/
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: ${spring.database-type}
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
# token配置
token:
# 令牌自定义标识
header: Authorization
# 令牌密钥
secret: abcdefghijklmnopqrstuvwxyz
# 令牌有效期(默认30分钟),同时需要设置caffeine.properties里的tokenExpireTime配置
expireTime: 30
# MyBatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.cat2bug.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
helperDialect: ${spring.database-type}
supportMethodsArguments: true
params: count=countSql
# Swagger配置
swagger:
# 是否开启swagger
enabled: true
# 请求前缀
pathMapping: /dev-api
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Mysql数据库配置
application-mysql.yml
# 数据源配置
spring:
# redis 配置
redis:
# 是否开启内嵌redis服务
embed: true
# 地址
host: localhost
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
# 密码
password:
# 连接超时时间
timeout: 510s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/cat2bug_platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: cat2bug_password
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: cat2bug
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# H2数据库配置
application-h2.yml
# 数据源配置
spring:
h2:
console:
settings:
web-allow-others: false
path: /h2
# 开启浏览器访问
enabled: false
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.h2.Driver
url: jdbc:h2:file:./data/cat2bug;DATABASE_TO_LOWER=TRUE;
username: root
password: cat2bug_password
druid:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: cat2bug
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59