Fly.io (playground API only)
The DO K8s runbook ships the platform end-to-end on real Kubernetes. If you only need the playground API to be reachable — no cluster, no Helm, no CRDs — Fly.io deploys the same Dockerfile directly for ~$0–2/month.
Trade-off: you lose the Helm/Temporal/operator story. Keep this path for the always-on demo URL; use kind for the full deploy-saga demo.
Prereqs
Section titled “Prereqs”brew install flyctlfly auth login # OAuth in browserFly requires a credit card on file even for the free tier — add one at https://fly.io/dashboard/YOUR-ORG/billing.
fly.toml (in the plnt repo root)
Section titled “fly.toml (in the plnt repo root)”Already committed at plnt/fly.toml. Points at docker/playground-api.Dockerfile and pre-configures the workflow registry. Real backends slot in via the PLNT_PLAYGROUND_MODELS env — any OpenAI-compatible upstream (vLLM, TGI, SGLang, or a hosted provider) works.
Deploy
Section titled “Deploy”cd /Users/dev16/Documents/den-agent/plnt
# create the appfly apps create plnt-playground
# upstream API key — never a file, always a secretfly secrets set UPSTREAM_API_KEY=sk-... --app plnt-playground
# build + push + boot the machinefly deploy --app plnt-playground
# verifycurl -s https://plnt-playground.fly.dev/v1/models | jqCustom domain
Section titled “Custom domain”fly certs add playground.plnt.work --app plnt-playground# Prints a CNAME target. In Cloudflare DNS:# Type CNAME · Name playground · Target <printed value> · Proxy DNS only
# once DNS propagates:fly certs check playground.plnt.work --app plnt-playground # → issuedWhat lives where
Section titled “What lives where”- Image: built from
docker/playground-api.Dockerfile, ~150 MB. - Workflow registry:
PLNT_PLAYGROUND_MODELSenv infly.toml— a JSON array with"api_key_env": "UPSTREAM_API_KEY"on each entry that proxies to a hosted provider. - Upstream key:
fly secrets set UPSTREAM_API_KEY=...— the discovery layer reads it at startup. - CORS: pre-configured for
https://plnt.work,https://play.plnt.work,https://playground.plnt.work.
Point the site at it
Section titled “Point the site at it”cd /Users/dev16/Documents/den-agent/plnt-sitevercel env add PUBLIC_PLNT_ENDPOINT production# paste: https://playground.plnt.workvercel --prodLogs / debugging
Section titled “Logs / debugging”fly logs --app plnt-playgroundfly ssh console --app plnt-playgroundfly status --app plnt-playground- 1×
shared-cpu-1xVM, 512 MB RAM: $1.94/mo (24/7) or $0 withauto_stop_machines = "stop"and no traffic. - Bandwidth: 160 GB/mo free.
- Custom cert: free.