Complete inventory of all 4 machines, processes, services, credentials, cron jobs, launchd services, and resource baselines. Maps: Ezra (Forge), Allegro, Bezalel, Mac Local (hub). Identifies unknowns and dependencies. Generated from direct machine inspection. Fixes timmy-home#554
256 lines
8.7 KiB
Markdown
256 lines
8.7 KiB
Markdown
# Fleet Topology — The Timmy Foundation
|
|
|
|
**Last audited:** 2026-04-07
|
|
**Auditor:** Timmy (direct)
|
|
**Next review:** When any machine changes
|
|
|
|
---
|
|
|
|
## Overview Map
|
|
|
|
```
|
|
┌─────────────┐
|
|
│ Gitea Forge│
|
|
│ forge.aws.com│
|
|
└──────┬──────┘
|
|
│ HTTPS
|
|
┌─────────────────┼──────────────────┐
|
|
│ │ │
|
|
┌────┴────┐ ┌────┴────┐ ┌─────┴──────┐
|
|
│ EZRA │ │ ALLEGRO │ │ BEZALEL │
|
|
│ VPS │ │ VPS │ │ VPS │
|
|
│ 143.x │ │ 167.x │ │ 159.x │
|
|
│ $12/mo │ │ $12/mo │ │ $12/mo │
|
|
└────┬────┘ └────┬────┘ └─────┬──────┘
|
|
│ │ │
|
|
└────────────────┼──────────────────┘
|
|
│
|
|
┌─────┴──────┐
|
|
│ MAC LOCAL │
|
|
│ M3 Max │
|
|
│ 36GB │
|
|
│ 10.1.10.77 │
|
|
└────────────┘
|
|
```
|
|
|
|
**Total VPS cost:** ~$36/mo
|
|
**Total machines:** 4 (3 VPS + 1 Mac)
|
|
**Network:** All VPSes on DigitalOcean, Mac on local network (10.1.10.77)
|
|
|
|
---
|
|
|
|
## Machine 1: MAC LOCAL (The Hub)
|
|
|
|
| Item | Value |
|
|
|------|-------|
|
|
| **OS** | macOS 26.3.1 (25D2128) |
|
|
| **CPU** | Apple M3 Max, 14 cores |
|
|
| **RAM** | 36 GB |
|
|
| **Disk** | 926 Gi total, 302 Gi free, 12 Gi used (4%) |
|
|
| **IP** | 10.1.10.77 (local), external unknown |
|
|
| **Role** | Primary AI harness, agent runtime, Evennia world |
|
|
|
|
### Running Processes
|
|
|
|
| Process | PID | Memory | Notes |
|
|
|---------|-----|--------|-------|
|
|
| Hermes gateway | 68449 | ~500MB | Primary gateway |
|
|
| Hermes agent (s020) | 88813 | ~180MB | Session active since 1:01PM |
|
|
| Hermes agent (s007) | 62032 | ~200MB | Session active since 10:20PM prev |
|
|
| Hermes agent (s001) | 12072 | ~178MB | Session active since Sun 6PM |
|
|
| Ollama | 71466 | ~20MB | /opt/homebrew/opt/ollama/bin/ollama serve |
|
|
| OpenClaw gateway | 85834 | ~350MB | Tue 12PM start |
|
|
| Crucible MCP (x4) | multiple | ~10-69MB each | MCP server instances |
|
|
| Evennia Server | 66433 | ~49MB | Sun 10PM start, port 4000 |
|
|
| Evennia Portal | 66423 | ~7MB | Sun 10PM start, port 4001 |
|
|
|
|
### LaunchD Services
|
|
|
|
| Service | Status | Notes |
|
|
|---------|--------|-------|
|
|
| ai.hermes.gateway | Running (-9) | Primary gateway - PID 68426 |
|
|
| ai.hermes.gateway-bezalel | Running (0) | Bezalel gateway connection |
|
|
| ai.hermes.gateway-fenrir | Running (0) | Fenrir gateway connection |
|
|
| com.ollama.ollama | Running (1) | Ollama service |
|
|
| ai.timmy.codeclaw-qwen-heartbeat | Running (0) | Claw Code worker heartbeat (15min) |
|
|
| ai.timmy.kimi-heartbeat | Running (0) | Kimi agent heartbeat |
|
|
| ai.timmy.claudemax-watchdog | Running (0) | Claude subscription watchdog |
|
|
|
|
### Cron Jobs
|
|
|
|
| Schedule | Script | Purpose |
|
|
|----------|--------|---------|
|
|
| `0 9 * * *` | daily-fleet-health.sh | Daily fleet health check |
|
|
| `*/30 * * *` | burn-monitor.sh | Burn mode monitoring |
|
|
| `*/15 * * *` | loop-watchdog.sh | Restart dead Groq/Gemini loops |
|
|
| `0 8 * * *` | morning-report.sh | Overnight summary to Telegram+Gitea |
|
|
|
|
### Key Directories
|
|
|
|
| Path | Purpose |
|
|
|------|---------|
|
|
| ~/.hermes/ | Hermes harness - tools, agents, sessions |
|
|
| ~/.hermes/hermes-agent/ | Hermes agent source + venv |
|
|
| ~/.hermes/scripts/ | Fleet scripts (health, burns, watchdog) |
|
|
| ~/.timmy/ | Timmy workspace - Evennia, configs, skills |
|
|
| ~/.timmy/evennia/timmy_world/ | Evennia world (port 4000/4001) |
|
|
| ~/.config/gitea/ | Tokens for: timmy, claw-code, codex, fenrir, substratum, carnice |
|
|
| ~/.config/telegram/ | Special bot token |
|
|
| ~/work/ | Active work directories |
|
|
| ~/code-claw/ | Claw Code binary + workspace |
|
|
|
|
---
|
|
|
|
## Machine 2: EZRA (Forge)
|
|
|
|
| Item | Value |
|
|
|------|-------|
|
|
| **IP** | 143.198.27.163 |
|
|
| **Provider** | DigitalOcean |
|
|
| **Cost** | ~$12/mo |
|
|
| **DNS** | forge.alexanderwhitestone.com |
|
|
| **Role** | Gitea server, DNS management |
|
|
|
|
### Services
|
|
|
|
| Service | Notes |
|
|
|---------|-------|
|
|
| Gitea | forge.alexanderwhitestone.com, port 443 (nginx proxy) |
|
|
| Nginx | Reverse proxy for Gitea |
|
|
| HTTPS | Let's Encrypt cert (Apr 5 - Jul 4 2026) |
|
|
|
|
### Key Facts
|
|
- Gitea org: Timmy_Foundation (ID: 10)
|
|
- 16 repos across the org
|
|
- 16 watchers on timmy-home
|
|
- API at: https://forge.alexanderwhitestone.com/api/v1
|
|
- Token stored on Mac at ~/.config/gitea/token
|
|
|
|
---
|
|
|
|
## Machine 3: ALLEGRO
|
|
|
|
| Item | Value |
|
|
|------|-------|
|
|
| **IP** | 167.99.126.228 |
|
|
| **Provider** | DigitalOcean |
|
|
| **Cost** | ~$12/mo |
|
|
| **Role** | Agent hosting |
|
|
|
|
### Known Services
|
|
| Service | Notes |
|
|
|---------|-------|
|
|
| Agents | Agent processes (specific ones TBD) |
|
|
| SSH | Access from Mac needs verification (issue #538) |
|
|
|
|
### Unresolved Issues
|
|
- SSH access from Mac to Allegro not confirmed (timmy-home #538)
|
|
|
|
---
|
|
|
|
## Machine 4: BEZALEL
|
|
|
|
| Item | Value |
|
|
|------|-------|
|
|
| **IP** | 159.203.146.185 |
|
|
| **Provider** | DigitalOcean |
|
|
| **Cost** | ~$12/mo |
|
|
| **DNS** | bezalel.alexanderwhitestone.com |
|
|
| **Role** | Evennia world, agent hosting |
|
|
|
|
### Services
|
|
| Service | Notes |
|
|
|---------|-------|
|
|
| Evennia | World running (needs config fix per #534) |
|
|
| Agent hosting | Bezalel agent |
|
|
| Tailscale | Not yet installed (#535) |
|
|
|
|
### Unresolved Issues
|
|
- #534: Evennia settings have bad port tuples, DB is ready
|
|
- #535: Tailscale not installed
|
|
- #536: Evennia world needs themed rooms/characters
|
|
|
|
---
|
|
|
|
## Network Topology
|
|
|
|
```
|
|
Internet ──→ forge.alexanderwhitestone.com (Ezra, 143.198.27.163)
|
|
──→ bezalel.alexanderwhitestone.com (Bezalel, 159.203.146.185)
|
|
|
|
Mac (10.1.10.77) ──→ Ezra (SSH/HTTPS)
|
|
──→ Allegro (SSH - broken?)
|
|
──→ Bezalel (SSH)
|
|
|
|
Tailscale: Not installed on any VPS yet
|
|
```
|
|
|
|
---
|
|
|
|
## Credential Inventory (NOT the secrets, just where they live)
|
|
|
|
| Credential | Location | Used By |
|
|
|-----------|----------|---------|
|
|
| Gitea token (timmy) | ~/.config/gitea/timmy-token | Timmy API calls |
|
|
| Gitea token (generic) | ~/.config/gitea/token | General API access |
|
|
| Gitea token (claw-code) | ~/.config/gitea/claw-code-token | Code Claw worker |
|
|
| Gitea token (codex) | ~/.config/gitea/codex-token | Codex agent |
|
|
| Gitea token (fenrir) | ~/.config/gitea/fenrir-token | Fenrir agent |
|
|
| Gitea token (substratum) | ~/.config/gitea/substratum-token | Substratum agent |
|
|
| Gitea token (carnice) | ~/.config/gitea/carnice-token | Carnice agent |
|
|
| Telegram bot token | ~/.config/telegram/special_bot | @TimmysNexus_bot |
|
|
| OpenRouter key | ~/.timmy/openrouter_key | Model routing |
|
|
|
|
---
|
|
|
|
## Resource Baseline (Current State)
|
|
|
|
### Compute Capacity (estimated)
|
|
| Machine | CPU | RAM | Est. Daily Compute Hours |
|
|
|---------|-----|-----|------------------------|
|
|
| Mac Local | M3 Max (14c) | 36GB | ~4-6 hrs active use |
|
|
| Ezra | Unknown | Unknown | Gitea only, minimal |
|
|
| Allegro | Unknown | Unknown | Agent hosting |
|
|
| Bezalel | Unknown | Unknown | Evennia + agent |
|
|
|
|
### Model Inference
|
|
| Model | Location | Provider | Status |
|
|
|-------|----------|----------|--------|
|
|
| hermes4:14b | Local (Ollama) | Ollama | Running |
|
|
| qwen/qwen3.6-plus:free | Cloud | OpenRouter | Active (this session) |
|
|
| qwen/qwen3-32b | Cloud | Groq | Used by aider |
|
|
|
|
### Storage
|
|
| Machine | Total | Used | Free | Utilization |
|
|
|---------|-------|------|------|-------------|
|
|
| Mac Local | 926 Gi | 624 Gi | 302 Gi | 32% |
|
|
| Ezra | Unknown | Unknown | Unknown | Unknown |
|
|
| Allegro | Unknown | Unknown | Unknown | Unknown |
|
|
| Bezalel | Unknown | Unknown | Unknown | Unknown |
|
|
|
|
---
|
|
|
|
## What We Don't Know Yet
|
|
|
|
- [ ] CPU/RAM/disk on Ezra, Allegro, Bezalel (no inventory script yet)
|
|
- [ ] Running processes on VPSes
|
|
- [ ] Network paths between VPSes (no Tailscale yet)
|
|
- [ ] SSH connectivity from Mac to Allegro
|
|
- [ ] Backup state of any machine
|
|
- [ ] Uptime baseline (not tracked)
|
|
- [ ] Cost per agent per day (not tracked)
|
|
|
|
---
|
|
|
|
## Dependencies
|
|
|
|
| Service | Depends On | Risk if Down |
|
|
|---------|-----------|--------------|
|
|
| Gitea | Ezra, nginx, HTTPS | Can't manage issues, PRs, or repos |
|
|
| Hermas agents | Mac, Ollama, OpenRouter | No AI work gets done |
|
|
| Evennia | Bezalel VPS | Game world down |
|
|
| Telegram bot | Telegram API, Mac process | No notifications |
|
|
| Code Claw heartbeat | Mac, OpenRouter, Gitea | No automated issue processing |
|
|
|
|
---
|