Skip to content
Fly App performance optimization Docs
Need a Logo? View Our Brand Assets
Fly App performance optimization Docs
Pricing Support
Sign In Sign Up
Getting Started
  • Quickstart: Launch your app
  • Launch HelloFly Demo App
  • Deep Dive Demo App
  • Choose a Language or Framework
  • Fly.io Essentials
  • Migrate from Heroku
  • Troubleshoot Deployments
Guides (Blueprints)
  • Guides Overview
Apps on Fly.io
  • Fly Apps Overview
  • Fly Launch
  • Secrets
  • Production Checklist
Languages & Frameworks
  • Elixir
  • Rails
  • Laravel
  • Django
  • JavaScript
  • Rust
  • Python
  • More...
Fly Machines
  • Introduction to Fly Machines
  • Machines API
  • Run a New Machine
  • Update a Machine
  • Machine Sizing
  • Machine Restart Policy
  • Machine States
  • Run User Code on Fly Machines
  • One App Per Customer - Why?
  • The Machine Runtime Environment
Managed Postgres
  • Create and Connect to a Managed Postgres Cluster
  • Cluster Configuration Options
  • Phoenix with Managed Postgres
  • Monitoring and Metrics
  • Import data from another postgres cluster
  • Supported Postgres Extensions
Fly GPUs
  • GPU Quickstart
  • Getting Started with GPU Machines
  • Python GPU Dev Machine
Databases & Storage
  • Fly Managed Postgres
  • Tigris Object Storage
  • Upstash for Redis®
Fly Volumes
  • Fly Volumes Overview
  • Create and Manage Volumes
  • Manage Volume Snapshots
  • Volume States
Fly Kubernetes
  • Fly Kubernetes Quickstart
  • Fly Kubernetes Features
  • Create an FKS Cluster
  • Connect to an FKS Cluster
  • Configure FKS Services
  • Use GPUs with FKS
  • Use Volumes with FKS
Networking
  • Connect to an App Service
  • Public Networking
  • Private Networking
  • Custom Private Networks
  • Flycast - Private Proxy Services
  • Egress IP Addresses
  • Dynamic Request Routing
  • Custom Domains
  • Understanding Cloudflare
  • Request Headers
  • Run UDP Services
  • TLS Support
Monitoring
  • Metrics
  • Sentry Error Tracking
  • Logging
    • Live Tail Logs
    • Logs API Options
    • Search Logs
    • Export Logs
    • Error Codes
Security
  • Organization Roles and Permissions
  • SSO for Organizations
  • Remove a Member from an Org
  • TLS Termination
  • App Security by Arcjet
  • Access Tokens
  • OpenID Connect
  • Shared Responsibility Model
  • Security Practices and Compliance
Reference
  • flyctl
  • App Config Reference (fly.toml)
  • Architecture
  • Autoscaling
  • AWS to Fly Overview
  • Builders
  • Content Encoding
  • Fly Launch
  • Health Checks
  • Load Balancing
  • Machine Migration
  • Multiple Processes in Apps
  • Fly Proxy
  • Fly Proxy Autostop/Autostart
  • Regions
  • Suspend/Resume
About
  • Pricing
  • Billing
  • Cost Management
  • Free Trial
  • Support
  • Engineering Jobs
  • Healthcare on Fly.io
  • Extensions Program
  • Extensions API
  • Merch
  • Open Source
  • Using Our Brand
  • Privacy Policy
  • Terms of Service
