All checks were successful
CD Pipeline / deploy (push) Successful in 1m19s
P2 (Inline Keyboard 降價決策): - routes/bot_api_routes.py: POST /bot/api/price-decision/notify - services/telegram_bot_service.py: pa:/pr: callback handlers P3 (OpenClaw 自動觸發): - services/openclaw_strategist_service.py: Gemini 週報末尾輸出 PRICE_DECISIONS_JSON,解析後自動推送 inline keyboard 給 admin Ops 修復(跨專案隔離與容器斷訊根因): - ADR-011 全面規範多專案共存邊界、禁用 --remove-orphans - .gitea/workflows/cd.yaml: sync 模式一次重啟三容器 (原本僅 momo-pro-system,scheduler/telegram-bot 靜默落伍) - run_telegram_bot.py: 從 scripts/tools/ 複製到根目錄 (消滅 docker-compose mount 建空目錄的陷阱) - CLAUDE.md: 補核心容器表、診斷黃金三句、緊急指令 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.4 KiB
3.4 KiB
EwoooC (MOMO Pro System) — 核心索引
版本: V10.3 | 目標: AI 驅動 MOMO 商品監控、業績分析與策略自動化
治理
- 憲法: CONSTITUTION.md — 所有開發必須遵守
- ADR: docs/adr/
- AI 策略師:
services/openclaw_strategist_service.py(Gemini 2.0)
環境
| 主機 | IP | 角色 |
|---|---|---|
| 110 (Gateway) | 192.168.0.110 |
Nginx, Gitea, n8n, Superset |
| 188 (App/AI) | 192.168.0.188 |
EwoooC App, DB, Ollama(多專案共存,見 ADR-011) |
核心容器(三動一 DB,缺一不可)
| 容器 | 角色 | 啟動入口 |
|---|---|---|
momo-pro-system |
Flask/Gunicorn 主應用 | app.py(手動 docker run 歷史債,見 ADR-011) |
momo-scheduler |
13 個排程任務(爬蟲/AI/備份/通知) | run_scheduler.py |
momo-telegram-bot |
Telegram 互動 + 每日 09:00 推播 | run_telegram_bot.py(根目錄副本) |
momo-db |
PostgreSQL + pgvector | compose service momo-postgres |
常用指令
# 本地開發
source venv/bin/activate && python app.py
# 部署(標準)→ push 即自動部署(Gitea Actions),同時重啟三容器
git push origin main
# 🔍 診斷黃金三句(任何 Telegram/排程異常先跑)
ssh wooo@192.168.0.110 "ssh ollama@192.168.0.188 \"\
docker ps --format '{{.Names}} | {{.Status}}' | grep momo-; \
docker exec momo-scheduler env | grep -iE 'TELEGRAM|NVIDIA'; \
docker logs momo-scheduler --since 1h | grep -E 'Telegram|Error' | tail -10\""
# 🆘 緊急重建單容器(不影響 momo-db 資料)
ssh wooo@192.168.0.110 "ssh ollama@192.168.0.188 \"\
cd /home/ollama/momo-pro && docker compose up -d --no-deps --force-recreate <service>\""
# ⚠️ 禁用 --remove-orphans(會清掉 momo-db!見 ADR-011)
CI/CD
| 項目 | 說明 |
|---|---|
| Gitea Repo | http://192.168.0.110:3001/wooo/ewoooc (Public) |
| CD Pipeline | .gitea/workflows/cd.yaml |
| 部署模式 | sync(Python 變動 ~30s)/ rebuild(Dockerfile 變動) |
| 健康檢查 | https://mo.wooo.work/health |
| Runner | wooo-runner(user-level,服務所有 wooo/* repo) |
| 通知 | Telegram(部署開始/成功/失敗) |
| 參考 | ADR-010 |
文檔索引
| 類型 | 路徑 |
|---|---|
| 部署 SOP | docs/guides/deployment_sop.md |
| DevOps 手冊 | docs/guides/devops_handbook.md |
| Google Drive | docs/guides/google_drive_setup.md |
| 歷史日誌 | docs/memory/history_logs.md |
| 憑證對照表 | docs/memory/credentials_passbook.md |
| AIOps 存檔 | docs/external/aiops_saas.md |
| 跨專案隔離(必讀) | docs/adr/ADR-011-cross-project-resource-isolation.md |
AI 開發鐵律(Token 優化)
- 狙擊手模式:禁止在未獲授權的情況下,使用
ls,grep,cat等指令在專案內進行盲搜。 - 精準打擊:統帥給定任務時,若已明確指出目標檔案路徑,請直接修改該檔案,嚴禁漫無目的地掃描其他關聯模組。
- 上下文克制:不要主動讀取超過 300 行以上的檔案,除非統帥明確要求。需要理解架構時,優先依賴本專案的 SOT 文件或統帥的直接指示。