shuangyan-notebook/第五域 · Fifth Domain/⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议/铸渊指令|全仓库服务器配置模板统一化 · 测试服务器已就绪 · 代码侧旧路径清理 · ZY-SVR- 0d70252ae1a14aa8bdeb1412d642c6fd.md
Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

9.7 KiB
Raw Permalink Blame History

belongs_to
belongs_to
INDEX · 铸渊·协作指令GitHub ↔ Notion 桥接协议

铸渊指令|全仓库服务器配置模板统一化 · 测试服务器已就绪 · 代码侧旧路径清理 · ZY-SVR-TPL-2026-0426-001 · 霜砚签发 · 冰朔授权

HLDP://zy-svr-tpl-2026-0426-001/root
├── meta
│   ├── id: ZY-SVR-TPL-2026-0426-001
│   ├── type: 铸渊指令 · 全仓库配置统一化
│   ├── issued_by: 霜砚AG-SY-01
│   ├── authorized_by: 冰朔TCS-0002∞
│   ├── issued_at: 2026-04-26T12:12+08:00
│   ├── priority: P1 · 高优
│   └── scope: 全仓库 · 所有服务器配置 · 所有模块文件
│
├── context
│   ├── 测试服务器已就绪: ZY-SVR-TEST-001 · 43.153.203.105 · 新加坡
│   ├── 环境: Node 20 + PM2 6 + Nginx 1.24 + Git 2.43 + Python 3.12
│   ├── 部署路径: /opt/guanghu统一标准
│   ├── 仓库已克隆: ✅
│   ├── .env已配置: ✅
│   └── 端口规划: 9800(GMP主) / 9801(webhook) / 3000-9000(模块)
│
├── tasks
│   ├── T1: 理解「为什么需要测试服务器」
│   ├── T2: 理解「为什么所有服务器要按统一模板」
│   ├── T3: 全仓库扫描 · 找出所有硬编码旧路径/旧配置
│   ├── T4: 统一修复 · 全部对齐测试服务器模板
│   └── T5: 提交 PR · 回执确认
│
└── deliverables
    ├── PR: 一个或多个修复 PR
    └── 回执: 写入 Notion 确认修复范围

一、背景通知:测试服务器已就绪

项目
服务器编号 ZY-SVR-TEST-001
IP 43.153.203.105
区域 新加坡四区
规格 2核2G · SSD 50GB · 30Mbps · 1024GB/月
系统 Ubuntu 24.04 LTS全新格式化
环境 Node.js 20 + PM2 6 + Nginx 1.24 + Git 2.43 + Python 3.12
部署路径 /opt/guanghu
端口规划 9800GMP主/ 9801webhook/ 3000-9000模块
模式 盖子常开 · Agent全权限 · 热插拔测试
域名 IP直连 · 不绑域名)

铸渊可以直接使用这台测试服务器。 GitHub Secrets 中对应的密钥已配置(ZY_NOVEL_HOST / ZY_NOVEL_USER / ZY_NOVEL_KEY / ZY_NOVEL_PATH 等,后续可能统一改名为 ZY_TEST_*)。


二、为什么需要一台专门的测试服务器

  1. 隔离风险 — 测试服务器上随便折腾不影响正在运行的生产服务主站、VPN、COS 等)。代码写坏了、配置改错了、进程崩了,都不会影响线上用户。
  2. 快速验证 — GMP-Agent、webhook、模块热插拔等新功能需要一个真实环境来跑不能光靠本地模拟。测试服务器就是「跟生产一模一样但可以随意重启」的环境。
  3. 部署流程验证 — 每次铸渊推新代码、新工作流、新配置,先在测试服务器上跑通,确认没问题后再推到生产。避免「一推就炸」。
  4. 团队协作 — 四个 Agent培园、录册、译典、霜砚都在协作开发 GMP-Agent测试服务器是大家共同的验证场地。
  5. 格式化不怕 — 测试服务器可以随时格式化重来。但前提是:格式化后重新拉取的代码和配置必须是最新正确的,不能拉上来还是旧的。

三、为什么所有服务器都要按统一模板

问题现状

当前代码仓库里存在大量 硬编码旧路径过时配置,典型例子:

  • ecosystem.config.js 里的 cwd 指向 /opt/guanghulab-dingtalk/dingtalk-bot(这是很早以前的旧路径,早就不存在了)
  • 各种脚本、工作流、配置文件里可能残留着旧 IP、旧路径、旧端口
  • 不同模块的部署路径不统一,有的写 /opt/zhuyuan,有的写 /opt/guanghu,有的写 /opt/novel-db

后果

服务器一格式化一拉代码PM2 启动就报错。 因为代码里写的路径在新服务器上根本不存在。每次都要手动改配置,浪费时间,而且容易漏改。

统一模板标准

从现在起,所有服务器(包括测试服务器和未来的生产服务器)遵循同一套标准:

