Files
ewoooc/docs/adr/ADR-008-actual-runtime-on-188.md

5.2 KiB
Raw Blame History

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-systemmomo-db(pgvector/pg14)、momo-scheduleropenclaw
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. 本機修改 → scpollama@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_systemmomo-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 :5001sudo 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)
  • 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/