flyio-core-workflow-a

'Execute Fly.io primary workflow: deploy, scale, and manage apps with

6 Tools
flyio-pack Plugin
saas packs Category

Allowed Tools

ReadWriteEditBash(fly:*)Bash(curl:*)Grep

Provided by Plugin

flyio-pack

Claude Code skill pack for Fly.io (18 skills)

saas packs v1.0.0
View Plugin

Installation

This skill is included in the flyio-pack plugin:

/plugin install flyio-pack@claude-code-plugins-plus

Click to copy

Instructions

Fly.io Core Workflow A: Deploy & Scale

Overview

The primary Fly.io workflow: configure fly.toml, deploy apps, manage secrets, scale across regions, and control machine lifecycle.

Instructions

Step 1: Configure fly.toml


# 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"

Step 2: Deploy and Manage Secrets


# 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

Step 3: Scale Across Regions


# 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

Step 4: Manage App Lifecycle


# 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

fly.toml Key Settings

Setting Default Recommended
autostopmachines "stop" "stop" for most, "suspend" for fast resume
autostartmachines true true for HTTP services
minmachinesrunning 0 1 for production (avoid cold starts)
concurrency.soft_limit 200 Tune based on app capacity

Error Handling

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 minmachinesrunning = 1

Resources

Next Steps

For Postgres and volumes, see flyio-core-workflow-b.

Ready to use flyio-pack?