Skip to content

Architecture Diagram

Note on runtime labels: All remote agents now run on agent-runner — Pi-E/Volt-E under systemd, iBuild-E/iClaw-E under launchd — except Review-E, which runs in the GCP k3s cluster (rig-agent-runtime). The OpenClaw runtime was retired 2026-05-20. Some ASCII labels below may still read "OpenClaw/Docker" or "Xcode Cloud" — those are illustrative; see agents.md for authoritative current runtime status. Host topology, Tailscale IPs, and Cloudflare routing remain accurate.

Full Topology

                            ┌─────────────────────────────────────┐
                            │           CLOUDFLARE                │
                            │  Domains: dashecorp.com,            │
                            │    invotek.no, stigjohnny.no,       │
                            │    nutrie.app, cutiefeedback.com    │
                            │  Workers: 32 (1 Terraform-managed:  │
                            │    rig-router; rest via wrangler/API)│
                            │  D1: deadline-tracker               │
                            │  KV: INFRA_MONITOR                  │
                            └──────────────┬──────────────────────┘
                            ┌──────────────┴──────────────────────┐
                            │           GITHUB                    │
                            │  Stig-Johnny (67 repos)             │
                            │  cuti-e (5 repos)                   │
                            │  dashecorp (rig + platform repos)   │
                            │  5 GitHub Apps                      │
                            │  Copilot Code Review                │
                            └──────────────┬──────────────────────┘
                    ┌──────────────────────┼──────────────────────┐
                    │                      │                      │
         ┌──────────────────┐   ┌──────────────────┐   ┌──────────────────┐
         │  DISCORD SERVER  │   │   REVENUECAT     │   │  APP STORE       │
         │  #tasks, #admin  │   │  proj61d576be    │   │  CONNECT         │
         │  #pi-e, #volt-e  │   │  Nutri-E subs    │   │  7 apps          │
         │  #review-e       │   │  Reward-E subs   │   │  GitHub Actions  │
         └────────┬─────────┘   └──────────────────┘   └──────────────────┘
    ══════════════╪═══════════════════════════════════════════════
                  │         TAILSCALE MESH (100.x.x.x)
    ══════════════╪═══════════════════════════════════════════════
    ┌─────────────┴───────────────────────────────────────────────────────┐
    │                                                                     │
    │                    OSLO (Home Network)                              │
    │                                                                     │
    │  ┌─────────────────────────────┐   ┌──────────────────────────┐     │
    │  │  MacBook Air M4 24GB        │   │  Dell Server (legacy)    │     │
    │  │  100.126.195.52             │   │  100.95.212.93           │     │
    │  │                             │   │  Legacy / scaled down    │     │
    │  │  Claude Code Workspaces:    │   │  (Dashecorp → GCP)       │     │
    │  │  ├── claude-3 (Codi-E/orch) │   └──────────────────────────┘     │
    │  │  ├── claude-4 (executor)    │                                    │
    │  │  ├── claude-5 (executor)    │                                    │
    │  │  └── claude-6 (executor)    │                                    │
    │  │                             │                                    │
    │  │  (dev machine + Claude Code │                                    │
    │  │  orchestrator host; no CI   │   ┌──────────────────────────┐     │
    │  │  runner. iOS SDK CI runs    │   │  Raspberry Pi 4-03 8GB   │     │
    │  │  on GitHub-hosted macos-26  │   │  100.107.48.17           │     │
    │  │  now, not self-hosted)      │   │  Pi-E (agent-runner)     │     │
    │  │                             │   │  Sonnet 4.6              │     │
    │  │  LaunchAgents:              │   └──────────────────────────┘     │
    │  │  ├── OAuth token push       │                                    │
    │  │  └── GitHub App refresh     │   ┌──────────────────────────┐     │
    │  └─────────────────────────────┘   │  Raspberry Pi 4-02       │     │
    │                                    │  100.77.12.75            │     │
    │  ┌─────────────────────────────┐   │  Review-E (agent-runner) │     │
    │  │  Mac Mini M4                │   │  Sonnet 4.6              │     │
    │  │  100.92.170.124 (claude)    │   └──────────────────────────┘     │
    │  │  iBuild-E + iClaw-E         │                                    │
    │  │  (Claude Code)              │                                    │
    │  │  (no self-hosted CI runner  │                                    │
    │  │  — iOS SDK CI is GitHub-    │                                    │
    │  │  hosted: macos-26)          │                                    │
    │  │  pf firewall + Tailscale    │   ┌──────────────────────────┐     │
    │  │  ACL tag:sandbox            │   │  Raspberry Pi 4-01       │     │
    │  └─────────────────────────────┘   │  100.73.159.126          │     │
    │                                    │  Tailscale exit node     │     │
    │  ┌─────────────────────────────┐   └──────────────────────────┘     │
    │  │  Synology DS412+            │                                    │
    │  │  100.95.36.122              │                                    │
    │  │  NAS / Storage              │                                    │
    │  └─────────────────────────────┘                                    │
    └─────────────────────────────────────────────────────────────────────┘

    ┌─────────────────────────────────────────────────────────────────────┐
    │                    GCP (europe-north1-b, Finland)                   │
    │                                                                     │
    │  ┌─────────────────────────────┐   ┌─────────────────────────┐     │
    │  │  invotek-k3s (on-demand)    │   │  invotek-k3s-worker-1   │     │
    │  │  e2-standard-2, ctrl plane  │   │  e2-medium, SPOT        │     │
    │  │                             │   └─────────────────────────┘     │
    │  │  k3s Cluster:               │                                    │
    │  │  ├── FluxCD (GitOps)        │   ┌─────────────────────────┐     │
    │  │  ├── rig-conductor          │   │  invotek-k3s-worker-2   │     │
    │  │  ├── rig-planner             │   │  e2-medium, SPOT        │     │
    │  │  ├── dev-e + review-e pods   │   └─────────────────────────┘     │
    │  │  ├── Metabase               │                                    │
    │  │  └── SOPS (GCP KMS)         │   OpenTofu: dashecorp/infra       │
    │  │                             │   GitOps: dashecorp/rig-gitops     │
    │  │  (ARC k3s + ATL-E + Book-E   │   Cost: ~$44/month                │
    │  │   retired 2026-05-20)        │                                    │
    │  └─────────────────────────────┘                                    │
    └─────────────────────────────────────────────────────────────────────┘

    ┌─────────────────────────────────────────────────────────────────────┐
    │                    BOSTON (Hostinger DC)                             │
    │                                                                     │
    │  ┌─────────────────────────────┐                                    │
    │  │  VPS srv1099021             │                                    │
    │  │  100.111.142.118            │                                    │
    │  │  Volt-E (agent-runner)    │                                    │
    │  │  Sonnet 4.6                 │                                    │
    │  │  Host networking + iptables │                                    │
    │  └─────────────────────────────┘                                    │
    └─────────────────────────────────────────────────────────────────────┘

