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