Skip to main content

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

The app builds with a standard Dockerfile (Node 22, 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 with flyctl 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:
Test mode is recommended for evaluation because anyone can run the full money loop with Stripe test cards and zero setup. Going live is a single key swap; the Stripe account simply needs to be activated.

Verifying a deployment

A healthy deployment returns configured: true from the agents endpoint when FLY_API_TOKEN is set, and a Treasury state with stripeMode reflecting the key in use.