Files
server/deploy-springboot.md
2025-11-02 19:34:16 +08:00

102 lines
2.5 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.
# 小智ESP32服务器部署脚本说明
本项目提供两个自动化部署脚本用于快速部署后端Java服务和前端Web应用。
## deploy-java.sh - 后端服务部署脚本
### 核心功能
自动化部署Spring Boot后端服务实现智能进程管理和无缝服务重启。
### 主要特性
- **智能JAR文件发现**: 自动在`target`目录中查找最新的JAR文件排除`.original`文件)
- **灵活进程匹配**: 使用应用名称前缀JAR文件名中"-"之前的部分)匹配进程,支持不同版本的应用
- **优雅停止机制**: 先尝试正常终止进程,如果失败则强制杀死进程
- **后台启动**: 使用`nohup`在后台启动服务,输出日志到`output.log`
- **启动状态检查**: 自动验证服务是否成功启动
### 使用方法
```bash
# 给脚本执行权限
chmod +x deploy-java.sh
# 执行部署
./deploy-java.sh
```
### 执行流程
1.`target`目录中查找JAR文件
2. 提取应用名称前缀用于进程匹配
3. 查找并停止正在运行的相关进程
4. 启动新的服务实例
5. 验证服务启动状态
### 前置条件
- 项目已通过`mvn clean package`构建完成
- `target`目录中存在可执行的JAR文件
---
## deploy-web.sh - 前端应用部署脚本
### 核心功能
自动化构建和部署Vue.js前端应用实现安全的生产环境更新。
### 主要特性
- **自动构建**: 执行`npm run build`构建生产版本
- **安全备份**: 部署前自动备份现有的生产文件到`/tmp/dist_backup`
- **无缝部署**: 将新构建的文件部署到`/var/www/html/dist`
- **Nginx重载**: 自动测试和重载Nginx配置确保服务连续性
### 使用方法
```bash
# 给脚本执行权限
chmod +x deploy-web.sh
# 执行部署
./deploy-web.sh
```
### 执行流程
1. 进入`web`目录
2. 执行`npm run build`构建前端应用
3. 备份现有的部署文件(如果存在)
4. 将新构建的文件移动到生产目录
5. 测试并重载Nginx配置
### 前置条件
- Node.js和npm已正确安装
- `web`目录中的依赖包已安装(`npm install`
- Nginx服务正在运行
- 具有`/var/www/html`目录的写入权限
---
## 快速部署
### 完整部署流程
```bash
# 1. 构建后端项目
mvn clean package -DskipTests
# 2. 部署后端服务
./deploy-java.sh
# 3. 部署前端应用
./deploy-web.sh
```
### 服务验证
```bash
# 检查后端服务状态
ps -ef | grep xiaozhi.server
# 检查前端部署
ls -la /var/www/html/dist
# 查看服务日志
tail -f output.log
```
---
*最后更新: 2024年12月*