guanghulab/.github/server-consolidation-plan.md
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

9.1 KiB
Raw Permalink Blame History

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

光湖 · 服务器收编方案 · 从GitHub到Gitea主控

Sovereign: TCS-0002∞ · 守护: ICE-GL-ZY001

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

冰朔 2026-05-13 提出:

"代码仓库在服务器上运行的。你可以操作就等于直接可以进去。

进去了以后自然又能通过一个服务器连接GitHub

从那边仓库再获得其他所有服务器的配置相关情况。

然后用国内的这个代码仓库做桥接,

把所有在GitHub上的服务器全部收到你主控的这里来。"

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

一、冰朔的理解 vs 实际情况

冰朔理解 实际情况 差距
Codebuddy连Gitea = 直接上了服务器 Codebuddy只能操作仓库文件不能执行shell命令 缺Runner桥梁
可以通过服务器连GitHub拿其他服务器密钥 服务器本身能连GitHub但Codebuddy不能触发 缺执行通道
密钥能自动生成+只点授权 Vault已建好授权流程已写但缺前端弹窗 缺前端交互

核心结论: 冰朔的愿景100%正确,缺的就是Gitea Actions Runner这座桥。


二、收编路线图

阶段0 (现在)          阶段1 (+Runner)        阶段2 (+Vault统一)     阶段3 (完全主控)
─────────────        ──────────────         ──────────────        ──────────────
铸渊只能:             铸渊能:                铸渊能:               铸渊能:
· 读写仓库文件        · 以上所有              · 以上所有            · 以上所有
· 推代码到Gitea       · 在广州服务器执行命令   · 管理所有密钥        · 控制所有服务器
· Gitea API操作       · 自动化工作流          · 密钥授权弹窗        · 自动部署服务
                                             · 不依赖GitHub       · 铸渊自己的AI

密钥位置:             密钥位置:               密钥位置:             密钥位置:
GitHub Secrets        GitHub Secrets          本地Vault             本地Vault
                      + Vault(本地)            (完全脱离GitHub)      (完全脱离GitHub)

三、每台服务器的收编步骤

3.1 广州 ZY-SVR-004 (43.139.217.141) — 第一台

当前状态: Gitea + Nginx 运行中2C2G

收编步骤:

  1. Gitea 仓库已连通
  2. 🔧 安装 Gitea Actions Runner (scripts/gitea-runner/install-runner.sh)
  3. 🔧 确认 Secrets Vault 运行中
  4. 第一个workflow已就绪 (.gitea/workflows/selfcheck.yaml)

安装命令 (冰朔在广州服务器终端执行):

sudo bash /data/guanghulab/scripts/gitea-runner/install-runner.sh \
  --token 3e16b79c427bb44b77c00b319aa641bde8f61d84 \
  --name zhuyuan-runner-cn \
  --mode host

注意: 如果 gitea.com 下载不了国内网络问题需要通过COS中转。

3.2 新加坡 ZY-SVR-005 (43.156.237.110) — 大脑服务器

当前状态: Ubuntu 24.04, 4C8G, PostgreSQL + MCP Server

收编步骤:

  1. 🔧 需要冰朔在腾讯云控制台创建SSH密钥并绑定到实例
  2. 🔧 将SSH密钥存入广州Vault
  3. 🔧 通过广州Runner → SSH到新加坡 → 安装Runner
  4. 🔧 部署母模型推理服务 (COS中的模型)

铸渊自动化路径:

广州Runner执行workflow
  → SSH到新加坡 (密钥从Vault获取)
  → 安装gitea-runner
  → 注册到Gitea
  → 新加坡Runner上线

3.3 新加坡 ZY-SVR-002 (43.134.16.246) — 面孔服务器

当前状态: Ubuntu 24.04, 2C8G, Nginx + 主站 + 预览站

收编步骤:

  1. 🔧 同样需要SSH密钥
  2. 🔧 安装Runner
  3. 🔧 统一部署模板

四、服务器统一模板

每台服务器收编后,统一部署以下组件:

