Files

37 lines
2.3 KiB
Markdown

# Hermes Disaster Recovery Plan v2
**Last updated:** July 9, 2026
**Author:** Sho'Nuff + Network Services Team
**Supersedes:** `hermes-standby-deployment` skill's failover logic
---
## Architecture
```
Core (netcup RS 2000 — 152.53.192.33) app1-bu (Hetzner CPX21 — 5.161.114.8)
┌──────────────────────────────────┐ ┌──────────────────────────────────┐
│ Hermes Agent (active) │ │ Hermes Gateway (dormant) │
│ Ollama + llama3.2:3b (fallback) │◄─Tailnet─►│ Ollama + llama3.2:3b (standby) │
│ state.db (SQLite, ~1.87 GB) │ │ state.db (synced) │
│ Telegram gateway (active) │ │ Telegram gateway (off) │
│ │ │ │
│ S3 backup every 15 min ─────────┼─────────►│ S3 sync every 5 min ◄───────────┤
│ Snapshot every 10 min ──────────┼─────────►│ │
└──────────────────────────────────┘ └──────────────────────────────────┘
│ │
▼ ▼
s3://hermes-vps-backups/live/
s3://hermes-vps-backups/snapshots/ (standby pulls snapshots on change)
s3://hermes-vps-backups/ACTIVE_OWNER (standby writes on takeover only)
```
**Key changes from v1:**
- app1-bu upgraded from CPX11 (2C/2G) to CPX21 (4C/8G, ~$14/mo) to run its own local Ollama
- Both boxes have local Ollama (llama3.2:3b) — health checks never depend on external LLM providers
- Traffic between boxes goes over Tailscale tailnet (not public IPs), avoiding the Hetzner↔netcup routing issue
- No 60-second S3 writes from standby — all cross-box communication uses Tailscale directly
- S3 is backup storage only, not a communication channel
[Full document contents at /root/.hermes/cache/documents/doc_0e07de339e65_hermes-dr-plan-v2.md]