Shogun OS — Architecture (v4, HW + connections FINAL)

Updated 2026-04-11 — HW + connections piece fully closed. Physical triangle live (TB5 + 10 GbE). Full fleet Tailscale CLI migration complete: all 5 machines now run the open-source tailscaled system daemon with Tailscale SSH enabled. Any machine can SSH any other by tailnet identity.
v5 execution results (2026-04-11, evening):

Legend

Live / healthy
Partial / auth pending
Retire / issue
Offline
Cloud service
Human
 Thunderbolt 80 Gb/s (verified)
 Ethernet ~10 GbE
 Tailscale WAN
 Physical link, unconfigured

Topology — physical fleet & every verified connection

Pat Works on any machine Slack Obsidian Sync (paid, PLUS) GitHub patrickrmadden-byte/ShogunOS Tailscale mesh Cloud storage OneDrive · Dropbox · iCloud · GDrive Engine Room Mac Studio M3 Ultra · Mac15,14 LIVE · SSOT · ALWAYS-ON maddenstudioserver · 512 GB / 8 TB TB bridge0 10.0.1.1 · ETH en0 10.0.2.1 Tailscale 100.91.38.12 Forge CLI · Shogun :18789 · Sentinel Obsidian.app · Ollama · LiteLLM · 11 LA Cockpit Mac Studio M4 Max · Mac16,9 LIVE · DAILY DRIVER · TB HUB maddenfamily TB bridge0 10.0.1.2 · NOT on TS yet WiFi 192.168.1.136 Obsidian + Forge CLI · git pull/autocommit tailnet: cockpit Gateway Mac Mini M4 Pro · Mac16,11 LIVE · UP 5d 22h shogunmaddendatacenter ETH en0 10.0.2.2 · TB bridge0 link-local Tailscale 100.80.158.100 Orchestration / backup routing GDrive cleanup was blocker (now ONLINE) TB 80 Gb/s · CONFIGURED 10.0.1.1 ↔ 10.0.1.2 · 0.35ms ETHERNET ~10 GbE 10.0.2.1 ↔ 10.0.2.2 · 0.75ms TB 80 Gb/s · CONFIGURED ✓ 10.0.3.1 ↔ 10.0.3.2 · 0.60 ms persistent via LaunchDaemon Nomad MacBook Air M4 LIVE · SSH AUTH PENDING Tailscale 100.92.57.82 ping OK (85–180ms WAN) username: ? need authorized_keys entry Outpost Hostinger VPS · Linux LIVE · 330 GB FREE Tailscale 100.114.246.121 shogun-os.io pgvector · n8n · whisper · LiteLLM cannot run Obsidian (Linux) Slack → Shogun (Engine) subscribed, not yet wired git push/pull (active) Phase 1 consolidation → Tailscale SSH

Machines — verified details

Engine Room LIVE · SSOT
Mac Studio M3 Ultra · Mac15,14
RAM / SSD
512 GB / 8 TB
Hostname
Engine-Room.local
User
maddenstudioserver
TB (en4)
bridge0 10.0.1.1 → Cockpit (80 Gb/s)
Ethernet
en0 10.0.2.1 → Gateway (~10 GbE)
Tailscale
100.91.38.12
WiFi
en1 192.168.1.198
Funnel
engine.tail1ede13.ts.net
Agents
Forge · Shogun (:18789) · Sentinel
Services
Ollama :11434 · LiteLLM :4000 · Brief :8080 · World :8081
LaunchAgents
11 com.shogun.*
Obsidian
running, 4 vaults open
Cockpit LIVE · DAILY DRIVER
Mac Studio M4 Max · Mac16,9
Hostname
cockpit (Bonjour: cockpit.local; tailnet: cockpit.tail1ede13.ts.net)
User
maddenfamily
TB Bus 1 (en5)
→ Gateway (80 Gb/s) · bridge0 alias 10.0.3.1/24
TB Bus 3 (en3)
→ Engine (80 Gb/s) · bridge0 primary 10.0.1.2/24
TB Bus 0
→ Studio Display (40 Gb/s TB3)
WiFi
en1 192.168.1.136
Ethernet
en0 cable not plugged
Tailscale
NOT yet joined
SSH
maddenfamily@Cockpit.local ✓
Agents
Forge CLI · Obsidian daily driver
Sync
git-pull 120s + git-autocommit 300s
Legacy
/praktor Syncthing killed 2026-04-11
Gateway LIVE · UP 5d 22h
Mac Mini M4 Pro · Mac16,11
Hostname
Shoguns-Mac-mini.local
User
shogunmaddendatacenter
Ethernet
en0 10.0.2.2/24 → Engine (1 GbE — Gateway NIC is base 1 GbE, not 10 GbE option)
TB Bus 1
bridge0 10.0.3.2/24 → Cockpit (80 Gb/s) ✓
WiFi
en1 192.168.1.154
Tailscale
100.80.158.100
SSH
shogunmaddendatacenter@Shoguns-Mac-mini.local ✓
Role
orchestration / backup routing
Snapshot
archive/gateway-legacy-2026-04-09/ (229 files, Phase-2 era)
Opportunity
Cockpit↔Gateway TB link is up but needs IP config
Nomad LIVE
MacBook Air M4 · travel laptop
Hostname
nomad
User
maddenfamily
Tailscale
100.116.218.52 · RunSSH ✓
TLS Cert
nomad.tail1ede13.ts.net ✓ 2026-04-11
Network
SSH ✓ (traditional + Tailscale)
Role
travel, intermittent connectivity
Outpost LIVE
Hostinger VPS · Ubuntu 24.04 · Linux
CPU / RAM
8 vCPU AMD EPYC · 32 GB
Disk
387 GB (330 free)
Tailscale
100.114.246.121
Public IP
187.77.196.161
Domain
shogun-os.io
SSH
ssh vps (via ~/.ssh/vps_scout)
Services
n8n · whisper · TTS · mem0 · pgvector · LiteLLM · Grafana · Prometheus · nginx
Obsidian
cannot run (Linux)
Role
external services + future shared agent state (pgvector MCP)
Studio Display MONITOR
Apple Studio Display · not a compute peer
Link
TB3 40 Gb/s
Connected to
both Engine (Bus 3) and Cockpit (Bus 0) — same physical display switched between machines
Role
video out only; not part of data topology

