# 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/
```
