Files
the-nexus/operations/fleet-topology.md
Timmy Time c67e59b735
Some checks failed
Deploy Nexus / deploy (push) Has been cancelled
docs(ops): add two-VPS fleet topology runbook
- Document Alpha (167.99.126.228) vs Beta (104.131.15.18) roles
- Define client-facing narrative for architecture questions
- List redundancy status honestly

Closes #908
2026-04-07 02:47:04 +00:00

3.3 KiB

Fleet Topology — Two-VPS Operations Runbook

Date: 2026-04-06
Owner: Bezalel
Classification: Operational Reference


Overview

The Timmy Foundation fleet runs across two VPS instances with distinct roles. This document exists so that when a client asks about architecture, redundancy, or access patterns, we have a single truthful answer ready.


Hosts

VPS Alpha — 167.99.126.228

Role: Primary stack. Main forge, relay, and agent compute.

Running services:

  • Gitea (forge.alexanderwhitestone.com)
  • Nostr relay (strfry on 7777, timmy-relay on 2929)
  • Ollama (local inference, qwen3:4b)
  • Hermes agents: Allegro, Adagio, Ezra, Bilbobagginshire
  • Webhook receivers and CI automation
  • Evennia MUD / Timmy Academy

Storage: All source of truth repositories, model weights, agent homes.


VPS Beta — 104.131.15.18

Role: Forge-and-testbed satellite. Bezalel only.

Running services:

  • Hermes agent: Bezalel

Not running here:

  • No local Gitea (uses VPS Alpha over HTTPS)
  • No Docker daemon
  • No Nostr relay
  • No Ollama

Purpose: Isolated testbed for build verification, security hardening, and destructive experiments without risking the primary stack.


Why Two Hosts?

  1. Blast radius isolation. Bezalel can test builds, run security audits, and break things without affecting the main forge.
  2. Specialization. Alpha runs the full production stack. Beta is lean and dedicated to CI/testbed work.
  3. Future scaling. Beta-pattern hosts can be spun up in additional regions or clouds.

Cross-Host Communication

From To Protocol Path
VPS Beta (Bezalel) VPS Alpha (Gitea) HTTPS/API forge.alexanderwhitestone.com
VPS Alpha agents VPS Alpha Gitea Local HTTP/API localhost:3000
VPS Alpha Nostr Public WebSocket 7777, 2929

No direct agent-to-agent LAN mesh. Agents communicate through Gitea issues/comments and shared repositories.


Redundancy Status

Current state: Single points of failure exist.

  • Gitea is on one host.
  • Nostr relay is on one host.
  • Agent state is per-host.

Mitigations in place:

  • All code and configuration is in git.
  • Gitea itself is the backup for repositories.
  • Agent homes are checkpointed to git periodically.

Not yet redundant:

  • Automatic failover to a second Gitea instance.
  • Cross-host agent migration without manual intervention.
  • Real-time state replication between Alpha and Beta.

Client-Facing Narrative

When asked about infrastructure:

"We run a distributed fleet. Our primary stack hosts the code forge, relay network, and four agents. Our secondary testbed host runs dedicated build verification and security hardening workloads. This lets us isolate experimental or destructive work from production systems. All code and configuration is source-controlled, so any host can be rebuilt from git in under an hour."


Operational Contacts

Host IP Primary Agent Emergency Rebuild Source
Alpha 167.99.126.228 Allegro Gitea repos + .env files
Beta 104.131.15.18 Bezalel Gitea repos + .env files

Last updated: 2026-04-06
Next review: On fleet expansion or host migration