🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Fly.io CLI

by @justinburdett

Use the Fly.io flyctl CLI for deploying and operating apps on Fly.io. Default to read-only diagnostics (status/logs/config/releases). Only perform state-changing operations (deploys, SSH exec, secrets, scaling, machines, volumes, Postgres changes) with explicit user approval. Use when asked to deploy to Fly.io, debug fly deploy/build/runtime failures, set up GitHub Actions deploys/previews, or safely manage Fly apps and Postgres.

Versionv1.0.3
Downloads2,883
Installs5
Stars1
TERMINAL
clawhub install flyio-cli

📖 About This Skill


name: flyio-cli description: "Use the Fly.io flyctl CLI for deploying and operating apps on Fly.io. Default to read-only diagnostics (status/logs/config/releases). Only perform state-changing operations (deploys, SSH exec, secrets, scaling, machines, volumes, Postgres changes) with explicit user approval. Use when asked to deploy to Fly.io, debug fly deploy/build/runtime failures, set up GitHub Actions deploys/previews, or safely manage Fly apps and Postgres."

Fly.io (flyctl) CLI

Operate Fly.io apps safely and repeatably with flyctl.

Defaults / safety

  • Prefer read-only commands first: fly status, fly logs, fly config show, fly releases, fly secrets list.
  • Do not edit/modify Fly.io apps, machines, secrets, volumes, or databases without your human’s explicit approval.
  • - Read-only actions are OK without approval. - Destructive actions (destroy/drop) always require explicit approval.
  • When debugging builds, capture the exact error output and determine whether it’s a:
  • - build/packaging issue (Dockerfile, Gemfile.lock platforms, assets precompile) - runtime issue (secrets, DB, migrations) - platform issue (regions, machines, health checks)

    Quick start (typical deploy)

    From the app repo directory:

    1) Confirm which app you’re targeting

  • fly app list
  • fly status -a
  • Check fly.toml for app = "..."
  • 2) Validate / inspect (read-only)

  • fly status -a
  • fly logs -a
  • fly config show -a
  • (Deploys are in High-risk operations below and require explicit user approval.)

    Debugging deploy/build failures

    Common checks

  • fly deploy --verbose (more build logs)
  • If using Dockerfile builds: verify Dockerfile Ruby/version and Gemfile.lock platforms match your builder OS/arch.
  • Rails + Docker + native gems (nokogiri, pg, etc.)

    Symptoms: Bundler can’t find a platform gem like nokogiri-…-x86_64-linux during build.

    Fix pattern:

  • Ensure Gemfile.lock includes the Linux platform used by Fly’s builder (usually x86_64-linux).
  • - Example: bundle lock --add-platform x86_64-linux
  • Ensure Dockerfile’s Ruby version matches .ruby-version.
  • (See references/rails-docker-builds.md.)

    Logs & config (read-only)

  • Stream logs:
  • - fly logs -a
  • Show config:
  • - fly config show -a
  • List secrets (names only):
  • - fly secrets list -a

    High-risk operations (ask first)

    These commands can execute arbitrary code on servers or mutate production state. Only run them when the user explicitly asks you to.

  • Deploy:
  • - fly deploy / fly deploy --remote-only
  • SSH exec / console:
  • - fly ssh console -a -C ""
  • Secrets changes:
  • - fly secrets set -a KEY=value

    See references/safety.md.

    Fly Postgres basics

    Identify the Postgres app

  • fly postgres list
  • Attach Postgres to an app

  • fly postgres attach -a
  • Create a database inside the cluster

  • fly postgres db create -a
  • fly postgres db list -a
  • Connect (psql)

  • fly postgres connect -a
  • GitHub Actions deploys / previews

  • For production CD: use Fly’s GitHub Action (superfly/flyctl-actions/setup-flyctl) and run flyctl deploy.
  • For PR previews:
  • - Prefer one preview app per PR and one database per PR inside a shared Fly Postgres cluster. - Automate create/deploy/comment on PR; destroy on close.

    (See references/github-actions.md.)

    Bundled resources

  • references/safety.md: safety rules (read-only by default; ask before mutating state).
  • references/rails-docker-builds.md: Rails/Docker/Fly build failure patterns + fixes.
  • references/github-actions.md: Fly deploy + preview workflows.
  • scripts/fly_app_from_toml.sh: tiny helper to print the Fly app name from fly.toml (shell-only; no ruby).