#!/bin/bash # 抠图功能部署脚本 # 用于将新功能更新到服务器 set -e echo "==================================================================================" echo "🚀 抠图功能部署脚本" echo "==================================================================================" # 服务器配置 SERVER="45.192.99.48" USER="root" PORT="22" PASSWORD="1blZllMIp7" PROJECT_DIR="/var/www/ai-chatbot" SSH_OPTS="-o StrictHostKeyChecking=no -o ServerAliveInterval=60" echo "" echo "📋 部署步骤:" echo " 1. 检查本地代码状态" echo " 2. 提交代码到Git(如果需要)" echo " 3. 推送到远程仓库" echo " 4. 在服务器上拉取更新" echo " 5. 安装依赖(如果需要)" echo " 6. 重新构建项目" echo " 7. 重启应用" echo "" # 步骤1: 检查本地代码状态 echo "步骤 1/7: 检查本地代码状态..." if ! git diff --quiet || ! git diff --cached --quiet; then echo "⚠️ 发现未提交的更改:" git status --short echo "" read -p "是否提交这些更改?(y/n) " -n 1 -r echo "" if [[ $REPLY =~ ^[Yy]$ ]]; then git add -A git commit -m "feat: 添加画图标注抠图功能 - 新增抠图API路由 (/api/rmbg) - 在画图标注组件中添加抠图功能 - 在系统设置中添加抠图API配置 - 支持图片上传到S3并保存到数据库 - 图片可在相册和出图记录中查看" echo "✅ 代码已提交" else echo "❌ 取消部署(需要先提交代码)" exit 1 fi else echo "✅ 没有未提交的更改" fi # 步骤2: 推送到远程仓库 echo "" echo "步骤 2/7: 推送到远程仓库..." read -p "是否推送到远程仓库?(y/n) " -n 1 -r echo "" if [[ $REPLY =~ ^[Yy]$ ]]; then git push echo "✅ 代码已推送到远程仓库" else echo "⚠️ 跳过推送(如果服务器使用本地代码,可以跳过)" fi # 步骤3-7: 在服务器上执行 echo "" echo "步骤 3-7: 在服务器上执行更新..." sshpass -p "$PASSWORD" ssh -p "$PORT" $SSH_OPTS "$USER@$SERVER" << 'REMOTEEOF' set -e cd /var/www/ai-chatbot echo "" echo "步骤 3/7: 拉取最新代码..." git pull || echo "⚠️ Git pull失败,可能使用本地代码" echo "" echo "步骤 4/7: 检查依赖..." if [ -f "pnpm-lock.yaml" ]; then echo "检查pnpm依赖..." pnpm install --no-frozen-lockfile || echo "⚠️ 依赖安装失败" else echo "⚠️ 未找到pnpm-lock.yaml" fi echo "" echo "步骤 5/7: 重新构建项目..." pnpm build || { echo "❌ 构建失败,查看错误信息:" pnpm build 2>&1 | tail -30 exit 1 } echo "" echo "步骤 6/7: 重启应用..." pm2 restart ai-chatbot || pm2 restart all || { echo "⚠️ PM2重启失败,尝试手动重启..." pm2 list } echo "" echo "步骤 7/7: 检查应用状态..." sleep 3 pm2 status ai-chatbot || pm2 list echo "" echo "==================================================================================" echo "✅ 部署完成!" echo "==================================================================================" echo "" echo "📋 验证步骤:" echo " 1. 访问系统设置 → 抠图设置,配置API地址" echo " 2. 在画图标注界面测试抠图功能" echo " 3. 检查相册中是否显示抠图后的图片" echo " 4. 检查系统设置的出图记录中是否显示" echo "" REMOTEEOF echo "" echo "==================================================================================" echo "✅ 部署脚本执行完成!" echo "=================================================================================="