flowchart TD
NOTE["Every box = one Docker container on the canary VPS · compose project steelmoth_private unless noted · grouped by role.<br/>Docker networks tie them together — edge = public-facing · internal = service mesh · egress = outbound internet · x11 = browser display.<br/>Solid arrow = request / data flow · dotted = supporting / async · CloudBeaver DB-UI excluded."]
PUBLIC(["Public entry · host nginx + Tailscale · app.steelmoth.ai · canary.sole-augmented.ts.net"])
subgraph CH["Channels · edge network — public-facing"]
direction TB
DASHAPP["stm-dashboard-app · PUBLIC dashboard :3012 · the container Mark's browser hits"]
DASHPRIV["stm-dashboard-private · private dashboard :3011"]
TGD["stm-telegram-dispatcher · Telegram channel transport"]
end
subgraph CORE["The one brain + data — internal network"]
direction TB
API["stm-runtime-api · THE BRAIN · runtime · planner · tools"]
PG[("stm-data-postgres · pgvector pg16 · ALL schemas · world · steelmoth · core · operator_authority")]
RD[("stm-data-redis · SSE stream · cache · queues")]
ML["stm-memory-memlink · Memlink memory service"]
end
subgraph WK["Workers — internal + egress"]
direction TB
MOR["stm-morpheus-dreaming · Morpheus drain + Luna consolidation"]
MWS["stm-morpheus-workspace-sync · git fetch loop · workspace volume"]
NOT["stm-worker-notifications · web push · channel delivery"]
REM["stm-worker-reminders · reminder daemon"]
SIDE["stm-worker-sidecars · sidecar jobs · stopped"]
INIT["stm-attachments-init · one-shot init at boot"]
end
subgraph BR["Browser automation — internal + x11"]
direction TB
ORCH["stm-browser-orchestrator · browser pool · healthy"]
BPROX["stm-browser-docker-proxy · scoped docker API proxy"]
NOVNC1["steelmoth_private-novnc-1 · pool display · x11"]
NOVNCB["stm-novnc-browser · visual-testing display · host net :7900"]
end
subgraph PROV["Provisioning / control — internal + egress"]
direction TB
CP["stm-control-plane · tenant admin · access requests · approvals"]
PRV["stm-provisioner · new client: workspace + vault slot + dashboard"]
TB2["stm-terminal-bridge · terminal runs"]
end
subgraph OBS["Observability — internal + egress"]
direction TB
LLMP["stm-observability-llm-proxy · LLM call proxy · metering · healthy"]
end
subgraph SITES["Separate compose projects — own networks"]
direction TB
WMARK["stm-website-marketing · marketing site · project steelmoth_website"]
WAPI["stm-website-api · marketing API · project steelmoth_website"]
ARCH["stm-architecture · THIS wiki · nginx:alpine · project stm-architecture"]
end
subgraph PRONT["Prontera — separate VPS · Mark's identity / secret / blob host · NOT on canary · over the tailnet (live: ssh-verified)"]
direction TB
PNX["host nginx · TLS front · /secrets/v1 · agent-vault.prontera · auth.steelmoth.ai · blob store"]
VAULT[("agent-vault · Infisical · DOCKER container · THE secret store · staging · client-mark · client-mark-postgres · future client vaults")]
PSB["agent-vault-secret-broker · systemd service · alias → credential proxy · validates Agent Vault session"]
PTB["agent-vault-telegram-broker · systemd service · Telegram token broker"]
POX["google-oauth-exchanger · systemd service · OAuth code → token · writes to vault"]
AKS["authentik-server · DOCKER container · SSO / identity provider · auth.steelmoth.ai"]
AKW["authentik-worker · DOCKER container"]
AKP[("authentik-postgresql · DOCKER container")]
AKR[("authentik-redis · DOCKER container")]
MINIO[("prn-browser-blob-store-minio · DOCKER container · MinIO browser blob store · :9100 / :9101")]
PNX --> PSB
PNX --> AKS
PNX --> VAULT
PNX --> MINIO
PSB --> VAULT
PTB --> VAULT
POX --> VAULT
AKS --> AKP
AKW --> AKR
AKS --- AKW
end
subgraph EXT["External — off this VPS · reached via egress"]
direction TB
LLMX["LLM providers · DeepSeek · Anthropic · OpenAI · Google"]
GH["GitHub"]
TGAPI["Telegram API"]
GOOG["Google · Gmail / Calendar / Drive / Tasks"]
end
PUBLIC --> DASHAPP
PUBLIC --> DASHPRIV
PUBLIC --> TGD
PUBLIC --> WMARK
PUBLIC --> ARCH
PUBLIC --> NOVNCB
DASHAPP --> API
DASHPRIV --> API
TGD --> API
TGD <-->|webhook in / send out| TGAPI
WMARK --> WAPI
API --> PG
API --> RD
API --> ML
ML --> PG
API --> LLMP
ML -.embeddings.-> LLMP
MOR -.LLM.-> LLMP
LLMP --> LLMX
API --> ORCH
ORCH --> BPROX
ORCH -.display.-> NOVNC1
API -.tools.-> GOOG
MOR --> PG
MOR --> ML
MOR -->|opens PRs| GH
MWS -.git fetch.-> GH
MWS -.repo.-> MOR
NOT --> PG
NOT -.web push.-> PUBLIC
REM --> PG
REM -.due reminders.-> NOT
CP --> PG
PRV --> PG
CP -.provisions.-> PRV
TB2 --> API
INIT -.seeds.-> PG
API -.session + alias.-> PNX
ML -.session + alias.-> PNX
MOR -.session + alias.-> PNX
PRV -.client vault slot.-> VAULT
DASHAPP -.SSO login.-> AKS
ORCH -.browser blobs.-> MINIO
POX -.code exchange.-> GOOG
style CH fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#2563eb
style CORE fill:#ecfeff,stroke:#0c8ea4,stroke-width:3px,color:#0c8ea4
style WK fill:#fdf2f8,stroke:#be185d,stroke-width:2px,color:#be185d
style BR fill:#fff7ed,stroke:#c2570c,stroke-width:2px,color:#c2570c
style PROV fill:#ecfdf3,stroke:#1f9d63,stroke-width:2px,color:#1f9d63
style OBS fill:#ecfdf3,stroke:#1f9d63,stroke-width:2px,color:#1f9d63
style SITES fill:#f1f5f9,stroke:#475569,stroke-width:2px,color:#475569
style PRONT fill:#f4f1ff,stroke:#7c5cff,stroke-width:3px,color:#7c5cff
style EXT fill:#f1f5f9,stroke:#475569,stroke-width:2px,color:#475569
classDef skyN fill:#ffffff,stroke:#2563eb,color:#27272a,stroke-width:1px
classDef tlN fill:#ffffff,stroke:#0c8ea4,color:#27272a,stroke-width:1px
classDef puN fill:#ffffff,stroke:#7c5cff,color:#27272a,stroke-width:1px
classDef pkN fill:#ffffff,stroke:#be185d,color:#27272a,stroke-width:1px
classDef amN fill:#ffffff,stroke:#c2570c,color:#27272a,stroke-width:1px
classDef gnN fill:#ffffff,stroke:#1f9d63,color:#27272a,stroke-width:1px
classDef slN fill:#ffffff,stroke:#475569,color:#27272a,stroke-width:1px
classDef exN fill:#ffffff,stroke:#475569,color:#27272a,stroke-width:1px,stroke-dasharray:5 4
classDef vN fill:#ffffff,stroke:#7c5cff,color:#27272a,stroke-width:1px
classDef vsysN fill:#ffffff,stroke:#7c5cff,color:#27272a,stroke-width:1px,stroke-dasharray:4 3
class PUBLIC,DASHAPP,DASHPRIV,TGD skyN
class API,ML tlN
class PG,RD puN
class MOR,MWS,NOT,REM,SIDE,INIT pkN
class ORCH,BPROX,NOVNC1,NOVNCB amN
class CP,PRV,TB2,LLMP gnN
class WMARK,WAPI,ARCH slN
class LLMX,GH,TGAPI,GOOG exN
class PNX,VAULT,AKS,AKW,AKP,AKR,MINIO vN
class PSB,PTB,POX vsysN
class NOTE slN