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_TOKENenvironment 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.tomlconfiguration file and aDockerfile(or buildpacks) to build your application on their builders. - Ensure the
Dockerfilebuilds 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.tomlfile 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 createorfly redis createand attached to the app.
Phase 4: Deploy
- Ship the artifact to Fly.io.
- Run
fly deployto build and deploy your application. You can append--remote-onlyto force the build on Fly's remote builders. - Use
--detachif 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 statusto check the application's instances and their health status. - Retrieve the public URL using
fly infoand usecurl -sSf <URL>to ensure the application returns a 200 OK status code. - Check logs via
fly logsif 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
- [ ] Fly.io authentication (
fly auth whoami) succeeds. - [ ] Build succeeds (locally or remote).
- [ ] Application instances are running (
fly status). - [ ] Health check (curl) returns 200 OK.
Related skills
Docker Compose Architect
DevOps
Designs optimized Docker Compose configurations.
Claude CodeCopilotadvanced
430
156
1,688
Incident Postmortem Writer
DevOps
Writes structured and blameless incident postmortem reports.
claudeCursorWindsurfintermediate
141
43
601
Runbook Creator
DevOps
Creates clear operational runbooks for common DevOps procedures.
claudeCursorWindsurfintermediate
108
32
533