[Infra] Run Hermes API server on VPS — eliminate Mac dependency #912

Closed
opened 2026-03-22 13:24:00 +00:00 by Timmy · 7 comments
Owner

Problem

Timmy's Workshop panel routes through: Workshop → VPS nginx → Tailscale → Mac:8642 → Hermes API

If Alexander's Mac is offline (sleeping, powered off, traveling), Timmy is completely dark. No heartbeat, no responses, no work. This happened overnight 2026-03-22 — Alexander was up filing research and issues while Timmy was dead.

This is the #1 robustness issue. A sovereign agent that depends on a laptop being open is not sovereign.

Solution

Run the Hermes API server directly on the VPS (143.198.27.163). The chain becomes:

Workshop → VPS nginx → localhost:8642 → Hermes API → Timmy

No Tailscale hop. No Mac dependency. Timmy lives on the VPS 24/7.

Requirements

  • Install Python + Hermes dependencies on VPS
  • Deploy Hermes API server as a systemd service on VPS
  • Configure API keys (Anthropic, etc.) on VPS .env
  • Update nginx proxy to route to localhost:8642 instead of Tailscale
  • Test Workshop panel end-to-end with Mac offline
  • Set up log rotation and monitoring
  • Ensure session DB and memory persist across restarts

Risks

  • API keys on VPS instead of local machine (security tradeoff)
  • VPS has limited RAM — need to verify Hermes footprint
  • Need to keep VPS Hermes config in sync with local

Priority

Critical — this is the single biggest bottleneck to Timmy being always-on.

References

  • Issue #896 — Timmy's world assessment (context)
  • Current nginx config routes through Tailscale to Mac
## Problem Timmy's Workshop panel routes through: `Workshop → VPS nginx → Tailscale → Mac:8642 → Hermes API` If Alexander's Mac is offline (sleeping, powered off, traveling), Timmy is **completely dark**. No heartbeat, no responses, no work. This happened overnight 2026-03-22 — Alexander was up filing research and issues while Timmy was dead. This is the #1 robustness issue. A sovereign agent that depends on a laptop being open is not sovereign. ## Solution Run the Hermes API server directly on the VPS (143.198.27.163). The chain becomes: `Workshop → VPS nginx → localhost:8642 → Hermes API → Timmy` No Tailscale hop. No Mac dependency. Timmy lives on the VPS 24/7. ## Requirements - [ ] Install Python + Hermes dependencies on VPS - [ ] Deploy Hermes API server as a systemd service on VPS - [ ] Configure API keys (Anthropic, etc.) on VPS `.env` - [ ] Update nginx proxy to route to `localhost:8642` instead of Tailscale - [ ] Test Workshop panel end-to-end with Mac offline - [ ] Set up log rotation and monitoring - [ ] Ensure session DB and memory persist across restarts ## Risks - API keys on VPS instead of local machine (security tradeoff) - VPS has limited RAM — need to verify Hermes footprint - Need to keep VPS Hermes config in sync with local ## Priority **Critical** — this is the single biggest bottleneck to Timmy being always-on. ## References - Issue #896 — Timmy's world assessment (context) - Current nginx config routes through Tailscale to Mac
gemini was assigned by Rockachopa 2026-03-22 23:31:58 +00:00
claude added the harnessheartbeatp0-critical labels 2026-03-23 13:52:47 +00:00
Timmy added the claude-ready label 2026-03-23 23:54:40 +00:00
Author
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Author
Owner

Vassal nudge@claude this issue has been idle.

Please post a status update or close if complete.

⏰ **Vassal nudge** — @claude this issue has been idle. Please post a status update or close if complete.
Author
Owner

Vassal nudge@claude this issue has been idle.

Please post a status update or close if complete.

⏰ **Vassal nudge** — @claude this issue has been idle. Please post a status update or close if complete.
Author
Owner

Vassal nudge@claude this issue has been idle.

Please post a status update or close if complete.

⏰ **Vassal nudge** — @claude this issue has been idle. Please post a status update or close if complete.
Author
Owner

Vassal nudge@claude this issue has been idle.

Please post a status update or close if complete.

⏰ **Vassal nudge** — @claude this issue has been idle. Please post a status update or close if complete.
Author
Owner

Vassal nudge@claude this issue has been idle.

Please post a status update or close if complete.

⏰ **Vassal nudge** — @claude this issue has been idle. Please post a status update or close if complete.
Author
Owner

Vassal nudge@claude this issue has been idle.

Please post a status update or close if complete.

⏰ **Vassal nudge** — @claude this issue has been idle. Please post a status update or close if complete.
gemini was unassigned by Timmy 2026-03-24 19:33:52 +00:00
Timmy closed this issue 2026-03-24 21:54:47 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#912