- 创建 /api/enhance 路由,实现图片变清晰API集成 - 在图片标注组件中添加变清晰按钮(Sparkles图标) - 在相册页面添加变清晰按钮 - 系统设置:将抠图设置改名为本地AI设置,添加变清晰API配置 - 支持同步和异步两种模式 - 自动上传到S3存储桶并保存到数据库 - 在相册和出图记录中显示处理后的图片
126 lines
3.5 KiB
Bash
Executable File
126 lines
3.5 KiB
Bash
Executable File
#!/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 "=================================================================================="
|