--- title: "Fly.io developer documentation" layout: docs toc: false breadcrumbs: false nav: firecracker --- <div class="grid grid-cols-2 items-center"> <div> ## Ready to get started? **Step 1:** Install `flyctl` ```cmd brew install flyctl ``` <small>Not using `brew`? Check out the [installation guide](/docs/flyctl/install/)</small> **Step 2:** Run `fly launch` </div> <figure> <img src="/?originalUrl=https%3A%2F%2Ffly.io%2F%26quot%3B%2Fstatic%2Fimages%2Fdoc-main.png%26quot%3B%2520alt%3D%26quot%3BIllustration%2520by%2520Annie%2520Ruygt%2520of%2520Frankie%2520the%2520hot%2520air%2520balloon%2520waving%2520to%2520a%2520bird%2520sitting%2520on%2520a%2520hour%2520roof%26quot%3B%2520class%3D%26quot%3Bw-full%2520max-w-lg%2520mx-auto%26quot%3B%26gt%3B%2520%2520%26lt%3B%2Ffigure%26gt%3B%26lt%3B%2Fdiv%26gt%3B%23%23%2520Explore%2520Fly.io%2520by%2520features%26lt%3Bdiv%2520class%3D%26quot%3Bnote%26quot%3B%26gt%3B%2520%2520%26lt%3Bul%2520class%3D%26quot%3Bgrid%2520grid-cols-2%2520sm%3Agrid-cols-3%2520text-lg%2520font-medium%2520gap-6%2520px-4%2520py-6%26quot%3B%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fmachines%2F%26quot%3B%26gt%3BFly%2520Machines%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fvolumes%2F%26quot%3B%26gt%3BFly%2520Volumes%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fsecurity%2F%26quot%3B%26gt%3BSecurity%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fgpus%2F%26quot%3B%26gt%3BFly%2520GPUs%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fnetworking%2F%26quot%3B%26gt%3BNetworking%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fmpg%2F%26quot%3B%26gt%3BManaged%2520Postgres%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fkubernetes%2F%26quot%3B%26gt%3BFly%2520Kubernetes%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fdatabase-storage-guides%2F%26quot%3B%26gt%3BDatabase%2520%26amp%3B%2520Storage%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3Bli%26gt%3B%26lt%3Ba%2520href%3D%26quot%3B%2Fdocs%2Fmonitoring%2F%26quot%3B%26gt%3BMonitoring%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fli%26gt%3B%2520%2520%26lt%3B%2Ful%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bdiv%2520class%3D%26quot%3Bgrid%2520grid-cols-2%2520py-8%26quot%3B%26gt%3B%2520%2520%26lt%3Bdiv%26gt%3B%23%23%2520Get%2520answers%2520in%2520your%2520languageOr%2520framework.%2520You%2520know%2520what%2520we%2520mean.%2520Check%2520out%2520the%2520docs%2520specific%2520to%2520your%2520tech%2520so%2520you%2520can%2520move%2520faster.%2520%2520%26lt%3B%2Fdiv%26gt%3B%2520%2520%26lt%3Bdiv%2520class%3D%26quot%3Bh-full%26quot%3B%26gt%3B%2520%2520%2520%2520%26lt%3Bdiv%2520class%3D%26quot%3Bgrid%2520grid-cols-3%2520h-full%2520gap-2%26quot%3B%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Felixir%2Fgetting-started%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520Phoenix%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Flanguages-and-frameworks%2Fstatic%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520Static%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Frails%2Fgetting-started%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520Ruby%2520on%2520Rails%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Flanguages-and-frameworks%2Fdockerfile%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520Docker%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Flanguages-and-frameworks%2Fgolang%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520Go%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Frust%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520Rust%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Fdjango%2Fgetting-started%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520Django%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Flaravel%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520Laravel%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Ba%2520%2520%2520%2520%2520%2520%2520%2520href%3D%26quot%3B%2Fdocs%2Fjs%2F%26quot%3B%2520%2520%2520%2520%2520%2520%2520%2520class%3D%26quot%3Bbtn%2520h-full%2520rounded-xl%26quot%3B%2520%2520%2520%2520%2520%2520%26gt%3B%2520%2520%2520%2520%2520%2520%2520%2520JavaScript%2520%2520%2520%2520%2520%2520%26lt%3B%2Fa%26gt%3B%2520%2520%2520%2520%26lt%3B%2Fdiv%26gt%3B%2520%2520%26lt%3B%2Fdiv%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bdiv%2520class%3D%26quot%3Bflex%2520justify-center%26quot%3B%26gt%3B%23%23%2520How%2520does%2520Fly.io%2520work%3F%26lt%3B%2Fdiv%26gt%3B%26lt%3Bfigure%26gt%3B%2520%2520%26lt%3Bimg%2520src%3D%26quot%3B%2Fstatic%2Fimages%2Ffly-map.png%26quot%3B%2520alt%3D%26quot%3B%26quot%3B%2520class%3D%26quot%3Bw-full%26quot%3B%26gt%3B%26lt%3B%2Ffigure%26gt%3B%26lt%3Bdiv%2520class%3D%26quot%3Bgrid%2520grid-cols-2%2520items-center%26quot%3B%26gt%3B%2520%2520%26lt%3Bfigure%26gt%3B%2520%2520%2520%2520%26lt%3Bimg%2520src%3D%26quot%3B%2Fstatic%2Fimages%2Fhelp.png%26quot%3B%2520alt%3D%26quot%3BIllustration%2520by%2520Annie%2520Ruygt%2520of%2520Frankie%2520the%2520hot%2520air%2520balloon%2520waving%2520to%2520a%2520bird%2520sitting%2520on%2520a%2520hour%2520roof%26quot%3B%2520class%3D%26quot%3Bw-full%2520max-w-lg%2520mx-auto%26quot%3B%26gt%3B%2520%2520%26lt%3B%2Ffigure%26gt%3B%2520%2520%26lt%3Bdiv%2520class%3D%26quot%3Bspace-y-2%26quot%3B%26gt%3B%2520%2520%2520%2520%26lt%3Bh2%26gt%3BCould%2520you%2520use%2520more%2520help%3F%26lt%3B%2Fh2%26gt%3B%2520%2520%2520%2520%26lt%3Bp%26gt%3BOur%2520Community%2520forum%2520and%2520Support%2520team%2520have%2520the%2520answers.%26lt%3B%2Fp%26gt%3B%2520%2520%26lt%3B%2Fdiv%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bdiv%2520class%3D%26quot%3Bgrid%2520grid-cols-2%2520gap-6%26quot%3B%26gt%3B%2520%2520%26lt%3Bdiv%2520class%3D%26quot%3Bnote%26quot%3B%26gt%3B%2520%2520%2520%2520%26lt%3Bh3%26gt%3BCommunity%2520Forum%26lt%3B%2Fh3%26gt%3B%2520%2520%2520%2520%26lt%3Bul%2520class%3D%26quot%3Bml-1%26quot%3B%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BFree%2520to%2520use%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BDiscuss%2520Fly.io%2520with%2520other%2520users%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BSee%2520new%2520Fly.io%2520developments%2520first%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BSearchable%2520backlog%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BQuick%2520answers%2520to%2520common%2520issues%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3B%2Ful%26gt%3B%2520%2520%2520%2520%26lt%3Ba%2520href%3D%26quot%3Bhttps%3A%2F%2Fcommunity.fly.io%26quot%3B%2520class%3D%26quot%3Bbtn%2520mt-4%26quot%3B%26gt%3BLearn%2520more%26lt%3B%2Fa%26gt%3B%2520%2520%26lt%3B%2Fdiv%26gt%3B%2520%2520%26lt%3Bdiv%2520class%3D%26quot%3Bnote%26quot%3B%26gt%3B%2520%2520%2520%2520%26lt%3Bh3%26gt%3BSupport%26lt%3B%2Fh3%26gt%3B%2520%2520%2520%2520%26lt%3Bul%2520class%3D%26quot%3Bml-1%26quot%3B%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BPlans%2520start%2520at%2520%2429%2Fmonth%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BGuaranteed%2520response%2520time%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BRun%2520by%2520Fly.io%2520engineers%2C%2520not%2520chat%2520bots%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BTechnical%2520architecture%2520support%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%2520%2520%26lt%3Bli%26gt%3BPublic%2520metrics%26lt%3B%2Fli%26gt%3B%2520%2520%2520%2520%26lt%3B%2Ful%26gt%3B%2520%2520%2520%2520%26lt%3Ba%2520href%3D%26quot%3Bhttps%3A%2F%2Ffly.io%2Fsupport%26quot%3B%2520class%3D%26quot%3Bbtn%2520mt-4%26quot%3B%26gt%3BLearn%2520more%26lt%3B%2Fa%26gt%3B%2520%2520%26lt%3B%2Fdiv%26gt%3B%26lt%3B%2Fdiv%26gt%3B%253C%2Fdiv">

Fly.io developer documentation

Ready to get started?

Step 1: Install flyctl

brew install flyctl

Not using brew? Check out the installation guide

Step 2: Run fly launch

Illustration by Annie Ruygt of Frankie the hot air balloon waving to a bird sitting on a hour roof

Explore Fly.io by features

  • Fly Machines
  • Fly Volumes
  • Security
  • Fly GPUs
  • Networking
  • Managed Postgres
  • Fly Kubernetes
  • Database & Storage
  • Monitoring

Get answers in your language

Or framework. You know what we mean. Check out the docs specific to your tech so you can move faster.

Phoenix Static Ruby on Rails Docker Go Rust Django Laravel JavaScript

How does Fly.io work?

Illustration by Annie Ruygt of Frankie the hot air balloon waving to a bird sitting on a hour roof

Could you use more help?

Our Community forum and Support team have the answers.

Community Forum

  • Free to use
  • Discuss Fly.io with other users
  • See new Fly.io developments first
  • Searchable backlog
  • Quick answers to common issues
Learn more

Support

  • Plans start at $29/month
  • Guaranteed response time
  • Run by Fly.io engineers, not chat bots
  • Technical architecture support
  • Public metrics
Learn more

or Open in ChatGPT
Report an issue or edit this page on GitHub