first commit

This commit is contained in:
2026-09-21 19:21:35 +08:00
commit 6c944c4ffd
2733 changed files with 296956 additions and 0 deletions
+201
View File
@@ -0,0 +1,201 @@
# Skins 业务后端 — 详细部署文档
> 适用项目:chengdu-backend(基于若依 RuoYi 开发,Spring Boot 4.0.3 + JDK 21)
> 适用场景:本地开发、测试环境、生产环境
> 项目根 README 见 [README.md](README.md),本文为补充的详细部署手册
## 1. 部署架构总览
- 后端单进程:ruoyi-admin.jar,监听28081
- 基础设施:MySQL 8.x、Redis、RabbitMQ(参考 docker/docker-compose.yml)
- 前端:ruoyi-ui(Vue2 经典管理端),promo-ui2(Vue3 主播后台),cocos前端
## 2. 环境准备
### 2.1 必备软件
JDK 21(项目使用 /root/jdk-21.0.10) 必须为 JDK 21
Maven 3.6.x(/root/apache-maven-3.6.3)
### 2.2 安装示例
# JDK 21
cd /root
# 上传 jdk-21.x.tar.gz 到 /root
tar -xzf jdk-21.0.10_linux-x64_bin.tar.gz
mv jdk-21.0.10 /root/jdk-21.0.10
# Maven
cd /root
tar -xzf apache-maven-3.6.3-bin.tar.gz
# 配置全局环境变量(在脚本内配置,见 ry.sh / package.sh)
cat >> /etc/profile <<'EOF'
export JAVA_HOME=/root/jdk-21.0.10
export MAVEN_HOME=/root/apache-maven-3.6.3
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
EOF
source /etc/profile
# 验证
java -version
mvn -v
## 3. 基础设施部署(MySQL / Redis / RabbitMQ)
### 3.1 使用仓库自带 docker-compose
仓库 docker/ 目录下已提供文件,采用 compose override 模式,通过 deploy.sh 自动选择镜像源和资源规格。
bash
cd chengdu-backend/docker/compose
# 自动检测环境并启动(默认:国内镜像 + 自动检测 CPU 规格)
./deploy.sh up -d
# 开发环境
ENV=dev ./deploy.sh up -d
# 海外镜像源(如国内镜像不可用)
PROXY=overseas ./deploy.sh up -d
# 停止 / 删除
./deploy.sh stop
./deploy.sh down
容器常用操作:
./deploy.sh up -d # 启动
./deploy.sh stop # 停止
### 3.2 首次部署:数据卷迁移
如果之前使用旧版 docker-compose(自动命名卷),需要迁移数据到 external 卷:
bash
cd docker/compose
bash migrate-mysql-volume.sh
## 4. 后端配置yml说明(Spring Profile)
入口配置文件:[ruoyi-admin/src/main/resources/application.yml](ruoyi-admin/src/main/resources/application.yml)
### 4.1 Profile 文件
| Profile | 文件
| dev | application-dev.yml
| pro | application-pro.yml
### 4.2 生产关键配置(节选自 application-pro.yml)
yaml
ruoyi:
profile: /www/static # 上传文件存储目录
demoEnabled: true
spring:
datasource:
druid:
master:
url: jdbc:mysql://127.0.0.1:23306/chengdu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: chengdu
password: <数据库密码>
data:
redis:
host: 127.0.0.1
port: 26379
password: <Redis 密码>
rabbitmq:
host: 127.0.0.1
port: 25672
username: skins
password: <RabbitMQ 密码>
virtual-host: /skins
token:
secret: <强随机 32 位以上字符串> # JWT 密钥,必须修改
expireTime: 1440 # 分钟
### 4.3 项目文件上传目录
ruoyi.profile 指上传文件物理路径(默认 /www/static),创建并赋权(宝塔直接手动创建):
## 5. 编译与打包
### 5.1 服务器编译(脚本封装)
仓库根目录提供 [package.sh](package.sh):
package.sh
主要工作:
1. 检查 mvn 和 java 命令是否可用。
2. git pull 拉取最新代码。
3. 调用 mvn clean package -Dmaven.test.skip=true。
4. 将 ruoyi-admin/target/ruoyi-admin.jar 复制到仓库根目录 ./ruoyi-admin.jar,供 ry.sh 启动。
## 6. 一键部署脚本(宝塔推荐)
仓库根 [publish.sh](publish.sh) 封装「备份旧jar → 打包 → 重启」完整流程:
bash执行流程
cd /www/chengdu_app/chengdu-backend
./publish.sh
执行解释步骤:
1. 备份旧 jar:cp ruoyi-admin.jar ruoyi-admin.jar.bak
2. 打包:调用 ./package.sh(含 git pull + mvn package)
3. 重启:./ry.sh stop && ./ry.sh start
ry.sh 会自动检测 CPU 核数选择 JVM 规格(16c32g: 10g堆 / 32c64g: 22g堆),使用 G1GC 并开启 GC 日志。可通过 JVM_PROFILE 环境变量覆盖规格,SPRING_PROFILE 覆盖 Spring Profile(默认 pro)。
## 7. 前端工程部署
### 7.1 ruoyi-ui(Vue2 经典管理端)
bash
cd ruoyi-ui
npm install
npm run build:prod # 将dist目录下文件打包
# 将 dist压缩包 上传到/www/wwwroot/静态目录
### 7.2 promo-ui2(Vue3 推广后台)
bash
cd promo-ui2
pnpm install
pnpm build:pro # 将dist目录下文件打包
# 将 dist压缩包 上传到/www/wwwroot/静态目录
## 8. 宝塔端口放行
| 端口 | 用途
| 80 / 443 | Nginx
| 28081 | 后端 Spring Boot
| 23306 | MySQL
| 26379 | Redis
| 25672 / 35672 | RabbitMQ AMQP
执行流程
宝塔 → 安全 → 放行 80/443/26379/23306/28081 等等所需要的端口号,其余端口可在宝塔安全设置添加和修改。
## 9. 日志与监控
### 9.1 日志文件
| 路径 | 内容 |
| nohup.out | 启动 + 控制台日志(由 ry.sh 输出) |
| /www/ruoyi/logs/sys-info.log | 系统日志(logback,按天滚动,保留60天) |
| /www/ruoyi/logs/sys-error.log | 错误日志(logback,按天滚动,保留60天) |
| /www/ruoyi/logs/gc.log | GC 日志(滚动 10 个文件,每个 50M) |
实时跟踪:
bash脚本
tail -f nohup.out