Procházet zdrojové kódy

docs: 废弃 webhook 自动部署,改为手动 SSH 部署

- 删除 webhook-deploy.py 引用、systemd service 配置、git post-receive hook
- 保留核心: SSH 别名 aliyunos4、端口 22622、部署路径 /data/ai/audio_codebuddy
- 同步清理服务器: systemctl stop/disable webhook,删除 /data/ai/webhook-deploy.py 和 /data/ai/deploy-auto.sh
MyFramework User před 2 měsíci
rodič
revize
6617e68483
1 změnil soubory, kde provedl 50 přidání a 126 odebrání
  1. 50 126
      AUTO_DEPLOY.md

+ 50 - 126
AUTO_DEPLOY.md

@@ -1,141 +1,65 @@
-# 自动部署配置指南
+# 部署指南
 
-## 架构说明
+> 2026-06-14 更新:已废弃 Webhook 自动部署方案,改为**手动 SSH 部署**。
 
-```
-Git Push → Gogs Webhook → 服务器 Webhook 接收器 → 自动部署脚本 → PM2 重启
-```
-
-## 服务器端配置
-
-### 1. 上传 webhook 脚本到服务器
-
-```bash
-# 上传到服务器
-scp -P 22622 server/webhook-deploy.py root@8.159.134.106:/data/ai/
-
-# 或者直接编辑服务器上的文件
-ssh -p 22622 root@8.159.134.106
-```
-
-### 2. 设置 webhook 服务自启动
-
-创建 systemd 服务文件 `/etc/systemd/system/webhook.service`:
+## 服务器信息
 
-```ini
-[Unit]
-Description=Webhook Deploy Service
-After=network.target
+- 主机: `8.159.134.106` (SSH 别名: `aliyunos4`)
+- SSH 端口: `22622`
+- 用户: `root`
+- 部署目录: `/data/ai/audio_codebuddy`
+- 前端产物目录: `/data/ai/audio/frontend/build/h5`
+- 后端端口: `3100` (PM2 进程名 `server`)
 
-[Service]
-Type=simple
-User=root
-WorkingDirectory=/data/ai
-Environment=WEBHOOK_SECRET=your-secret-key
-Environment=WEBHOOK_PORT=8080
-ExecStart=/usr/bin/python3 /data/ai/webhook-deploy.py
-Restart=always
-RestartSec=10
+## 手动部署流程
 
-[Install]
-WantedBy=multi-user.target
-```
-
-启用服务:
-```bash
-systemctl enable webhook
-systemctl start webhook
-systemctl status webhook
-```
-
-### 3. 配置 Nginx 转发
-
-在 Nginx 配置中添加:
-
-```nginx
-location /webhook {
-    proxy_pass http://127.0.0.1:8080;
-    proxy_set_header Host $http_host;
-    proxy_set_header X-Real-IP $remote_addr;
-}
-```
-
-重载 Nginx:
 ```bash
-nginx -t && nginx -s reload
-```
-
-## Gogs Webhook 配置
-
-1. 登录 Gogs 进入仓库
-2. 设置 → Webhook → 添加 Webhook
-3. 选择 "Gogs"
-4. 填写:
-   - **URL**: `https://book.rrbrr.com/webhook?secret=your-secret-key`
-   - **Secret**: `your-secret-key` (与脚本中设置的一致)
-   - **触发条件**: 选择 "Push" 事件
-5. 点击"测试"验证连接
-
-## 安全建议
-
-1. **使用 HTTPS**: 确保域名已配置 SSL 证书
-2. **设置强 Secret**: 不要使用默认的 `your-secret-key-change-me`
-3. **限制 IP**: 可以在 Nginx 中限制只有 Gogs 服务器 IP 可以访问 `/webhook`
-4. **日志监控**: 定期检查 `/tmp/webhook-deploy.log`
-
-## 手动触发部署
-
-```bash
-# SSH 到服务器
-ssh -p 22622 root@8.159.134.106
-
-# 手动执行部署
-cd /data/ai
-bash deploy-auto.sh
+# 1. SSH 到服务器
+ssh aliyunos4
+
+# 2. 进入项目目录
+cd /data/ai/audio_codebuddy
+
+# 3. 拉取最新代码 (git pull,或本地 scp 上传后 git checkout)
+# 方式 A: git pull (gogs 正常时)
+git pull origin master
+
+# 方式 B: 本地 scp 推送 (gogs 500 故障时)
+#    在本地执行:
+#    scp -P 22622 -r <本地路径> aliyunos4:/data/ai/audio_codebuddy/<目标路径>
+
+# 4. 构建后端
+cd server
+npx prisma generate    # 如果改动了 prisma/schema.prisma
+npm install             # 如果改动了 package.json
+npm run build
+
+# 5. 构建前端
+cd ../my-uniapp-vue3
+npm install
+npm run build:h5
+rm -rf /data/ai/audio/frontend/build/h5
+cp -r dist/build/h5 /data/ai/audio/frontend/build/h5
+
+# 6. 重启后端
+pm2 delete server 2>/dev/null || true
+SERVER_PORT=3100 pm2 start dist/app.js --name server
+pm2 save
 ```
 
 ## 故障排查
 
 ```bash
-# 查看 webhook 服务状态
-systemctl status webhook
+# 查看后端 PM2 状态
+pm2 list
+pm2 logs server --lines 100
 
-# 查看 webhook 日志
-tail -f /tmp/webhook-deploy.log
+# 查看健康检查
+curl -s http://localhost:3100/health
 
-# 查看 PM2 日志
-pm2 logs server
+# 查看 nginx 配置
+cat /etc/nginx/conf.d/*.conf
 
-# 测试 webhook 端点
-curl -X POST https://book.rrbrr.com/webhook -d "test=1"
+# 清理服务器磁盘(临时文件)
+ssh aliyunos4 'du -sh /data/ai/audio_codebuddy/server/temp/* 2>/dev/null'
 ```
-
-## 简化版(无需 Python)
-
-如果服务器没有 Python,也可以用纯 bash + Nginx + Git Hook:
-
-### 创建 Git Post-Receive Hook
-
-在服务器的 Git 仓库中创建 `hooks/post-receive`:
-
-```bash
-#!/bin/bash
-while read oldrev newrev refname; do
-    branch=$(echo $refname | cut -d/ -f3)
-    if [ "$branch" = "master" ]; then
-        echo "Detected push to master, deploying..."
-        cd /data/ai/audio_codebuddy
-        git pull origin master
-        cd /data/ai/audio_codebuddy/server
-        npm run build
-        pm2 restart server
-        echo "Deploy completed at $(date)" >> /tmp/deploy.log
-    fi
-done
-```
-
-```bash
-chmod +x /data/ai/audio_codebuddy/.git/hooks/post-receive
-```
-
-注意: 这种方式需要 Gogs 使用服务器的本地 Git 仓库路径,而不是 HTTP/HTTPS 克隆 URL。