113 lines
5.2 KiB
Markdown
113 lines
5.2 KiB
Markdown
# ADR-008:正式運行環境確認 — 188 Docker Compose(非 110 K3s)
|
||
|
||
- **Status**: Accepted
|
||
- **Date**: 2026-04-18
|
||
- **Decision Maker**: 統帥
|
||
- **Author**: Claude
|
||
|
||
## Context
|
||
|
||
2026-04-18 Claude 實地 SSH 盤點主機現況,發現先前多版 CLAUDE.md / ADR / 文件描述與真實運行環境嚴重不符:
|
||
|
||
**文件宣稱**:
|
||
- EwoooC(MOMO Pro)跑在 `wooo@192.168.0.110` K3s/K8s 叢集
|
||
- 專案路徑 `/home/wooo/momo_pro_system/`
|
||
- 容器 port 5001
|
||
- 部署走 GitLab CI/CD → kubectl rollout restart
|
||
|
||
**實地觀察**:
|
||
- `192.168.0.110` 上完全沒有 momo/ewoooc/flask 容器在跑
|
||
- `/home/wooo/momo_pro_system/` 自 2026-02-15 起只剩 `docker/` + `venv/`,非 git repo
|
||
- 110 承載的是: Harbor(完整堆疊)、Sentry self-hosted(30+ 容器)、SigNoz、Gitea、Langfuse、GitLab 域名反向代理(domain 存在但後端已撤)、VM Nginx、周邊 Exporter
|
||
- **EwoooC 實際運行地**: `ollama@192.168.0.188:~/momo-pro/`
|
||
- 部署方式: **純 Docker Compose**,無 K3s/K8s,檔案用 volume mount 直掛進 container
|
||
|
||
## Decision
|
||
|
||
**認定事實並凍結現況描述**:
|
||
|
||
| 項目 | 正式值 |
|
||
|---|---|
|
||
| 主要運行主機 | `ollama@192.168.0.188` |
|
||
| 專案路徑 | `/home/ollama/momo-pro/` |
|
||
| 部署工具 | Docker Compose(`docker-compose.yml` V12.0) |
|
||
| 主要容器 | `momo-pro-system`、`momo-db`(pgvector/pg14)、`momo-scheduler`、`openclaw` |
|
||
| Container Port | `127.0.0.1:5003:80`(gunicorn 4 workers on :80) |
|
||
| 資料庫 | **pgvector/pgvector:pg14**(支援 AI 向量) |
|
||
| Git 版控 | **非 git repo**,用 volume mount + scp 管理 |
|
||
| SSH 進入路徑 | **必經 110 跳板**(ollama@188 只信任 110 的 SSH key) |
|
||
| 輔助主機 110 | Harbor + Sentry + SigNoz + Gitea + Nginx 反代 + 周邊 Exporter |
|
||
|
||
**部署更新流程(官方唯一路徑)**:
|
||
1. 本機修改 → `scp` 到 `ollama@192.168.0.188:~/momo-pro/<path>`(透過 110 跳板)
|
||
2. Python 檔案(app.py/services/routes/templates/config.py)→ volume mount **直接生效**,只需 `docker restart momo-pro-system`
|
||
3. 若需新 Python 套件 → `docker compose build momo-app && docker compose up -d momo-app`
|
||
4. 資料庫 migration → 進入 `momo-db` 執行 SQL
|
||
|
||
**Volume mount 清單(來自容器 inspect)**:
|
||
```
|
||
/home/ollama/momo-pro/app.py -> /app/app.py (ro)
|
||
/home/ollama/momo-pro/scheduler.py -> /app/scheduler.py (ro)
|
||
/home/ollama/momo-pro/config.py -> /app/config.py (ro)
|
||
/home/ollama/momo-pro/auth.py -> /app/auth.py (ro)
|
||
/home/ollama/momo-pro/config/ -> /app/config/ (rw)
|
||
/home/ollama/momo-pro/database/ -> /app/database/ (ro)
|
||
/home/ollama/momo-pro/templates/ -> /app/templates/ (ro)
|
||
/home/ollama/momo-pro/services/ -> /app/services/ (ro)
|
||
/home/ollama/momo-pro/routes/ -> /app/routes/ (ro)
|
||
/home/ollama/momo-pro/data/ -> /app/data/ (rw)
|
||
/home/ollama/momo-pro/logs/ -> /app/logs/ (rw)
|
||
/home/ollama/momo-pro/backups/ -> /app/backups/ (rw)
|
||
```
|
||
|
||
**`docs/` 目錄未掛載** → ADR / CLAUDE.md 為人工查閱用,不影響 runtime。
|
||
|
||
## Alternatives Considered
|
||
|
||
| 方案 | 拒絕原因 |
|
||
|---|---|
|
||
| 假裝文件正確,讓實況符合文件(把 app 搬回 110 K3s) | 110 已超載(Load 14.5),且 188 有 GPU 鄰近優勢 |
|
||
| 保留雙份描述(K3s + Docker) | 造成未來 Claude/統帥持續誤判,違反鐵律一 |
|
||
| 只修 CLAUDE.md 不建 ADR | 違反 ADR 鐵律,未來無決策紀錄可查 |
|
||
|
||
## Consequences
|
||
|
||
### 須連動更新(已於本次 Session 處理)
|
||
- `CLAUDE.md` — 所有 K3s/kubectl/PVC 指令改寫為 Docker Compose
|
||
- `CLAUDE.md` — 專案路徑 `momo_pro_system` → `momo-pro`,主機 110 → 188
|
||
- `CLAUDE.md` — 承認 Harbor / Sentry / SigNoz / Gitea 在 110 仍運行
|
||
- `docs/memory/credentials_passbook.md` — 明確劃分 110 / 188 角色
|
||
- `docs/memory/README.md` — 索引指向本 ADR
|
||
|
||
### 須延後處理(記入 tech debt)
|
||
- 110 上 VM Nginx `mo.wooo.work → 127.0.0.1:5001` 的**實際轉發機制未證實**(110 無明顯 5001 listener,188 的 5001 是 docker-registry,兩者不相通)。需要統帥於下次進入 110 時跑 `sudo ss -tlnp | grep :5001` 或 `sudo fuser 5001/tcp` 確認。
|
||
- 是否需把 EwoooC 專案轉為 git repo(目前 188 的 `/home/ollama/momo-pro/` 不是 git 管理,升級有版本追溯風險)
|
||
- 110 超載問題(Load 14.5,3 人登入,遠高於建議值)→ 拆 Sentry / SigNoz / Harbor 的可行性
|
||
|
||
### 廢止(明確不再做)
|
||
- ❌ `kubectl rollout restart` 類指令
|
||
- ❌ `git push gitlab main` 類部署(GitLab 已撤)
|
||
- ❌ K3s PVC / StatefulSet 配置
|
||
- ❌ `momo_pro_system` 路徑的一切引用(改為 `momo-pro`)
|
||
|
||
## Related ADRs
|
||
|
||
- ADR-006 — 專案正名 EwoooC(延伸:Scope 更明確為 Docker-on-188)
|
||
- ADR-007 — AI 學習雙寫(pgvector 在 188 的 `momo-db` 實現)
|
||
|
||
## Verification (2026-04-18 SSH 快照)
|
||
|
||
```
|
||
HOST 188 (ollama@192.168.0.188)
|
||
Load avg: 5.58
|
||
Docker: momo-pro-system, momo-db (pgvector/pg14), momo-scheduler, openclaw, n8n, ollama, open-webui, ...
|
||
Path: /home/ollama/momo-pro/
|
||
docker-compose.yml: V12.0
|
||
|
||
HOST 110 (wooo@192.168.0.110)
|
||
Load avg: 14.5 (超載)
|
||
Docker: Harbor x11, Sentry x30+, SigNoz, Gitea, Langfuse, ...
|
||
NO momo/ewoooc containers
|
||
/home/wooo/momo_pro_system/ 只剩 docker/ + venv/
|
||
```
|