# 介绍

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两种方案,用户在启动参数中配置,具体部署步骤如下:

  1. 下载最新版 cat2bug-platform-latest.jar (opens new window) 文件;

  2. 启动服务程序,如需部署H2数据库,可直接执行如下命令:

nohup java -jar ./Cat2Bug-Platform-0.3.2.jar>/dev/null 2>&1 --spring.database-type=h2 --server.port=8022 &
1
  • 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

  1. 启动成功后,直接访问http://127.0.0.1:8022,检查是否可以正常访问;

# 宝塔面板部署

此方式需要安装宝塔面板 (opens new window),部署步骤如下:

  1. 下载最新版 cat2bug-platform-latest.jar (opens new window) 文件;
  2. 点击宝塔系统左侧【网站】菜单,进入网站管理界面,选择【Java项目】->【Java环境管理】->【JDK管理】,安装JDK11,如下图:

安装JDK11

  1. 选择网站管理界面中的【添加Java项目】按钮,根据下图填写参数,保存配置项后,项目会自动启动。

安装JAR

  1. 访问http://127.0.0.1:8022,检查是否可以正常访问;

# 单个Docker容器部署

Docker容器部署是一个独立容器,其中包含了Cat2Bug-Platform系统前后端程序、数据库等,我们只需通过Docker拉取、执行,即可使用,此方式需要安装Docker (opens new window) ,操作步骤如下:

  1. 拉取镜像
docker pull cat2bug/cat2bug-platform:latest
1
  1. 启动容器
docker run -it -d -p 8022:8022 --name cat2bug-platform cat2bug/cat2bug-platform:latest
1

如果我们需要将容器中的数据映射到宿主机,执行如下启动命令:

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
1
  • -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文件,后面我们也会给大家提供样例

  1. 访问http://127.0.0.1:8022,检查是否可以正常访问;

# Docker前后端分离部署

前后端分离部署是将Cat2Bug-Platform前后端、Mysql数据库、Redis缓存分别部署到不同容器上,通过Docker-Compose启动管理,此方式需要安装Docker及Docker-Compose (opens new window) ,部署步骤如下:

  1. 下载docker-compose-latest (opens new window) 文件,在linux下,也可通过命令行下载。
curl -o docker-compose.yml http://cat2bug.com/docker/docker-compose.yml
1
  1. 启动容器

在下载的docker-compose.yml目录下,执行以下命令启动容器。

docker-compose up -d
1
  1. 访问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/*
1
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
1
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
1
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