Introduce
The latest version of Cat2Bug-Platform project is 0.3.2. At present, there are two methods available: traditional unified deployment and front-end and back-end separation deployment. You can choose to download and deploy according to your own needs. For more information and suggestions on publishing lines, please refer to the link below.
Download
Method | File | Illustrate |
---|---|---|
Jar File | cat2bug-platform-0.3.2.jar | Java binary package, can be executed separately. |
Docker | docker-compose-latest | Docker-Compose file, separate the front-end and back-end of the system, and deploy MySQL and Redis separately |
Deploy
JAR Manual Deployment
The JAR file deployment method combines the front-end and back-end code into one JAR file, without relying on nginx or tomcat. It can be used directly in an environment with Java11. The database adopts two solutions, MySQL and embedded H2, and users configure them in the startup parameters. The specific deployment steps are as follows:
Download the latest version of cat2bug-platform-latest.jar file;
Start the service program. If you need to deploy the H2 database, you can directly execute the following command:
nohup java -jar ./Cat2Bug-Platform-0.3.2.jar>/dev/null 2>&1 --spring.database-type=h2 --server.port=8022 &
- The nohup command starts a program from the background
- Java jar represents starting a Java program
- --spring.database type=h2 represents using the h2 database (if not configured, H2 database will be used by default; currently, only h2, and MySQL are available, and all lowercase characters are required for configuration)
- --server.port=8022 Set the page access port to 8022 (if not configured, the default port is 2020)
Prompt
If using the H2 database, there is no need to deploy any services separately; If you choose MySQL database, you need to deploy MySQL 8 or higher version of the database yourself, modify [configuration parameters](#Environment Configuration), and import SLQ file, database name defaults to: cat2bug_platform
- After successful startup, access directly http://127.0.0.1:8022 Check if it can be accessed normally;
BT Deployment
This method requires the installation of BT Panel The deployment steps are as follows:
- Download the latest version of cat2bug-platform-latest.jar file;
- Click on the website menu on the left side of the pagoda system, enter the website management interface, select [Java Project] -> [Java Environment Management] -> [JDK Management], and install JDK11, as shown in the following figure:
- Select the "Add Java Project" button in the website management interface, fill in the parameters according to the following figure, save the configuration items, and the project will automatically start.
- Access http://127.0.0.1:8022 Check if it can be accessed normally;
Single Docker Container Deployment
Docker container deployment is an independent container that includes Cat2Bug-Platform system front-end and back-end programs, databases, etc. We only need to pull and execute through Docker to use it. This method requires the installation of Docker The operation steps are as follows:
- Pull Image
docker pull cat2bug/cat2bug-platform:latest
- Start Container
docker run -it -d -p 8022:8022 --name cat2bug-platform cat2bug/cat2bug-platform:latest
If we need to map the data in the container to the host, execute the following startup command:
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: Map the database files in the system to the local ~/cat2bug platform/data directory
- -v ~/cat2bug-platform/logs:/cat2bug/logs: Map the log files in the system to the local ~/cat2bug platform/logs directory
- -v ~/cat2bug-platform/upload:/cat2bug/uploadPath: Map the downloaded files from the system to the local ~/cat2bug platform/upload directory
The advantage of mapping files is that when we delete or upgrade the Docker container, the relevant data still exists.
Prompt
Cat2bug/cat2bug platform: The latest image uses an H2 database. If a MySQL database is required, users need to write their own Dockerfile file. We will also provide samples for you later
- Access http://127.0.0.1:8022 Check if it can be accessed normally;
Docker Front-End And Back-End Separation Deployment
The front-end and back-end separation deployment involves deploying Cat2Bug-Platform front-end and back-end, MySQL database, and Redis cache to different containers, and starting management through Docker Composite. This method requires the installation of Docker and Docker Composite The deployment steps are as follows:
- Download Docker Compose latest Files can also be downloaded from the command line on Linux.
curl -o docker-compose.yml http://cat2bug.com/docker/docker-compose.yml
- Start Container
In the downloaded docker-compose.yml directory, execute the following command to start the container.
docker-compose up -d
- Access http://127.0.0.1:8022 Check if it can be accessed normally;
Environment Configuration
All environment configuration files are located in the JAR file/ Under the BOOT INF/classes directory.
Prompt
Files with the. yml extension need to be displayed in a hierarchical structure. When modifying, attention should be paid to maintaining the structure and not writing too many or too few spaces before parameters, as this will cause the system to malfunction
Basic Configuration
Basic configuration data in the application.yml file
# 项目相关配置
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/*
MySQL Database Configuration
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
H2 Database Configuration
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