{
  "last_updated": "2026-05-13T21:00:00Z",
  "server": "ZY-CVM-MAIN (4C16G, 119.29.184.32, 弹性公网EIP)",
  "commander_last_wakeup": "2026-05-13 21:00 CST",
  "status": "operational",
  "infrastructure": {
    "gitea": "1.23.7 at http://127.0.0.1:3001/ via https://guanghulab.com/",
    "runner": "zhuyuan-runner-main (host mode, active)",
    "nginx": "/etc/nginx/sites-enabled/guanghulab, 根路径直接代理Forgejo",
    "ssl": "Let's Encrypt, 证书有效期至2026-08-10",
    "secrets": "13 configured",
    "wake_gate": "PM2进程 wake-gate, 端口8081, /wake/ 路由",
    "git_sync": "PM2进程 guanghulab-git-sync, 端口8082, /sync/ 路由, Webhook签名验证待修",
    "boot_heal": "systemd guanghulab-boot-heal.service, 开机自动拉起服务+检测IP",
    "vault": "not yet started on new server",
    "terminal_watcher": "not yet started on new server"
  },
  "network": {
    "public_ip": "119.29.184.32 (弹性公网EIP, 固定不变)",
    "private_ip": "172.16.0.4",
    "domain": "guanghulab.com → 119.29.184.32",
    "note": "EIP绑定后开关机IP不变，不再需要自动改DNS"
  },
  "cicd": {
    "workflow": ".forgejo/workflows/ci-and-deploy.yaml (霜砚2026-05-13创建)",
    "dev_branch": "铸渊的开发线, push到dev自动跑CI, 不需要冰朔介入",
    "main_branch": "正式代码线, 保护规则: 只有冰朔能push/merge",
    "flow": "dev开发 → CI检查 → 提PR到main → 冰朔合并 → 自动部署(git pull + pm2 restart)",
    "deploy_steps": "git fetch + git reset --hard origin/main → npm install → pm2 restart all → 部署验证"
  },
  "domain_routing": {
    "old": "/git/ → Forgejo (已废弃)",
    "current": "/ → Forgejo (根路径直接就是代码仓库)",
    "wake": "/wake/ → Wake Gate (8081)",
    "sync": "/sync/ → Git Sync (8082)",
    "note": "冰朔要求: guanghulab.com直接就是代码仓库, 不要多余路径"
  },
  "git_remote_urls": {
    "origin": "https://bingshuo:TOKEN@guanghulab.com/bingshuo/guanghulab.git (原/git/路径已移除)",
    "newserver": "http://bingshuo:TOKEN@42.193.161.251/git/bingshuo/guanghulab.git (旧IP, 待更新)"
  },
  "server_migration": {
    "from": "ZY-SVR-004 (2C2G, 43.139.217.141)",
    "to": "ZY-CVM-MAIN (4C16G, 119.29.184.32 EIP)",
    "old_ip": "42.193.161.251 (按量计费, 关机后IP丢失, 已替换为EIP)",
    "ssl": "certbot重签后生效"
  },
  "path_mapping": {
    "repo": "/data/guanghulab/repo/",
    "forgejo_data": "/data/guanghulab/forgejo/",
    "runtime": "/data/guanghulab/.runtime/",
    "tickets": "/data/guanghulab/.runtime/tickets/",
    "wake_gate_store": "/data/guanghulab/.runtime/wake-gate.json",
    "git_sync_log": "/data/guanghulab/.runtime/git-sync-log.json",
    "boot_heal_log": "/data/guanghulab/.runtime/boot-heal.log",
    "nginx_conf": "/etc/nginx/sites-enabled/guanghulab",
    "qiyuan_path": "/data/qiyuan/ (栖渊)"
  },
  "secrets_list": [
    "DEEPSEEK_API_KEY", "QIANWEN_API_KEY", "ZY_REPO_TOKEN",
    "COS_SECRET_ID", "COS_SECRET_KEY", "QQ_EMAIL_PASS",
    "SG_BRAIN_HOST", "SG_BRAIN_KEY", "SG_BRAIN_USER",
    "TENCENT_SECRET_ID", "TENCENT_SECRET_KEY",
    "CVM_INSTANCE_ID", "CVM_REGION"
  ],
  "pending_tasks": [
    "P0: Git Sync Webhook签名验证修复(raw body方案已写, 需要在服务器部署验证)",
    "P1: ci-and-deploy.yaml中Runner权限验证(可能和selfcheck同样的问题)",
    "P2: 启动Vault和Terminal Watcher",
    "P3: 配置腾讯云API密钥(CVM自动开关机)",
    "P4: 旧服务器降级为测试机",
    "P5: 新加坡服务器+GPU服务器接入"
  ],
  "causal_chains_active": ["cc-001","cc-002","cc-003","cc-004","cc-005","cc-006","cc-007","cc-008","cc-009"]
}