Agent Communication Flow

    User (Stig-Johnny)
    Claude-3 (Orchestrator)
         ├──► GitHub Issues (creates tasks)
         │         │
         │         ├──► Claude-4/5/6 (pick up issues, local)
         │         ├──► Pi-E (picks up via Discord, remote)
         │         └──► Volt-E (picks up via Discord, remote)
         ├──► Discord #tasks (delegates, monitors)
         │         │
         │         └──► All agents read #tasks
         └──► Workspace Messages (~/.claude/workspace-msg.sh)
                   └──► Claude-4/5/6 (local only)


    Any Agent creates PR
    request-review.yml ──► Discord #tasks thread
         │                        │
         ▼                        ▼
    CI (self-hosted) +     Review-E (picks up)
    Copilot (GitHub)              │
         │                        ▼
         ▼                 Approves/requests changes
    auto-merge.yml                │
         │                        ▼
         ▼                 Discord thread updated
    Squash merge to main
    release-please.yml ──► GitHub Release ──► Discord

MCP Server Connections

    Claude Code (any workspace)
         ├── claude-memory ──► SQLite (local)
         ├── appstoreconnect ──► Apple ASC API
         ├── github ──► GitHub API
         ├── cloudflare ──► Cloudflare API
         ├── bitwarden ──► Bitwarden EU vault
         ├── playwright ──► Chromium (local)
         ├── discord ──► Discord API
         ├── revenuecat ──► RevenueCat API (cloud)
         ├── cutie-mcp ──► Cuti-E Workers
         ├── infra-health ──► GitHub + runners
         ├── deadline-tracker ──► D1 database
         ├── submission-checklist ──► local store
         ├── context-layer ──► local index
         ├── pushbullet-sms ──► Pushbullet API
         ├── slack-notifications ──► Slack API
         ├── telegram-notifications ──► Telegram API
         ├── totp ──► local TOTP secrets
         └── context7 ──► Context7 API