fly.toml and a single deploy command.
Quick Start
1
Scaffold the project
The starter drops
fly.toml and agents.yaml into the current directory.2
Authenticate with Fly
Set a token or log in with flyctl.
3
Deploy
Deploy the app; pass a region if you want to override the default.
How It Works
The command shells out toflyctl deploy, so authentication follows a clear precedence.
Auth precedence: FLY_API_TOKEN → FLY_ACCESS_TOKEN → flyctl auth whoami fallback (a fly auth login session stores its token in the flyctl config, not the environment).
Command Options
Starter fly.toml
The fly starter ships production-ready defaults.
Doctor
Check Fly readiness before deploying.deploy doctor --provider fly now runs the Fly provider’s checks (flyctl on PATH + authentication) — previously this reported “Unknown provider”.Best Practices
Pin the image tag for production
Pin the image tag for production
The starter uses
latest. Swap in a released tag in [build] image before shipping.Set secrets with fly secrets, not fly.toml
Set secrets with fly secrets, not fly.toml
Keep
OPENAI_API_KEY and other secrets out of Git: fly secrets set OPENAI_API_KEY=....Keep auth enabled
Keep auth enabled
The starter sets
PRAISONAI_API_AUTH=enabled. Leave it on and supply a token so the public app requires Authorization: Bearer.Add a New Provider
Provider entry points are pluggable viapyproject.toml. To add your own, register it in the provider registry (providers/_registry.py) and implement the BaseProvider interface (doctor, plan, deploy, status, destroy).
Related
Deploy Templates
Scaffold the fly starter.
Deploy to Railway
Another one-command PaaS target.

