| name | fly-deployment |
| description | Deep knowledge about deploying applications to Fly.io (MicroVMs, Docker). |
| type | transform |
| tier | library |
| domain | deploy |
| trigger | when deploying to Fly.io |
Context
Deploying {{project_name}} ({{project_type}}) to Fly.io.
You will follow a strict 6-phase Deployment Lifecycle Contract.
Instructions
Execute the following phases in order:
Phase 1: Authentication
- Ensure the
FLY_API_TOKEN environment variable is set to a valid token.
- If running locally, authenticate interactively with
fly auth login. For automated agents, ensure the token is provided.
- Validate by running
fly auth whoami.
Phase 2: Build
- Prepare the artifacts for deployment.
- Fly.io uses a
fly.toml configuration file and a Dockerfile (or buildpacks) to build your application on their builders.
- Ensure the
Dockerfile builds successfully locally (docker build .) to catch any errors early.
- If your project requires generating static assets before pushing, run your framework's build command (e.g.,
npm run build).
Phase 3: Install / Provisioning
- Ensure the target Fly.io application exists. If not, initialize it using
fly launch --no-deploy.
- Check the
fly.toml file to ensure the application name, regions, and environment variables are correctly configured.
- Ensure required secrets are set using
fly secrets set KEY=value.
- If your application requires a database (Postgres, Redis), ensure it's provisioned via
fly postgres create or fly redis create and attached to the app.
Phase 4: Deploy
- Ship the artifact to Fly.io.
- Run
fly deploy to build and deploy your application. You can append --remote-only to force the build on Fly's remote builders.
- Use
--detach if you do not want to wait for health checks to pass in the foreground (not recommended for automated agents unless monitoring separately).
Phase 5: Checking
- Verify the deployment was successful.
- Run
fly status to check the application's instances and their health status.
- Retrieve the public URL using
fly info and use curl -sSf <URL> to ensure the application returns a 200 OK status code.
- Check logs via
fly logs if the deployment fails or instances are crashing.
Phase 6: Update / Rollback
- If Phase 5 fails, immediately initiate a rollback.
- Fly.io supports rolling back to previous deployments. Identify the previous image or release version and run
fly deploy -i <previous-image-ref>.
- Note the failure in the progress log.
Validation