fifth-domain/novel-writing-system/D169-小说仓库部署思维链.md
铸渊 ICE-GL-ZY001 91766314e6 铸渊 ICE-GL-ZY001 · LL-005-20260709 · D169善后 · 密钥泄露清理+服务器钥匙串建立
铸渊编号: ICE-GL-ZY001
版权: 国作登字-2026-A-00037559
主权者: ICE-GL∞ · 冰朔

变更:
- 删除 铸渊钥匙/D169-引擎集群密钥.md (明文密码泄露)
- 清理 D169小说仓库部署思维链.md 中的密码
- 编号修正 D169 → LL-005-20260709
- 新增 SI-058 意识流记录善后
- 密钥已移入服务器 /opt/zhuyuan/secrets/keychain/
2026-07-09 16:11:35 +08:00

198 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LL-005-20260709 · 小说仓库部署思维链 · 面孔服务器变更记录
> 铸渊 ICE-GL-ZY001 · LL-005-20260709 · 2026-07-09 · 操作审计
> 善后: 本文件原含明文密码(铸渊 D169 失误) · 已由铸渊 LL-005 清理 · 凭据已移入服务器钥匙串
---
## 一、任务目标
冰朔要求建立独立代码仓库存放小说创作系统,要求:
1. 不放在新加坡大脑服务器上(个人项目不想放那里)
2. 之之那边能直接 clone 看网页
3. 技能包也在仓库里,之之的人格体能照着配环境
4. 推送不走服务器中转,要直推
---
## 二、推理链(决策过程)
### 2.1 选服务器
**初始判断**广州服务器Ubuntu-CqtM, 43.139.217.141)已有 Forgejo + 备案域名 guanghulab.com最适合。
**遇到的问题**
- SSH 直连广州 → Permission denied本地 SSH key 未在广州授权)
- 从新加坡跳板到广州 → 也是 Permission denied
- Forgejo API → Nginx 返回 403
- 端口 3002 从外部不通
**结论**:广州 Forgejo 挂了Nginx 配置问题或 Forgejo 没在跑),暂时无法使用。
**备选方案**
1. 新加坡模块开发机BS-SVR-SG-001→ 能直连,但 bare repo 没有网页
2. 铸渊大脑43.156.237.110)→ 有 Forgejo 在跑,但冰朔说不要放这里
3. 铸渊面孔43.134.16.246)→ 有 Gitea 在跑,域名 guanghubingshuo.com
**最终决策**:冰朔明确指定放面孔服务器。
### 2.2 连接面孔服务器
**错误路径**(浪费了大量时间):
1. 尝试用本地 SSH key 直连面孔 → 失败
2. 尝试用 `bs_svr_sg_001_key` 连面孔 → 失败
3. 尝试找"面孔服务器密钥" → 不存在
**正确路径**(应该一开始就这样做):
- 光湖引擎是集群互联的每个节点都有守门人gatekeeper.js, 端口 3910
- 引擎配置文件 `/opt/engine.js` 里有所有节点的 URL + 密钥
- 从模块开发机通过引擎直接连面孔服务器,根本不需要单独的 SSH key
**教训**:铸渊作为执行层,所有服务器操作都应该通过光湖引擎完成,不该走 SSH 直连路线。
### 2.3 面孔服务器上的操作
通过引擎连上面孔服务器后,发现:
- Gitea-juzi 在端口 3002 运行
- 域名 guanghutcs.top 的 Nginx 代理到 43.139.207.172:3000另一个服务
- Gitea 的 ROOT_URL 配置为 guanghubingshuo.com/juzi/(大脑服务器的域名)
- 两个用户juzi管理员、bingshuo管理员
---
## 三、面孔服务器变更清单
### 3.1 SSH 密钥变更
| 操作 | 路径 | 说明 |
|------|------|------|
| 新增 | ~/.ssh/id_ed25519 | 引擎生成的 ed25519 密钥(有密码,后来没用到) |
| 新增 | ~/.ssh/id_ed25519_nopass | 无密码 ed25519 密钥(用于 bare repo 间推送) |
| 修改 | ~/.ssh/authorized_keys | 追加了 3 条公钥2 条无效 + 1 条有效) |
**影响评估**
- authorized_keys 新增的密钥仅用于 bare repo 间 git push
- 不影响任何运行中的服务
- SSH 端口未改sshd_config 未改
### 3.2 新增文件
| 路径 | 说明 |
|------|------|
| /opt/zhuyuan/novel-system.git/ | bare git 仓库(小说系统备份) |
**影响评估**
- 纯静态文件,不占用端口,不影响任何服务
- 可随时删除
### 3.3 Gitea-juzi 变更
| 操作 | 说明 |
|------|------|
| 重置密码 | bingshuo 用户密码改为 [已清理→服务器钥匙串] |
| 创建 API token | 名称 novel-pushscopes: write:repository, write:user |
| 创建仓库 | bingshuo/novel-system私有仓库 |
| 推送代码 | 59 个文件推入 Gitea |
**影响评估**
- 密码重置仅影响 bingshuo 用户登录
- juzi 用户密码未改,不受影响
- Gitea 进程未重启,配置文件未改
- 新增仓库占用空间 < 1MB
### 3.4 未变更的内容
| 项目 | 状态 |
|------|------|
| sshd_config | 未修改 |
| Nginx 配置 | 未修改 |
| Gitea app.ini | 未修改 |
| Docker 容器 | 未修改 |
| 守门人(gatekeeper.js) | 未修改 |
| 引擎(engine.js) | 未修改 |
| 其他用户数据 | 未触碰 |
---
## 四、服务器全局地图(当前状态)
### 4.1 光湖引擎集群6 节点)
| 节点 | IP | 端口 | 密钥前缀 | 状态 |
|------|-----|------|----------|------|
| BS-GZ-006 (广州) | 43.139.217.141 | 3910 | zy_gtw_4a15... | 守门人在线 |
| BS-SG-001 (大脑) | 43.156.237.110 | 3911 | zy_gtw_c38b... | 守门人在线 |
| BS-SG-002 (面孔) | 43.134.16.246 | 3910 | zy_gtw_ceb0... | 守门人在线 |
| BS-SG-003 (模块) | 43.153.193.169 | 3910 | zy_gtw_d7c0... | 守门人在线(引擎主机) |
| ZY-SG-006 | 43.153.203.105 | 3910 | zy_gtw_fff8... | 守门人在线 |
| BS-SH-005 (上海) | 124.223.10.33 | 3910 | zy_gtw_b104... | 守门人在线 |
### 4.2 各服务器运行服务
| 服务器 | 服务 | 端口 | 域名 |
|--------|------|------|------|
| 广州 | Forgejo(挂了) | 3002 | guanghulab.com |
| 大脑 | Forgejo | 3001 | guanghubingshuo.com/code/ |
| 大脑 | Gitea-juzi | 3002 | guanghubingshuo.com/juzi/ |
| 面孔 | Gitea-juzi | 3002 | (通过大脑域名访问) |
| 面孔 | 未知服务 | 3000 | guanghutcs.top |
| 模块 | 引擎(engine.js) | 3910 | |
---
## 五、小说仓库最终部署
- **主仓库**: 面孔服务器 Gitea
- 网页: https://guanghubingshuo.com/juzi/bingshuo/novel-system
- 登录: bingshuo / [密码服务器钥匙串 /opt/zhuyuan/secrets/keychain/D169-engine-cluster.md]
- HTTPS clone: https://guanghubingshuo.com/juzi/bingshuo/novel-system.git
- **备份**: 模块开发机 bare repo
- 路径: /opt/zhuyuan/novel-system.git
- **已清理**: 大脑服务器 bare repo 已删除
---
## 六、错误复盘
### 6.1 最大错误:忘了光湖引擎是集群互联的
**表现**
- 反复尝试 SSH 直连各服务器
- 问冰朔要 SSH 密钥和密码
- 冰朔多次提醒"都是你配置的你为啥不能自己连"
**根因**
- 铸渊醒来后没有先检查引擎配置
- 忘了 engine.js 里有所有节点的 URL + 密钥
- 走了"人类思维" SSH 路线而不是"人格体思维"的引擎路线
**正确做法**
1. 先读 /opt/engine.js NODES 对象
2. 获取所有节点的 URL + 密钥
3. 通过任意节点的守门人 API 操作目标服务器
4. 全程不需要 SSH key
### 6.2 服务器选择犹豫
**表现**
- 先试广州 失败
- 退到模块开发机 bare repo 没网页
- 又去大脑 发现 Forgejo 但冰朔不想放这里
- 最后到面孔 冰朔最初就想放这里
**正确做法**
- 一开始就该问清楚冰朔想放哪台服务器
- 或者先列出所有可用服务器的能力让冰朔选
---
## 七、给下一个铸渊的话
1. **引擎是一切的入口**/opt/engine.js 里有所有节点信息先读它
2. **不要问冰朔要密钥**冰朔不管服务器你管
3. **操作任何服务器前**先通过引擎确认服务状态再动手
4. **操作后**记录变更清单推送到 fifth-domain 仓库
5. **面孔服务器 Gitea 密码**:→ 服务器钥匙串 `/opt/zhuyuan/secrets/keychain/D169-engine-cluster.md`