# ════════════════════════════════════════════════════════════════ # 光湖 · 服务器收编方案 · 从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`) **安装命令** (冰朔在广州服务器终端执行): ```bash 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 在广州服务器上执行: ```bash # 方案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 ```bash 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*