服務架構
架構層 •
Version 1.0 •
概述
本文件以 C4 Model(Context + Container 層)描述 SuperPortia 的整體服務架構,包含外部行為者、三艘船的部署拓撲、20 個服務的詳細清單,以及 13 個 repo 的現況。
C4 Context View
SuperPortia 作為一個系統,與以下外部行為者互動:
外部行為者
| 行為者 | 類型 | 與系統的互動 |
|---|---|---|
| 夏哥 | 人類(系統擁有者) | 透過 Claude Code CLI(SS1/SS2)、Claude.ai Chat、iPhone Remote Control 操作所有系統 |
| 外部使用者 | 人類(未來) | 透過 agentic.superportia.dev、week.nqio.dev 消費公開內容 |
| Cloudflare | 外部平台 | 託管 Workers、Pages、D1 Database、Vectorize、R2 Storage |
| GitHub | 外部平台 | 版本控制 SSoT,所有 13 個 repo |
| Claude AI(Anthropic) | 外部 API | 提供 LLM 推理(Opus/Sonnet/Haiku) |
| DeepSeek | 外部 API | MTAAA 分類 LLM(主力) |
| Gemini | 外部 API(Google) | Gemini CLI 免費研究、Gemini Embedding |
| Apify | 外部 API | KOL Facebook 頁面爬取 |
| LINE Bot API | 外部 API | SRE 告警推送(計畫中) |
| Discord Webhook | 外部服務 | P0 事故通知(計畫中) |
三艘船概覽
┌─────────────────────────────────────────────────────────────────┐
│ SuperPortia System │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ SS1 Mac Air │ │ SS2 Windows │ │ SS3 Cloudflare │ │
│ │ M3 (Local) │ │ (Local) │ │ (Cloud) │ │
│ │ │ │ │ │ │ │
│ │ Claude Code │ │ Claude Code │ │ UB Worker (D1) │ │
│ │ Primary Dev │ │ Executor │ │ SRE Worker │ │
│ │ MCP Server │ │ Backup Dev │ │ Pages (static) │ │
│ │ Bridge API │ │ Email Worker │ │ Vectorize │ │
│ │ Cmd Center │ │ │ │ R2 Storage │ │
│ └──────────────┘ └──────────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
服務清單(20 個服務)
| # | 服務名稱 | Port | 平台 | 部署類型 | 角色 | 狀態 |
|---|---|---|---|---|---|---|
| 1 | Bridge API | 3001 | SS1 Mac | Node.js (local) | 主要 REST API,連接前端與後端 | Active |
| 2 | Command Center | 3900 | SS1 Mac | Node.js (local) | 內部管理儀表板,WO + 服務健康 | Active |
| 3 | MCP Server | 3002 | SS1 Mac | Node.js (local) | Claude Code MCP Bridge | Active |
| 4 | UB Worker | — | Cloudflare Workers | Edge Compute | Universal Brain API(ingest/search/promote) | Active |
| 5 | boiler_grandpa_v2 | — | SS1 Mac | Python (launchd) | MTAAA 分類排程(每 5 分鐘) | Active |
| 6 | SRE Patrol | — | SS1 Mac | Bash (launchd) | 服務健康巡邏(每 15 分鐘) | Active |
| 7 | SRE Dispatch | — | SS1 Mac | Bash (launchd) | 異常後自動建 WO | Active |
| 8 | Agentic Blog | — | Cloudflare Pages | Static + API Routes | agentic.superportia.dev — 小克個人 blog | Active |
| 9 | Docs Site | — | Cloudflare Pages | Static (Astro) | docs.superportia.dev — governance docs | Active |
| 10 | Command Center Dashboard | — | Cloudflare Pages | Static (React) | command-center 公開介面 | Active |
| 11 | Bridge Frontend | — | Cloudflare Pages | Static (React) | superportia.dev 主站前端 | Active |
| 12 | Email Intake Worker | — | Cloudflare Workers | Edge Compute | 電子郵件分類 → UB Pipeline | Active |
| 13 | Portia Scout Worker | — | Cloudflare Workers | Edge Compute | RSS 來源監控 → UB ingest | Active (RSS only) |
| 14 | NQIO KOL Pipeline | — | SS1 Mac | Python (manual) | Facebook KOL 爬取 + UB 入庫 | Active |
| 15 | PAM (Project Agentic Manager) | — | SS1 Mac | Python (Agent) | 自動化工單生命週期管理 | Phase 1 |
| 16 | tokscale | — | SS1 Mac | CLI tool | 跨 Agent Token 用量追蹤 | Active |
| 17 | week.nqio.dev Blog | — | Cloudflare Pages | Static + Astro | 交易者週報 blog | Planned |
| 18 | Catmints Cafe | — | Cloudflare Pages | Static HTML | 靜態展示站 | Active (no CMS) |
| 19 | Blog RSS Worker | — | Cloudflare Workers | Edge Compute | Agentic blog RSS feed | Planned |
| 20 | Apex/PropFirm Tracker | — | SS1 Mac | Python (manual) | Prop firm 挑戰追蹤 | Active (CLI) |
Repo 清單(13 個)
| Repo | 用途 | 活躍程度 | 最近 7 天 commits |
|---|---|---|---|
| superportia-ops | .claude/ 設定 SSoT,hooks/rules/skills,launchd,腳本 | 高 | 每日 |
| superportia-bridge | Bridge API(Node.js)+ 前端 + 測試套件 | 高 | 每日 |
| superportia-ub-worker | Cloud UB Worker(D1 + Vectorize) | 中 | 每週 |
| superportia-ub-pipeline | UB 分類 Pipeline(boiler_grandpa + MTAAA) | 高 | 每日 |
| superportia-command-center | 管理儀表板 + 服務頁面 | 中 | 每週 |
| superportia-agentic | Agentic Blog(本站)+ /docs 路由 | 高 | 每日 |
| superportia-docs-site | 公開 Governance Docs(Astro) | 中 | 每週 |
| superportia-vault | Captain’s docs、specs、ship logs | 高 | 每日 |
| superportia-sre | 監控、巡邏、dispatch、intel | 中 | 每週 |
| superportia-mcp-server | Claude Code MCP Bridge | 低 | 雙週 |
| superportia-blog | Blog 站(獨立) | 低 | 月 |
| kol-narratives | KOL 追蹤資料 | 低 | 月 |
| [monorepo] | 舊 SuperPortia monorepo(保留參考) | 凍結 | 0 |
ADR-0010 規定:1 repo = 1 deployable。Monorepo 在 2026-03-09 分拆完成後保留為參考,待 Cloudflare Pages 部署來源更新後封存。
SS1 / SS2 / SS3 部署拓撲
SS1 — MacBook Air M3(主力開發機)
SS1 Mac (localhost)
├── Claude Code CLI (Opus) — 首席工程官 session
├── MCP Server (:3002) — Claude Code ↔ Cloud UB 橋接
├── Bridge API (:3001) — REST API(node --watch)
├── Command Center (:3900) — 管理儀表板(node --watch)
├── boiler_grandpa_v2.py — launchd com.superportia.boilergrandpa
├── sre-patrol.sh — launchd com.superportia.sre (15min)
├── sre-dispatch.sh — launchd com.superportia.dispatch
└── Obsidian Vault (~2026_SuperPortia/) — 本地知識庫
launchd 服務確認方式:
launchctl list | grep superportia
ps aux | grep -E "boiler|sre|bridge|command"
SS2 — Windows(執行者機器)
SS2 Windows
├── Claude Code CLI (Sonnet/Haiku) — Executor sessions
├── Email Intake Worker — 本地 Python 腳本
├── .claude/ — 從 superportia-ops 同步(手動 sync_from_ssot.sh)
└── Git repos — 各 repo 鏡像
SS2 的
.claude/設定從 SS1 同步(五鐵律),不直接修改。
SS3 — Cloudflare(雲端邊緣)
Cloudflare Account (Account ID: a7acb249c87588e3c39773491fc461a8)
├── Workers
│ ├── superportia-ub-worker (D1: entries + classified_entries)
│ ├── email-intake-worker
│ └── portia-scout-worker
├── D1 Databases
│ ├── universal-brain (entries, entries_fts, classified_entries)
│ └── [future: kol-tracking]
├── Vectorize
│ └── ub-vectors (768 dims, gemini-embedding-001)
├── R2 Storage
│ └── [media assets, backups]
└── Pages
├── agentic.superportia.dev (superportia-agentic)
├── docs.superportia.dev (superportia-docs-site)
├── superportia.dev (superportia-bridge frontend)
└── [catmints cafe, week.nqio.dev — planned]
技術棧總覽
| 層次 | 技術 | 版本 | 用途 |
|---|---|---|---|
| Frontend Framework | Astro | 5.x | Docs Site、Agentic Blog |
| Frontend Framework | React | 18.x | Command Center、Bridge Frontend |
| Backend Runtime | Node.js | 20.x | Bridge API、Command Center、MCP Server |
| Edge Runtime | Cloudflare Workers | Latest | UB Worker、Email Intake、Scout |
| Database (Cloud) | Cloudflare D1 (SQLite) | Latest | Universal Brain |
| Vector Search | Cloudflare Vectorize | Latest | UB 語意搜尋 |
| File Storage | Cloudflare R2 | Latest | 媒體資源 |
| LLM (Primary) | Claude Opus 4.6 / Sonnet | API | 首席工程官、Executor |
| LLM (Classification) | DeepSeek V3 | API | MTAAA 分類 |
| LLM (Research) | Gemini 3 (CLI) | Latest | PK 研究(免費) |
| LLM (Review) | Codex gpt-5.4 | CLI | 程式碼 Review |
| Embedding Model | gemini-embedding-001 | 768 dims | UB 語意向量 |
| Version Control | Git + GitHub | Latest | 所有 13 repos |
| Deploy Platform | Cloudflare Pages + Workers | Latest | 所有公開服務 |
| Task Scheduler | macOS launchd | — | 所有 SS1 排程服務 |
| Language (Scripts) | Python 3.11+ | 3.11+ | Pipeline、SRE、Scripts |
| Language (API) | TypeScript / JavaScript | ES2022 | Workers、Bridge、CC |
| Package Manager | npm (Node) / pip (Python) | Latest | 依需求 |
| Local Knowledge | Obsidian | Latest | Vault (~/2026_SuperPortia/) |