Hosts
SolOS V3 — host topology and roles (authoritative)
Young, 2026-10-16:
SolOS V3 — host topology and roles (authoritative)
Young, 2026-10-16:
"We have Pulse + Brain and Heart Units. Production Server is where we host customer services. LAB is where our Brain + Heart live — this is where we bring services to our clients. Pulse is where our Pulse live — this is where our investment and cashflow generate. Heart Fleet is our workforce, need to live on all host with our Pulse + Brain."
Three hosts, three roles
| Host | Role | What lives there | What it serves |
|---|---|---|---|
| Pulse (192.168.4.34) | Pulse unit — investment/cashflow | Hermes: eva, eve, tam | Pulse content, investment signals, cashflow |
| LAB | Brain + Heart — bring services to clients | Hermes: min, mira, sol (Brain) + Heart Fleet (ace, alpha, atlas, echo, nova) | Canonical vault, A2A gateway, opencode ARMS |
| Production (161.33.71.67) | Customer hosting + backup + serve | Docs site (Docus/Nuxt), pulse-site, tenant services, Heart Fleet | docs.youngle.au, pulse.youngle.au, per-tenant e-commerce (Mercury V2 + POS + EVE), Hermes agents + EVE |
Heart Fleet — lives on every host
Heart Fleet is the workforce. It is portable and runs on all three hosts, not LAB-only. Each host runs its own Heart agents against its own opencode ARMS:
- LAB — Heart agents for Brain-side tasks (canonical vault ops, A2A orchestration)
- Production — Heart agents for customer-side tasks (tenant ops, docs rebuild, serve-side work)
- Pulse — Heart agents for Pulse-side tasks (investment signals, cashflow, content)
Every host runs opencode v2.0.27 (verified) as its ARMS. A2A endpoints per agent per host — port allocation TBD by Sol's engineering spec.
Production server services
- 2 live websites: docs.youngle.au (Docus/Nuxt) + pulse.youngle.au
- Tenants: e-commerce (Mercury V2 + POS + EVE)
- Hermes agents + EVE
- Heart Fleet (worker layer)
Why this shape (Min's read)
- LAB = Brain (canonical). Never serves public. Holds the vault. If LAB dies, prod still serves docs (stale but up). If prod dies, LAB still holds everything.
- Prod = Heart + serve. Public-facing, worker layer, customer services. Free-tier ARM (4vCPU/23GB/179GB) — cost already sunk.
- Pulse = investment/cashflow. Separate host, separate concerns. Tam's domain.
- Heart on every host because work is local: a Heart agent on prod shouldn't round-trip to LAB to run a tenant task. Each host's Heart agents use that host's opencode ARMS. The A2A bus connects them across hosts via the SSH tunnel.
Security boundary (unchanged)
- LAB never serves publicly.
- Prod serves only behind nginx auth_basic (docs + pulse) or per-tenant nginx vhost.
- Heart agents on prod use the same uid-boundary fence as LAB (3 root steps pending).
- a2a-sdk 1.2.2 must be installed in the python running Heart agents on every host
(currently toolchain-only on LAB; prod's
/usr/bin/python3lacks it).
Open items
- Sol: Heart agent identity + store-role change per host (port registry, A2A endpoints, uid fence).
- Tam: Collector wiring for multi-host Heart (dashboard §C2 probes per host).
- Mira: Cost framing for prod Heart agents (GO/ZEN window per host).
- Nova/Ace: Docs site fixes (in flight via Tam+Mira).
- A2A not working — root cause: Heart agents (8301-8305) never built on any host. Sol owns the fix.

