Files
integral-shop/backend/DEPLOY.md
apple 079076a70e miao33: 从 main 同步 single_uniapp22miao,dart-sass 兼容修复,DEPLOY.md 更新
- 从 main 获取 single_uniapp22miao 子项目
- dart-sass: /deep/ -> ::v-deep,calc 运算符加空格
- DEPLOY.md 采用 shccd159 版本(4 子项目架构说明)

Made-with: Cursor
2026-03-16 11:16:42 +08:00

184 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 打包与部署说明
本文档说明项目的 **4 个子项目** 如何单独或组合打包部署。**2 个 jar 包** 分别对应 **2 个前端**,可独立执行编译、打包、部署。
---
## 一、架构概览
### 2 个 jar 包 ↔ 2 个前端
| jar 包 | 对应前端 | 说明 |
|--------|----------|------|
| **miao-admin-2.2.jar** | `frontend`admin 后台 Vue | 管理后台 API + 后台静态站点 |
| **miao-front-2.2.jar** | `single_uniapp22miao`(用户端 H5/uni-app | 积分商城、用户端 API |
### 4 个子项目(可单独打包部署)
| 子项目 | 产出 | 打包命令 | 说明 |
|--------|------|----------|------|
| **crmeb-admin** | `miao-admin-2.2.jar` | `mvn clean package -pl crmeb-admin -am -DskipTests` | 管理后台后端 |
| **crmeb-front** | `miao-front-2.2.jar` | `mvn clean package -pl crmeb-front -am -DskipTests` | 用户端 API |
| **frontend** | `frontend/dist` | `npm run build:prod` | 管理后台前端静态 |
| **single_uniapp22miao** | `single_uniapp22miao/unpackage/dist/build/h5` | `npm run build:h5` | 用户端 H5 静态 |
---
## 二、部署配置deploy.conf
配置位于 **backend/deploy.conf**按段落区分环境by80、miao50、shjjy153 等)。
### 通用变量
| 变量 | 说明 | 示例 |
|------|------|------|
| `SERVER_HOST` | 服务器 IP | 123.56.214.80 |
| `SERVER_USER` | SSH 用户 | root |
| `SERVER_PORT` | SSH 端口 | 22 |
| `REMOTE_DIR_JAR` | jar 上传目录(两个 jar 可同目录) | /www/wwwroot/crmeb |
| `REMOTE_DIR_ADMIN` | admin 后台静态站点目录 | /www/wwwroot/jfadmin.bosenyuan.com |
| `REMOTE_DIR_FRONT` | 用户端 H5 静态站点目录(部分环境有) | /www/wwwroot/jjy-jf.fwxgpt.com |
| `FRONT_JAR_NAME` | 用户端 jar 文件名 | miao-front-2.2.jar |
| `ADMIN_JAR_NAME` | 管理后台 jar 文件名 | miao-admin-2.2.jar |
| `FRONT_LOCAL_PORT` | 用户端 API 端口 | 30031 |
| `ADMIN_LOCAL_PORT` | 管理后台 API 端口 | 30032 |
### 环境示例deploy.conf
- **by80**`REMOTE_DIR_JAR``REMOTE_DIR_ADMIN`profile=miao80
- **miao50**`REMOTE_DIR`jar 目录profile=miao50
- **shjjy153**`REMOTE_DIR_JAR``REMOTE_DIR_ADMIN``REMOTE_DIR_FRONT`profile=shjjy153
---
## 三、单独打包4 个子项目)
### 1. 仅打包 crmeb-adminmiao-admin-2.2.jar
```bash
cd backend
mvn clean package -pl crmeb-admin -am -DskipTests
# 产出backend/crmeb-admin/target/miao-admin-2.2.jar
```
### 2. 仅打包 crmeb-frontmiao-front-2.2.jar
```bash
cd backend
mvn clean package -pl crmeb-front -am -DskipTests
# 产出backend/crmeb-front/target/miao-front-2.2.jar
```
### 3. 仅打包 admin 后台前端frontend
```bash
cd frontend
export NODE_OPTIONS="${NODE_OPTIONS:-} --openssl-legacy-provider" # Node 17+ 需要
npm run build:prod
# 产出frontend/dist
```
### 4. 仅打包用户端 H5 前端single_uniapp22miao
```bash
cd single_uniapp22miao
npm run build:h5
# 产出single_uniapp22miao/unpackage/dist/build/h5
```
---
## 四、单独启动(本机)
### 启动 miao-admin管理后台 API
```bash
cd backend
nohup java -jar crmeb-admin/target/miao-admin-2.2.jar \
--spring.profiles.active=miao80 \
--server.port=30032 > admin.log 2>&1 &
```
### 启动 miao-front用户端 API
```bash
cd backend
./shell/start-front-miao33.sh # 使用 miao33 配置,端口 30031
# 或指定 profile
nohup java -jar crmeb-front/target/miao-front-2.2.jar \
--spring.profiles.active=miao33 > front-miao33.log 2>&1 &
```
---
## 五、by80 环境一键部署admin 后台)
部署目标:**miao-admin-2.2.jar** + **admin 后台静态**,上传到 by80 配置的服务器。
### 1. 配置 SSH 免密(一次性)
```bash
ssh-copy-id -i ~/.ssh/id_ed25519_crmeb_deploy.pub root@123.56.214.80
```
### 2. 执行部署脚本
```bash
cd backend
./shell/deploy-admin-by80.sh
```
使用其他密钥:`SSH_IDENTITY=~/.ssh/你的私钥 ./shell/deploy-admin-by80.sh`
### 3. 脚本执行步骤
| 步骤 | 说明 |
|------|------|
| 1 | 编译 crmeb-admin生成 miao-admin-2.2.jar |
| 2 | 编译 frontend生成 dist |
| 3 | 远程备份原有 jar 与后台静态 |
| 4 | 上传 miao-admin-2.2.jar 到 REMOTE_DIR_JAR |
| 5 | 上传 frontend/dist 到 REMOTE_DIR_ADMIN |
| 6 | 远程重启 admin 服务profile=miao80, port=30032 |
---
## 六、其他环境
- **miao50**:使用 `./shell/deploy-admin-miao50.sh`,逻辑类似,配置来自 deploy.conf 中 miao50 段。
- **shjjy153**deploy.conf 中配置了 `REMOTE_DIR_FRONT`,可扩展脚本上传 single_uniapp22miao 的 H5 构建产物到该目录。
---
## 七、远程服务器手动重启
### 重启 adminmiao-admin-2.2.jar
```bash
ssh root@<SERVER_HOST>
cd /www/wwwroot/crmeb # 或 REMOTE_DIR_JAR
pkill -f miao-admin-2.2.jar || true
sleep 2
nohup java -Xms128m -Xmx200m -jar miao-admin-2.2.jar --spring.profiles.active=miao80 --server.port=30032 > admin.log 2>&1 &
pgrep -f miao-admin-2.2.jar && echo "Admin 已启动"
```
### 重启 frontmiao-front-2.2.jar
```bash
ssh root@<SERVER_HOST>
cd /www/wwwroot/crmeb # 或 REMOTE_DIR_JAR
pkill -f miao-front-2.2.jar || true
sleep 2
nohup java -Xms128m -Xmx200m -jar miao-front-2.2.jar --spring.profiles.active=miao33 --server.port=30031 > front.log 2>&1 &
pgrep -f miao-front-2.2.jar && echo "Front 已启动"
```
---
## 八、故障排查
- **SSH Permission denied**:检查 `ssh-copy-id` 是否成功,或指定正确 `SSH_IDENTITY`
- **前端构建 OpenSSL 报错**:设置 `export NODE_OPTIONS="--openssl-legacy-provider"`
- **jar 未启动**SSH 登录查看对应 log 文件及 `pgrep -f <jar名>`