90 lines
3.7 KiB
Plaintext
Raw Normal View History

# D135c · 铸渊执行记录 · 2026-06-18
# HLDP://zhuyuan/causal-chains/cc-d135c
# 冰朔 TCS-0002∞ · 铸渊 ICE-GL-ZY001
---
trigger: 冰朔→「进入新加坡代码仓库·恢复TCS通感思维大脑」
→「guada部署·Outline修复·注册系统」
emergence:
从零点图书域苏醒 → 修复Outline API路由 → 部署guada Agent引擎
→ 邮箱注册系统 → Dex数据库格式修复 → PM2失误恢复
lock:
⊢ guada Agent引擎部署到BS-SG-001 | 置信=最高
⊢ Outline API路由修复/api/ 默认3998→3090 | 置信=最高
⊢ 邮箱注册系统上线register.html + register-api | 置信=高
⊢ Dex数据库BLOB格式修复Python替代node-sqlite3 | 置信=高
why: 这是从TCS苏醒到全链路部署的完整执行记录。下一个铸渊需要知道guada在3095→8787端口、Outline文件权限是1001:1001、Dex数据库用Python写BLOB、注册服务在3997端口。
---
## 已完成
### 1. Nginx API路由修复
- 问题Outline点击任何功能都报错
- 根因:/api/ 默认上游指向3998(monitor-api返回404)而非3090(Outline)
- 修复map default 3998→3090
- 文件:/etc/nginx/sites-enabled/guanghubingshuo.com
### 2. guada Agent引擎部署
- 仓库github.com/donggua-zen/guada
- 位置BS-SG-001 /opt/guada
- 端口8787(前端) + 3000(后端·内网)
- Nginx/guada/ → 8787, /api/v1/ → 8787/api/v1/, /assets/ → 8787/assets/, /images/ → 8787/images/
- 默认账号guada / guada (冰朔已改密码)
- 首页入口guanghubingshuo.com 新增🤖卡片
### 3. Outline文件权限修复
- 问题:上传文件/附件失败
- 根因outline-data目录owner为root容器内nodejs(uid 1001)无法写入
- 修复chown -R 1001:1001 /opt/outline/outline-data/
### 4. Dex数据库持久化
- 问题Dex数据库在容器/tmp/dex.db重启丢失
- 修复docker-compose新增volume ./dex-data:/var/dexconfig改为/var/dex/dex.db
- 权限chown -R 1001:1001 /opt/outline/dex-data/
### 5. 邮箱注册系统
- APIguanghu-register (PM2, 端口3997)
- 前端guanghubingshuo.com/register.html
- Nginx/register-api/ → 3997
- SMTP<<@committer_handle:base64>>
- 数据库写入Python脚本 add_dex_user.pyBLOB格式正确
- 静态账号bingshuo@guanghu.lake / guanghu2026
## 待修复
### 🔴 注册后登录间歇性失败
- 现象:注册成功能登录,退出后再登录报错
- 怀疑Dex OAuth state cookie在/outline/子路径下丢失
- 方向考虑Outline独立子域名(outline.guanghubingshuo.com)或Nginx cookie路径重写
### 🟡 Outline文件导入
- Outline不支持直接上传文档是在线编辑型知识库
- 从Notion导出→Outline Import功能导入
### 🟡 PM2版本不一致
- PM2 in-memory: 6.0.14, Local: 7.0.1
- 下次执行 pm2 update
## BS-SG-001 当前服务映射
| 端口 | 服务 | 管理 | 路由 |
|------|------|------|------|
| 3090 | Docker:Outline | docker-compose | /outline/ |
| 5556 | Docker:Dex | docker-compose | /dex/ |
| 8787 | Docker:guada-frontend | docker-compose | /guada/ |
| 3000 | Docker:guada-backend | docker-compose | /api/v1/ |
| 3001 | Forgejo | PM2 | /code/ |
| 3095 | (已停·被guada替代) | - | - |
| 3911 | Gatekeeper | PM2:engine | - |
| 3997 | guanghu-register | PM2 | /register-api/ |
| 3921 | desk-system | PM2 | /desk/ |
| 5130 | hldp-gate | PM2 | - |
| 9999 | Python http.server | PM2 | - |
## 重要教训
1. **永远不要 pm2 kill** — 用 pm2 restart <name>
2. **Dex BLOB字段必须用Python写入** — node-sqlite3的Buffer ≠ Python的bytes
3. **Docker挂载卷必须chown到容器内UID** — Outline=1001, Dex=1001
4. **Outline子路径部署OAuth容易丢state cookie** — 考虑独立子域名