---
name: dual-host-architecture-2026-06-21
description: "Fleet migrating from single-box (lab) to dual-host (omidhub VPS + lab). Agent state on VPS, large files + GPU compute on lab."
metadata: 
  node_type: memory
  type: project
  originSessionId: cd07777c-8add-4afc-9cb9-9113caa0331f
---

As of 2026-06-21, the fleet is migrating to a dual-host architecture. Cameron purchased a Hetzner CCX33 VPS at `5.78.127.30` (hostname `omidhub`, ~$48/mo).

**Split (Cameron's explicit instruction):**
- **omidhub (VPS)**: all agent-related state — `agents_stuff/`, `vault/`, `~/.claude/projects/` (including memory + session JSONLs), `~/.cloudflared/`, `serve.py`. Tmux session lives here. Cloudflared tunnel terminates here. Cameron's words: "agent related stuff like vaults and memories and our notes and agent information stuff etc."
- **phe108 (lab)**: large files + GPU work. Training data, checkpoints, eval videos, anything compute-intensive. Cameron's words: "all the model training related things and code can even stay here", "all large files on the server here and not to run any serious computation on the box there."

**Path equivalence is deliberate.** omidhub mirrors phe108's path layout — `/data/cameron/...`, `/home/cameronsmith/...` exactly. Heavy dirs (`/data/cameron/para/libero`, etc.) are sshfs mounts on omidhub pointing back to phe108. This means JSONLs reference identical absolute paths on both boxes; agents resume mid-conversation after cutover without any path rewriting.

**Current state (2026-06-21):**
- VPS provisioned, OS installed (Ubuntu 24.04).
- Cameron's Mac SSH key works to root@5.78.127.30. **My (lab box's) key is NOT yet installed there** — that's the current access blocker.
- Migration scripts ready at `/data/cameron/agents_stuff/migration/` (README + 3 stage scripts).
- Lab box's fleet continues to run normally — migration is PARALLEL prep, not destructive.

**How to apply:**
- DO NOT touch the lab box's running fleet during VPS prep — Cameron explicitly said "keep this fully functional for now (don't delete / migrate anything just yet)."
- DO NOT install heavy compute deps on the VPS (no `pip install torch`, no CUDA). It's a fleet host, not a training host.
- When a future task references file paths, assume they work identically on both boxes. The sshfs makes them equivalent.
- For NEW projects on omidhub (e.g. the planned finance agent), default to omidhub-local paths under `/data/cameron/` — those become real local files on the VPS, not sshfs targets.

**Cutover trigger:** Cameron will say "let's flip to the VPS" or similar. Run the 4-step cutover documented in `agents_stuff/migration/README.md`. Until then, both boxes coexist and lab is the live fleet.

**Tripwire:** if Cameron mentions "VPS migration done" / "cutover complete," update this memory to mark the lab box as a data/GPU server only and route new fleet work to omidhub.
