Quick MVP deployment to fly.io for JavaScript (Next.js, RedwoodSDK, Express), Rust (Axum, Rocket), Python (FastAPI), and generic Dockerfiles. Use when deploying applications to fly.io, setting up databases (Postgres, volumes, Tigris object storage), managing secrets, configuring custom domains, setting up GitHub Actions workflows, creating review apps for pull requests, or troubleshooting fly.io deployments. Covers complete deployment workflows from initial setup through production.
From dev-specialismsnpx claudepluginhub aaronbassett/agent-foundry --plugin dev-specialismsThis skill uses the workspace's default tool permissions.
assets/dockerfiles/axum.Dockerfileassets/dockerfiles/express.Dockerfileassets/dockerfiles/fastapi.Dockerfileassets/dockerfiles/nextjs.Dockerfileassets/dockerfiles/rocket.Dockerfileassets/workflows/deploy.ymlassets/workflows/review-apps.ymlassets/workflows/test-and-deploy.ymlreferences/data-persistence.mdreferences/deployment-workflow.mdreferences/domains-and-networking.mdreferences/github-integration.mdreferences/languages/javascript.mdreferences/languages/python.mdreferences/languages/rust.mdreferences/secrets-and-env.mdreferences/troubleshooting.mdscripts/init_postgres.shscripts/setup_review_apps.shscripts/setup_tigris.shSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
Quick MVP deployment to fly.io with support for multiple languages, databases, GitHub integration, and production-ready configurations.
Use this skill when you need to:
# From your app directory
fly launch
# Follow interactive prompts:
# - Choose app name
# - Select region
# - Configure resources
# - Deploy immediately or create config only
# Deploy app with existing fly.toml
fly deploy
# Build on fly.io servers (recommended for CI/CD)
fly deploy --remote-only
New App (No fly.toml) → See: Deploying New Applications
Existing fly.io App → See: Deploying Existing Applications
Migrating from Another Platform → See: references/deployment-workflow.md + Language-specific guides
Navigate to the appropriate language guide:
JavaScript/Node.js:
Python:
Rust:
Generic Dockerfile: → See: references/deployment-workflow.md
Each language guide includes:
assets/dockerfiles/)Choose based on your needs:
Managed Postgres (Recommended for production SQL databases)
→ See: references/data-persistence.md#managed-postgres
→ Script: scripts/init_postgres.sh
Volumes (For SQLite, file uploads, or local storage) → See: references/data-persistence.md#fly-volumes
Tigris Object Storage (For media files, user uploads, S3-compatible)
→ See: references/data-persistence.md#tigris-object-storage
→ Script: scripts/setup_tigris.sh
External Database (Supabase, PlanetScale, Neon, etc.) → See: references/data-persistence.md#external-databases
→ See: references/secrets-and-env.md
# Set secrets
fly secrets set DATABASE_URL=postgres://...
fly secrets set API_KEY=abc123
# Generate random secrets
fly secrets set SECRET_KEY=$(openssl rand -hex 32)
→ See: references/domains-and-networking.md
# Add custom domain
fly certs add example.com
# View DNS instructions
fly certs show example.com
GitHub Actions Deployment:
→ See: references/github-integration.md
→ Template: assets/workflows/deploy.yml
PR Review Apps:
→ See: references/github-integration.md#review-apps
→ Template: assets/workflows/review-apps.yml
→ Script: scripts/setup_review_apps.sh
Ensure your app has:
/health returning 200 OK)PORT environment variableExample Dockerfiles available in: assets/dockerfiles/
nextjs.Dockerfileexpress.Dockerfilefastapi.Dockerfileaxum.Dockerfilerocket.Dockerfilefly launch
Interactive prompts will:
fly.tomlUseful flags:
# Skip deployment, just create config
fly launch --no-deploy
# Specify app name
fly launch --name my-app
# Choose region
fly launch --region ord # Chicago
Review and adjust fly.toml:
app = "my-app"
primary_region = "ord"
[build]
dockerfile = "Dockerfile"
[env]
PORT = "8080"
[http_service]
internal_port = 8080
force_https = true
auto_stop_machines = "stop"
auto_start_machines = true
min_machines_running = 0 # Scale to zero for cost savings
[[http_service.checks]]
grace_period = "10s"
interval = "30s"
path = "/health"
[[vm]]
memory = "256mb"
cpus = 1
→ For complete fly.toml reference: references/deployment-workflow.md
fly deploy
Your app will be available at: https://my-app.fly.dev
For apps with existing fly.toml:
# Standard deployment
fly deploy
# Remote build (recommended for CI/CD)
fly deploy --remote-only
# Specific deployment strategy
fly deploy --strategy rolling # Zero downtime (default)
fly deploy --strategy immediate # Faster, brief downtime
Managed Postgres (Recommended):
# Using the provided script
./scripts/init_postgres.sh --app my-app
# Or manually
fly postgres create --name my-app-db
fly postgres attach my-app-db
Tigris Object Storage:
# Using the provided script
./scripts/setup_tigris.sh --app my-app
# Or manually
fly storage create
→ See: references/data-persistence.md
# Set secrets
fly secrets set DATABASE_URL=postgres://...
fly secrets set API_KEY=secret123
# List secrets (names only)
fly secrets list
# Remove secrets
fly secrets unset API_KEY
→ See: references/secrets-and-env.md
# Using the provided script
./scripts/setup_review_apps.sh --org personal --region ord
# Or copy template manually
cp assets/workflows/review-apps.yml .github/workflows/
→ See: references/github-integration.md#review-apps
# Add domain
fly certs add example.com
# Get your app's IP addresses
fly ips list
# Configure DNS (A and AAAA records)
# Then verify
fly certs show example.com
→ See: references/domains-and-networking.md
# Scale memory
fly scale memory 512
# Scale machine size
fly scale vm shared-cpu-2x
# Scale instance count
fly scale count 3
# Scale across regions
fly scale count 2 --region ord,iad
→ See: references/deployment-workflow.md#scaling
App won't start:
# Check logs
fly logs
# Verify port configuration
# App must listen on PORT env var and bind to 0.0.0.0
Health checks failing:
# Test health endpoint
fly ssh console -C "curl http://localhost:8080/health"
# Adjust grace period in fly.toml if needed
Database connection errors:
# Verify DATABASE_URL is set
fly secrets list
# Test from within app
fly ssh console
echo $DATABASE_URL
Deployment slow or timing out:
# Use remote builder
fly deploy --remote-only
# Check build cache
fly deploy --no-cache
→ For comprehensive troubleshooting: references/troubleshooting.md
# View app status
fly status
# Stream logs
fly logs
# SSH into running machine
fly ssh console
# List machines
fly machine list
# View deployments
fly releases
# Check health checks
fly checks list
scripts/)Automation scripts for common tasks:
setup_review_apps.sh - Generate GitHub Actions workflow for PR review appsinit_postgres.sh - Create and attach Managed Postgres databasesetup_tigris.sh - Configure Tigris object storage bucketAll scripts include help text. Run with --help or without arguments for usage.
assets/dockerfiles/)Production-ready Dockerfiles for each framework:
nextjs.Dockerfile - Next.js with standalone output (minimal image)express.Dockerfile - Express.js with multi-stage buildfastapi.Dockerfile - FastAPI with uvicornaxum.Dockerfile - Axum with optimized Rust buildrocket.Dockerfile - Rocket with multi-stage buildCopy and customize for your app.
assets/workflows/)Ready-to-use workflow templates:
deploy.yml - Basic deployment on push to mainreview-apps.yml - PR review apps with automatic cleanuptest-and-deploy.yml - Run tests before deployingCopy to .github/workflows/ and customize.
fly deploy --remote-onlyfly logs helps catch issues early# Essential commands
fly launch # Create new app
fly deploy # Deploy app
fly status # Check app status
fly logs # View logs
fly ssh console # SSH into machine
# Database
fly postgres create # Create database
fly postgres attach # Attach to app
fly storage create # Create Tigris bucket
# Configuration
fly secrets set KEY=value # Set secret
fly secrets list # List secrets
fly scale memory 512 # Scale memory
fly scale count 3 # Scale instances
# Domains
fly certs add example.com # Add domain
fly certs show example.com # Check certificate
fly ips list # Get IP addresses
# Troubleshooting
fly logs # Stream logs
fly ssh console # Access machine
fly checks list # View health checks
fly releases # View deployments
Note: fly.io changes frequently. This skill is based on documentation current as of January 2026. If commands or features have changed, consult the official fly.io documentation at https://fly.io/docs/