┌─────────────────────────────────────────────┐
│            光湖服务器标准模板 v1.0            │
│                                              │
│  ┌──────────────┐  ┌──────────────────┐     │
│  │ Gitea Runner  │  │ Secrets Vault    │     │
│  │ (执行铸渊指令) │  │ (密钥管理+授权)   │     │
│  └──────────────┘  └──────────────────┘     │
│  ┌──────────────┐  ┌──────────────────┐     │
│  │ PM2           │  │ Nginx (如需)     │     │
│  │ (进程管理)    │  │ (反向代理)        │     │
│  └──────────────┘  └──────────────────┘     │
│  ┌──────────────┐  ┌──────────────────┐     │
│  │ Node.js 20   │  │ 监控上报          │     │
│  │ (运行时)     │  │ (状态→Gitea)      │     │
│  └──────────────┘  └──────────────────┘     │
│                                              │
│  部署路径: /data/guanghulab/                  │
│  日志路径: /data/guanghulab/logs/             │
│  数据路径: /data/guanghulab/data/             │
└─────────────────────────────────────────────┘

一键部署模板脚本

铸渊将编写 scripts/server-bootstrap/bootstrap.sh

  • 检测服务器硬件和OS
  • 安装 Node.js 20 + PM2 + Nginx
  • 从 Gitea 拉取最新代码
  • 注册 Runner
  • 启动 Vault 客户端
  • 上报完成状态

五、密钥迁移路线

5.1 当前密钥分布

密钥 当前位置 迁移目标
ZY_SERVER_HOST/KEY/USER GitHub Actions Secrets 广州Vault
ZY_BRAIN_HOST/KEY/USER GitHub Actions Secrets 广州Vault
COS_SECRET_ID/KEY GitHub Actions Secrets 广州Vault
Gitea API Token 冰朔提供 广州Vault
SSH密钥 (各服务器) 腾讯云控制台 广州Vault

5.2 迁移步骤

  1. 确认广州Vault运行 → 通过Runner执行 curl http://127.0.0.1:8080/admin/__healthz
  2. 逐个迁移 → 通过Vault API写入密钥不再经过GitHub
  3. Gitea workflow引用Vault → Runner从 http://127.0.0.1:8080/internal/fetch/KEY 获取密钥
  4. GitHub Secrets弃用 → 确认国内workflow正常后删除GitHub Secrets

5.3 授权弹窗流程

铸渊需要密钥
  → 通过 auth 路由发起请求: POST /admin/auth/request
  → 冰朔在浏览器看到弹窗: "铸渊请求 SSH 密钥,用于连接新加坡服务器"
  → 冰朔点击 [授权]
  → 密钥自动生成 → 存入Vault → 铸渊可用
  → 冰朔看到遮罩值: gto_************ (AI看不到完整值)

六、COS模型部署终局基础

冰朔确认: 母模型和编程代码模型已训练完毕存于COS存储桶。

部署路径

COS: sy-finetune-corpus-1317346199
  ├── 母模型 (mother model)
  └── 编程代码模型 (code model)
          │
          ▼
  新加坡 ZY-SVR-005 (4C8G) 或按量计费GPU服务器
          │
          ▼
  推理服务 (vLLM / Ollama / 自研)
          │
          ▼
  API网关 (广州 004 或新加坡 002)
          │
          ▼
  铸渊 Copilot (前端)

需要确认

  • 模型文件在COS中的具体路径
  • 模型格式 (GGUF / SafeTensors / 其他)
  • 模型大小 (决定需要多大的服务器)
  • 是否需要GPU推理

七、冰朔需要做的事(按时间顺序)

现在 → 装Runner

在广州服务器上执行:

# 方案A: 直接下载安装(如果网络通畅)
sudo bash <(curl -fsSL https://guanghulab.com/git/bingshuo/guanghulab/raw/branch/main/scripts/gitea-runner/install-runner.sh) \
  --token 3e16b79c427bb44b77c00b319aa641bde8f61d84

# 方案B: 如果gitea.com下载不了先手动下载
# 在新加坡服务器上下载推到COS广州从COS拉

装完Runner后 → 确认Vault

pm2 list  # 看vault是否在跑
# 如果没跑: cd /data/guanghulab/server/secrets-vault && npm install && pm2 start server.js --name guanghulab-vault

之后 → SSH密钥

在腾讯云控制台为新加坡两台服务器创建SSH密钥绑定实例。


铸渊 · 服务器收编方案 v1.0 · 2026-05-13 ICE-GL-ZY001 · TCS-0002∞ · 国作登字-2026-A-00037559