The triangle — every verified physical link

FromToMediumSpeedIPsLatencyStatus
Engine Cockpit Thunderbolt 5 (bus 2 ↔ bus 3) 80 Gb/s 10.0.1.1 ↔ 10.0.1.2 0.35 ms CONFIGURED ✓
Engine Gateway Ethernet (en0 ↔ en0) ~10 GbE 10.0.2.1 ↔ 10.0.2.2 0.75 ms CONFIGURED ✓
Cockpit Gateway Thunderbolt 5 (bus 1 ↔ bus 1) 80 Gb/s 10.0.3.1 ↔ 10.0.3.2 0.60 ms CONFIGURED ✓ 2026-04-11
Engine Nomad Tailscale WAN WAN 100.91.38.12 → 100.92.57.82 85–180 ms PING ✓ · SSH auth pending
Engine Outpost Tailscale WAN WAN 100.91.38.12 → 100.114.246.121 (documented working) SSH ✓
Engine · Cockpit · Gateway Home WiFi Wi-Fi ~ 192.168.1.x/24 ~1–5 ms fallback only
Engine GitHub HTTPS (PAT in URL) WAN github.com WAN LIVE · PAT exposed, Sentinel monitors
Engine / Cockpit Obsidian Sync HTTPS (E2E) WAN obsidian.md WAN SUBSCRIBED (Plus) · not yet configured for vaults

My access matrix (what Forge on Engine can reach)

TargetMethodStatusNotes
Engine RoomDirect · running as maddenstudioserverFullRead/write/exec per Claude Code sandbox rules
Cockpitssh maddenfamily@Cockpit.local (via TB 10.0.1.2)Verified this sessionFull user shell; sub-ms over Thunderbolt
Gatewayssh shogunmaddendatacenter@Shoguns-Mac-mini.local (via ETH 10.0.2.2)Verified this sessionFull user shell; sub-ms over direct Ethernet
NomadTailscale SSHPing ✓ · SSH key not yet installedNeed authorized_keys entry + username confirmation
Outpostssh vps (via vps_scout key)Documented workingroot shell on Linux
GitHub repoHTTPS PATFull admin/pushPAT exposed in .git/config; Sentinel monitoring per your directive
Obsidian Sync cloudIndirect via Obsidian.app file watcherSubscribed, not wiredExternal writes (Forge Write tool) picked up by Obsidian's watcher — behavior to canary-test before relying on
SlackIndirect via OpenClaw ShogunLiveI don't post directly
MCP SaaS (Linear · Notion · Gmail · Calendar · Canva · Figma · Gamma · HubSpot · Microsoft 365 · Monday · Smartsheet · Tavily)Deferred tools via MCPSchemas available, OAuth state per-tool unknownPhase 1 discovery will verify which have live OAuth
Cloud storage mountsEngine filesystemDropbox confirmed ✓ · iCloud/OneDrive/GDrive TBDPhase 1 enumerates

Content placement — where files should live (per your directive)

Content typeCanonical homeSync mechanismWho writes
Governance doctrine (SYSTEM, MEMORY, DECISIONS, SYSTEM_LESSONS, SOUL, FORGE_DOCTRINE) ~/ShogunOS/System_OS/ · Shogun_OS/ · Forge_OS/ Obsidian Sync (primary once wired) · git nightly archive (forensic) Pat direct · Forge via governance_gate.sh
Memory / lessons / AARs / scratchpads ~/ShogunOS/Forge_OS/memory/ · AARs/ · lessons_learned.md · notes/ Obsidian Sync · single-writer discipline Forge direct (with .lock file for concurrent case)
Context / knowledge base / transcripts / CRM ~/ShogunOS/System_Context/ Obsidian Sync (fits in Plus 100 GB tier) Machine ingestion pipelines
Code (scripts, LaunchAgent plists, Claude Code settings, configs) Git tree — final path TBD in Phase 4 design Git + GitHub Forge intentional commits; Pat direct
Secrets macOS Keychain (per machine) None — per-machine rotation Pat direct
Mailbox (inter-agent messages) ~/ShogunOS/mailbox/ Obsidian Sync carries markdown Per-recipient inbox convention
Runtime state (checkpoints, live logs, Sentinel JSON) ~/.shogun/ outside vault None — local per machine Agents write their own state
Semantic memory (embeddings, vector search) pgvector on Outpost (single authoritative instance) Queried over Tailscale via MCP postgres Forge + Shogun via MCP
Binary infra (venvs, chromadb stores, node_modules) Local per machine, gitignored + Obsidian-ignored None — rebuilt Build tooling
Briefs ~/ShogunOS/briefs/ Served via Tailscale Funnel :8080 morning/evening-brief LaunchAgents

Implications for the data management plan

The triangle changes the plan's cost model significantly:

Still-unresolved questions (fewer than v1)