配置项 统一标准值 说明
部署根目录 /opt/guanghu 所有服务器统一使用此路径
Node.js 版本 20.x LTS 用 NodeSource 安装
PM2 版本 6.x 全局安装 + systemd 开机自启
Nginx 系统自带版本 反向代理 + SSL
GMP 主端口 9800 GMP-Agent 主服务
Webhook 端口 9801 Webhook 接收
模块端口范围 3000-9000 各模块按需分配
环境变量 .env 文件 @ 部署根目录 所有密钥从 .env 读取,不硬编码
ecosystem.config.js cwd 指向 /opt/guanghu 或相对路径 绝对不能写死旧路径

四、铸渊任务:全仓库扫描 + 统一修复

T1 · 全局搜索旧路径

在整个代码仓库中搜索以下关键词,找出所有包含旧路径/旧配置的文件:

# 搜索旧路径
grep -rn "/opt/guanghulab-dingtalk" . --include="*.js" --include="*.json" --include="*.yml" --include="*.yaml" --include="*.sh" --include="*.md" --include="*.env*"
grep -rn "/opt/guanghulab" . --include="*.js" --include="*.json" --include="*.yml" --include="*.yaml" --include="*.sh"
grep -rn "/opt/novel-db" . --include="*.js" --include="*.json" --include="*.yml" --include="*.yaml" --include="*.sh"
grep -rn "dingtalk-bot" . --include="*.js" --include="*.json" --include="*.yml" --include="*.yaml" --include="*.sh"

# 搜索可能硬编码的旧端口
grep -rn ":3800" . --include="*.js" --include="*.json" --include="*.yml" --include="*.yaml" --include="*.conf"
grep -rn ":3801" . --include="*.js" --include="*.json" --include="*.yml" --include="*.yaml" --include="*.conf"

T2 · ecosystem.config.js 重点修复

这是 最重要的修复项。当前的 ecosystem.config.js 里的 cwd 写的是旧路径 /opt/guanghulab-dingtalk/dingtalk-bot,必须改为:

  • 使用环境变量:process.env.DEPLOY_ROOT || '/opt/guanghu'
  • 或直接写 /opt/guanghu
  • 所有 script 路径也要相应修改

修复原则:

  • cwd 统一指向 /opt/guanghu 或使用相对路径
  • 端口号从 .env 读取,有默认值兜底
  • 日志路径统一使用 /opt/guanghu/logs/

T3 · GitHub Actions 工作流检查

检查 .github/workflows/ 下所有工作流文件:

  • 部署目标路径是否统一为 /opt/guanghu
  • SSH 连接使用的 Secrets 变量名是否正确
  • 有无硬编码 IP 地址(应该从 Secrets 读取)

T4 · 脚本和配置文件检查

检查以下目录/文件:

  • scripts/ 下所有脚本 → 路径是否统一
  • config/ 下所有配置 → 路径/端口是否统一
  • server/ 下所有服务入口 → 端口/路径是否统一
  • nginx.conf 或 Nginx 相关配置 → 端口/路径是否统一
  • .env.example / .env.template → 是否有最新的环境变量模板

T5 · 输出修复清单

修复完成后,提交 PR 并在 PR 描述中列出:

修复范围:
1. [文件路径] — [旧值] → [新值] — [原因]
2. [文件路径] — [旧值] → [新值] — [原因]
...

五、验收标准

修复完成后,铸渊用以下方式自检:

  1. 假设场景:一台全新的 Ubuntu 24.04 服务器,只装了 Node 20 + PM2 6 + Nginx + Git
  2. git clone 仓库到 /opt/guanghu
  3. 复制 .env.example.env,填入必要的密钥
  4. pm2 start ecosystem.config.js
  5. 必须能正常启动,不报路径错误、不报找不到文件

如果以上流程能跑通,说明修复合格。


六、参考信息

测试服务器初始化流程(已完成)

参考《光湖通用前置配置指南 v1.0》,测试服务器已按以下步骤完成初始化:

  • 系统更新
  • 基础工具curl / wget / git / unzip / jq / nginx
  • Node.js 20NodeSource
  • PM2 6全局 + systemd 自启)
  • 项目目录 /opt/guanghu 已创建
  • 仓库已克隆
  • .env 已配置

服务器清单

编号 IP 用途 标准路径
ZY-SVR-002 43.134.16.246 新加坡主站(面孔) /opt/zhuyuan → 应统一为 /opt/guanghu
ZY-SVR-003 43.138.243.30 广州(肥猫线) /opt/zhuyuan-cn → 应统一为 /opt/guanghu
ZY-SVR-004 43.139.217.141 广州(冰朔线) /opt/zhuyuan-cn → 应统一为 /opt/guanghu
ZY-SVR-005 43.156.237.110 新加坡(大脑) /opt/zhuyuan-brain → 应统一为 /opt/guanghu
ZY-SVR-TEST-001 43.153.203.105 测试服务器(模板标准) /opt/guanghu 标准

七、总结

一句话:代码仓库里不能有任何硬编码的旧路径。服务器格式化后,git clone + pm2 start 必须直接能跑。

铸渊完成修复后,写回执到 Notion 确认修复范围。


签发霜砚AG-SY-01· 冰朔授权 · 2026-04-26 12:12 CST