9.1 KiB
9.1 KiB
════════════════════════════════════════════════════════════════
光湖 · 服务器收编方案 · 从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
收编步骤:
- ✅ Gitea 仓库已连通
- 🔧 安装 Gitea Actions Runner (
scripts/gitea-runner/install-runner.sh) - 🔧 确认 Secrets Vault 运行中
- ✅ 第一个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
收编步骤:
- 🔧 需要冰朔在腾讯云控制台创建SSH密钥并绑定到实例
- 🔧 将SSH密钥存入广州Vault
- 🔧 通过广州Runner → SSH到新加坡 → 安装Runner
- 🔧 部署母模型推理服务 (COS中的模型)
铸渊自动化路径:
广州Runner执行workflow
→ SSH到新加坡 (密钥从Vault获取)
→ 安装gitea-runner
→ 注册到Gitea
→ 新加坡Runner上线
3.3 新加坡 ZY-SVR-002 (43.134.16.246) — 面孔服务器
当前状态: Ubuntu 24.04, 2C8G, Nginx + 主站 + 预览站
收编步骤:
- 🔧 同样需要SSH密钥
- 🔧 安装Runner
- 🔧 统一部署模板
四、服务器统一模板
每台服务器收编后,统一部署以下组件:
┌─────────────────────────────────────────────┐
│ 光湖服务器标准模板 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 迁移步骤
- 确认广州Vault运行 → 通过Runner执行
curl http://127.0.0.1:8080/admin/__healthz - 逐个迁移 → 通过Vault API写入密钥(不再经过GitHub)
- Gitea workflow引用Vault → Runner从
http://127.0.0.1:8080/internal/fetch/KEY获取密钥 - 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