Some checks failed
CD Pipeline / deploy (push) Failing after 3m24s
架構(Exception → Incident → PlayBook → Heal → KM → Telegram): 新增元件: - database/autoheal_models.py: Incident/Playbook/HealLog 三張表 + 7 條種子 PlayBook - migrations/013_autoheal.sql: 建表 DDL + 種子資料(冪等 INSERT) - services/auto_heal_service.py: 核心引擎 7 步閉環 - _classify_error: 8 類錯誤自動分類 (DNS_FAIL/DB_UNREACHABLE/OOM/...) - _match_playbook: error_type + keyword + 冷卻 + max_retries 保護 - _execute_playbook: DOCKER_RESTART/SSH_CMD/ALERT_ONLY/WAIT_RETRY - _sink_to_km: 修復知識寫入 ai_insights (auto_heal_playbook) - SSH 白名單:僅允許 docker restart / compose restart / docker start 修改元件: - database/manager.py: _init_autoheal_tables() 啟動時建表+種子 PlayBook - scheduler.py: 3 個核心任務植入 handle_exception (run_auto_import_task / run_icaim_analysis_task / run_weekly_strategy_task) - requirements.txt: paramiko(SSH 跳板;不可用時降級 subprocess+CLI ssh) 安全設計: CMD 白名單 + cooldown + max_retries escalation + DB 冪等 migration Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.5 KiB
3.5 KiB
EwoooC (MOMO Pro System) — 核心索引
版本: V10.4 | 目標: AI 驅動 MOMO 商品監控、業績分析、策略自動化與 AIOps 自愈
治理
- 憲法: 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 |
| AIOps 自動修復(ADR-013) | docs/adr/ADR-013-aiops-autoheal.md |
AI 開發鐵律(Token 優化)
- 狙擊手模式:禁止在未獲授權的情況下,使用
ls,grep,cat等指令在專案內進行盲搜。 - 精準打擊:統帥給定任務時,若已明確指出目標檔案路徑,請直接修改該檔案,嚴禁漫無目的地掃描其他關聯模組。
- 上下文克制:不要主動讀取超過 300 行以上的檔案,除非統帥明確要求。需要理解架構時,優先依賴本專案的 SOT 文件或統帥的直接指示。