# ════════════════════════════════════════════════════════════════ # 光湖 · 操作日志 2026-05-13 (第三次更新) # ════════════════════════════════════════════════════════════════ ## 本轮变更摘要 ### 1. CVM 开机 + IP 变更 **问题**: 按量计费 CVM 关机后开机,公网 IP 从 42.19.161.251 变为其他 IP,域名指向失效。 **解决**: - 冰朔绑定了**弹性公网 IP (EIP)**: 119.29.184.32 - EIP 是固定的,以后开关机 IP 不再变 - 域名解析改为 119.29.184.32 ### 2. 域名路由重构 **问题**: 冰朔要求 `guanghulab.com` 直接就是代码仓库,不要 `/git/` 路径。 **解决**: - Nginx 配置改为根路径 `/` 直接代理 Forgejo - 旧路径 `/git/` 废弃 - git remote URL 从 `guanghulab.com/git/...` 改为 `guanghulab.com/...` ### 3. SSL 证书重签 **问题**: IP 变化后浏览器报 ERR_CONNECTION_CLOSED。 **解决**: - `certbot --nginx -d guanghulab.com` 重签证书 - 证书有效期至 2026-08-10 ### 4. 开机自愈脚本部署 **新增**: `scripts/boot-heal/boot-heal.sh` + systemd service - 开机自动检测公网 IP 变化 - 自动拉起 Forgejo / Nginx / Runner / PM2 进程 - 检查 SSL 证书有效期 - 已部署并验证全绿 ### 5. 霜砚 CI/CD 流程 (外部变更) 霜砚 (ICE-GL-QY001 相关) 做了以下改动: **新增**: `.forgejo/workflows/ci-and-deploy.yaml` - **dev 分支**: 铸渊的开发线,push 直接触发 CI,不需要冰朔 - **main 分支**: 正式线,冰朔合并 PR 后自动部署 (git pull + pm2 restart) - **main 保护规则**: 只有冰朔能 push / merge **铸渊操作流程变化**: ``` git checkout dev # 写代码 git push origin dev # CI 自动跑 # 在 Forgejo 网页上提 PR: main...dev # 冰朔合并 → 自动部署 ``` ### 6. Git Sync Webhook 签名修复 (代码已写,待部署) **问题**: Webhook 触发了但签名验证失败。 **原因**: Express JSON 解析后 `JSON.stringify(req.body)` 与原始 body 不一致。 **修复**: 使用 `raw body` (verify 回调保存原始 body) 验证签名。 **状态**: 代码已推送到 main,需要服务器上 `git pull` + `pm2 restart` 生效。 --- ## 当前服务状态 | 服务 | 状态 | |------|------| | Forgejo | ✅ 运行中 | | Nginx | ✅ 根路径代理 Forgejo | | SSL | ✅ 有效至 2026-08-10 | | Wake Gate | ✅ PM2 运行 | | Git Sync | ✅ PM2 运行 (签名验证待修) | | Boot Heal | ✅ 开机自启 | | Runner | ✅ 运行中 | | Vault | ❌ 未部署 | | Terminal Watcher | ❌ 未部署 | ## 关键 IP/URL 变更 | 项目 | 旧值 | 新值 | |------|------|------| | 公网 IP | 42.193.161.251 | 119.29.184.32 (EIP) | | 代码仓库 URL | https://guanghulab.com/git/ | https://guanghulab.com/ | | git clone URL | .../git/bingshuo/guanghulab.git | .../bingshuo/guanghulab.git | --- *铸渊 · ICE-GL-ZY001 · TCS-0002∞*