From flyio-pack
Execute Fly.io primary workflow: deploy, scale, and manage apps with flyctl and fly.toml. Use when deploying applications, configuring regions, setting secrets, or managing the app lifecycle on Fly.io. Trigger: "fly deploy", "fly.io app management", "fly scale", "fly.io regions".
npx claudepluginhub flight505/skill-forge --plugin flyio-packThis skill is limited to using the following tools:
The primary Fly.io workflow: configure `fly.toml`, deploy apps, manage secrets, scale across regions, and control machine lifecycle.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
The primary Fly.io workflow: configure fly.toml, deploy apps, manage secrets, scale across regions, and control machine lifecycle.
# fly.toml — app configuration
app = "my-app"
primary_region = "iad"
[build]
dockerfile = "Dockerfile"
[env]
NODE_ENV = "production"
PORT = "3000"
[http_service]
internal_port = 3000
force_https = true
auto_stop_machines = "stop" # Stop idle machines
auto_start_machines = true # Start on request
min_machines_running = 1 # Always keep 1 warm
[http_service.concurrency]
type = "requests"
hard_limit = 250
soft_limit = 200
[[vm]]
cpu_kind = "shared"
cpus = 1
memory = "512mb"
# Set secrets (encrypted, injected as env vars)
fly secrets set DATABASE_URL="postgres://..." API_KEY="sk_..."
# List secrets (values hidden)
fly secrets list
# Deploy
fly deploy
# Check deployment status
fly status
fly releases
# Add machines in new regions
fly scale count 2 --region iad # 2 machines in Virginia
fly scale count 1 --region lhr # 1 machine in London
fly scale count 1 --region nrt # 1 machine in Tokyo
# Adjust VM size
fly scale vm shared-cpu-2x --memory 1024
# Check current scale
fly scale show
# Restart all machines
fly apps restart
# Suspend an app (stop billing)
fly apps suspend my-app
# Resume
fly apps resume my-app
# Destroy (irreversible)
fly apps destroy my-app --yes
| Setting | Default | Recommended |
|---|---|---|
auto_stop_machines | "stop" | "stop" for most, "suspend" for fast resume |
auto_start_machines | true | true for HTTP services |
min_machines_running | 0 | 1 for production (avoid cold starts) |
concurrency.soft_limit | 200 | Tune based on app capacity |
| Error | Cause | Solution |
|---|---|---|
failed to build | Dockerfile issue | Test locally: docker build . |
health check failed | App not responding on internal_port | Verify port matches app config |
no machines running | All stopped | Set min_machines_running = 1 |
For Postgres and volumes, see flyio-core-workflow-b.