# 小智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月*