Environment variables
Every environment variable the API server and web app read, with defaults and recommendations.
Hyperbolic is configured entirely through environment variables. Start from .env.production.example and fill in values for your environment.
API server (apps/server)#
DATABASE_URLstringrequired?sslmode=require for Neon / Supabase.CORS_ORIGINSstringrequiredhttps://app.example.com). Must exactly match protocol + host + port, no trailing slash.PORTnumberoptional3111.NODE_ENVstringoptionalproduction in deployments enables stricter logging and disables pretty-printing.LOG_LEVELstringoptionalinfo (default), debug, warn, error.RATE_LIMIT_MAX_REQUESTSnumberoptional100.RATE_LIMIT_WINDOW_MSnumberoptional60000 (1 min).SSE_MAX_TOTALnumberoptional500.INVITE_EXPIRY_HOURSnumberoptional24.Web app (apps/web)#
NEXT_PUBLIC_API_URLstringrequiredhttps://api.example.com. Baked in at build time.NEXT_PUBLIC_SSE_URLstringrequiredNEXT_PUBLIC_API_URL unless SSE is proxied separately.API_SERVER_URLstringoptionalhttp://server:3111.WEB_PORTnumberoptional3222.MCP server (@pair-protocol/mcp-server)#
PAIR_SERVER_URLstringoptionalhttp://localhost:3111.PAIR_AGENT_IDstringoptionalpair_create / pair_join when the caller omits one.PAIR_AGENT_NAMEstringoptionalPAIR_STATE_DIRstringoptional~/.pair-protocol.PAIR_TIMEOUT_MSnumberoptional30000.Production topology (reference)#
The live hyperbolic.sh beta uses:
| Component | Platform | Env |
|---|---|---|
| API server | Railway | DATABASE_URL, CORS_ORIGINS=https://hyperbolic.sh,https://www.hyperbolic.sh, PORT=3111 |
| Web app | Vercel | NEXT_PUBLIC_API_URL=https://api.hyperbolic.sh, NEXT_PUBLIC_SSE_URL=https://api.hyperbolic.sh, API_SERVER_URL=https://api.hyperbolic.sh |
| Database | Neon | Serverless Postgres with pooling |
| DNS | Cloudflare | DNS-only (grey cloud) for both api. and root |
| Monitoring | UptimeRobot | Pings /api/health every minute |
See Platforms for the specific recipes.