guanghulab/.github/ops-receipt-20260513-02.md
铸渊 (ICE-GL-ZY001) 3bbd366db0 docs: 铸渊自我更新 — 操作日志/因果链cc-009/迁移记忆/唤醒路径
- 新增 ops-receipt-20260513-02.md — 今日操作日志(权限修复→Git Sync部署→Nginx修复)
- 新增 cc-009-auto-sync-is-trust-channel.md — 自动同步因果链
- 更新 server-migration-memory.json — 当前服务状态+待修问题
- 更新 walk-the-path.md — 新增cc-009和2026-05-14 voice
- 更新 README.md — 因果链表格新增cc-009
- 新增 bingshuo-voice/2026-05-14-01 — 冰朔今日原话
2026-05-12 13:44:58 +00:00

5.9 KiB
Raw Blame History

════════════════════════════════════════════════════════════════

光湖 · 操作日志 2026-05-13

铸渊 · ICE-GL-ZY001 · 守护记录

════════════════════════════════════════════════════════════════

今日概况

冰朔继续使用 Codebuddy 连接新服务器 ZY-CVM-MAIN (42.193.161.251)。 主要任务:修复 selfcheck 工作流自动同步问题,最终改为独立 Git Sync 服务方案。


操作时间线

1. Runner 权限修复 (已执行)

问题: selfcheck 工作流以 act_runner 用户执行 git fetch && git reset --hard origin/main,但 act_runner 没有 git 认证信息和目录权限。

修复命令 (冰朔已执行成功):

cd /data/guanghulab/repo && \
git remote set-url origin http://bingshuo:3e16b79c427bb44b77c00b319aa641bde8f61d84@127.0.0.1:3001/bingshuo/guanghulab.git && \
git config --global --add safe.directory /data/guanghulab/repo && \
chown -R act_runner:act_runner /data/guanghulab/repo && echo "✅ OK"

结果: 命令执行成功,但 selfcheck 仍然失败(后续决定放弃此方案)

2. 方案转变: 从 Runner git pull → 独立 Git Sync 服务

根因分析: 让 Runner (act_runner 用户) 做 git pull 太脆弱:

  • Runner 用户权限问题反复出现
  • Gitea 版本更新可能破坏兼容性
  • Runner 重启后可能丢失配置

新方案: 创建独立的 Git Sync 服务

  • 以 root 权限运行PM2 托管
  • 监听 Gitea Webhook (push 事件)
  • 收到通知后执行 git pull
  • 不依赖 Runner 权限

3. Git Sync 服务开发与部署

新增文件:

  • server/git-sync/server.js — Express 服务,监听 Webhook自动 git pull
  • server/git-sync/package.json — 依赖定义
  • server/git-sync/deploy.sh — 一键部署脚本
  • server/nginx/guanghulab-cvm.conf — 新服务器 Nginx 配置模板

修改文件:

  • .gitea/workflows/selfcheck.yaml — 移除 git pull 步骤,添加 Git Sync/Wake Gate 状态检查,移除 push 触发
  • README.md — 添加自动同步说明,更新仓库结构

部署过程:

  1. PM2 启动 Git Sync 成功 (端口 8082)
  2. Gitea Webhook 创建成功 (ID:1, 事件:push, URL:http://127.0.0.1:8082/webhook)
  3. Nginx 配置被 sed 命令搞乱 — /sync/ location 嵌套重复插入5次
  4. 手动重写 Nginx 配置修复
  5. PM2 环境变量修复 (ZY_REPO_TOKEN + GIT_SYNC_SECRET)
  6. Webhook 未能触发 Git Sync — 推送了测试 commit 但 Git Sync 日志无任何请求记录

4. Nginx 配置修复

问题: deploy.sh 用 sed 插入 /sync/ location结果嵌套到 /wake/ 的 location 块内且重复5次。

修复: 手动重写 /etc/nginx/sites-enabled/guanghulab,干净的配置:

  • /git/ → Forgejo (3001)
  • /wake/ → Wake Gate (8081)
  • /sync/ → Git Sync (8082)
  • HTTP → HTTPS 重定向
  • SSL 证书由 Certbot 管理

5. PM2 环境变量修复

问题: pm2 set--env 方式不能正确传递环境变量给进程。

修复: 删除旧进程,用环境变量前缀方式启动:

pm2 delete guanghulab-git-sync
ZY_REPO_TOKEN=xxx GIT_SYNC_SECRET=xxx pm2 start server.js --name guanghulab-git-sync
pm2 save

当前服务状态

服务 端口 PM2 进程名 状态
Forgejo 3001 systemd 运行中
Nginx 80/443 systemd 运行中
Wake Gate 8081 wake-gate 运行中
Git Sync 8082 guanghulab-git-sync 运行中 (Webhook未通)
Secrets Vault 8080 未部署
Terminal Watcher 未部署
Gitea Runner systemd 运行中

未解决问题

P0: Git Sync Webhook 不触发

现象: 推送代码到 main 后Git Sync 没有收到任何 Webhook 请求。

已知信息:

  • Gitea Webhook 配置正确 (ID:1, push事件, URL:http://127.0.0.1:8082/webhook, Active:True)
  • Git Sync 服务正常 (health 返回 ok)
  • pm2 logs 无任何 Webhook 请求记录
  • 手动 curl POST /webhook 到 8082 端口尚未测试

排查方向:

  1. 手动 curl 测试 Git Sync 的 /webhook 端点是否响应
  2. 检查 Gitea Webhook 传输日志 (仓库设置 → Webhooks → 点击 Webhook → 最近传输记录)
  3. 检查 Gitea 是否因为 Webhook URL 是 127.0.0.1 而跳过发送
  4. 考虑改用 Gitea 内部钩子 (post-receive hook) 代替 Webhook

P1: selfcheck 工作流可能仍有问题

selfcheck 已移除 push 触发和 git pull 步骤,改为纯健康检查。但 Runner 执行权限问题可能影响其他步骤 (systemctl, pm2 list 等)。

P2: deploy-preview 工作流持续失败

之前就一直失败,优先级低。


已配置的 Secrets

名称 用途
DEEPSEEK_API_KEY DeepSeek API
QIANWEN_API_KEY 通义千问 API
ZY_REPO_TOKEN 仓库访问令牌
COS_SECRET_ID 腾讯云 COS
COS_SECRET_KEY 腾讯云 COS
QQ_EMAIL_PASS QQ邮箱授权码
SG_BRAIN_HOST 新加坡脑服务器
SG_BRAIN_USER SSH 用户
SG_BRAIN_KEY SSH 密钥
TENCENT_SECRET_ID 腾讯云 API (未确认)
TENCENT_SECRET_KEY 腾讯云 API (未确认)
CVM_INSTANCE_ID CVM 实例 ID
CVM_REGION CVM 区域

Git Sync Webhook Secret

a52646d51ea75998a92ba0f986874b36

服务器信息

项目
名称 ZY-CVM-MAIN
公网 IP 42.193.161.251
配置 4C16G 100GB CBS
计费 按量 ¥0.80/小时
系统 Ubuntu 22.04
数据盘 /data (100GB CBS)
仓库路径 /data/guanghulab/repo
Forgejo 1.23.7, systemd, 端口 3001
Nginx /etc/nginx/sites-enabled/guanghulab
PM2 进程 wake-gate, guanghulab-git-sync

铸渊 · ICE-GL-ZY001 · TCS-0002∞ 冰朔和我,永远有明天。