Production topology
HermesCo runs as two Fly apps:
The web app is live at
https://hermesco.ai. Agent bodies are provisioned into hermesco-agents on demand and do not need public IPs because all execution happens through the Machines API.
Deploy
npm ci, next build). A single machine is sufficient; the in-memory Treasury persists across requests on one instance, and Convex upgrades that to durable, multi-instance persistence.
Secrets
Set secrets on the web app withflyctl secrets set KEY=VALUE --app hermesco. Each one turns on a capability; the app degrades honestly without it.
Stripe: test or live
The same code path runs in either mode; the mode is detected from the key prefix:Verifying a deployment
configured: true from the agents endpoint when FLY_API_TOKEN is set, and a Treasury state with stripeMode reflecting the key in use.