Skip to content
inetGeek

Fly.io

Runs Docker images as lightweight VMs in chosen regions, billed on provisioned resources rather than plan tiers.

No affiliate links, sponsored placements or paid rankings appear on this site. Ordering follows the sourced data and the stated criteria.

Updated 16 criteria compared

Category
paas
Free tier
Not documented
Entry paid plan
Not documented
Regions
18 regions
01.

Who it suits.

Workloads that ship as Docker images and need placement in particular regions. Billing is purely usage-based with no plan tiers, which suits spiky or region-pinned traffic better than a flat monthly fee.

Consider something else if…

You want a predictable flat bill rather than charges that track the resources provisioned for each app.

Editorial · Palash Bagchi · approved

02.

What the documentation says.

Each value below links to the page it was read from, with the sentence it came from. Criteria Fly.io does not publish are not listed.

Pricing

Pricing model

Usage-based, no compute plan tiers

Sources (1) →
  • Fly.io pricing ↗

    “Plans get complicated, so we just charge based on usage. Billing is based on the resources provisioned for your apps, pro-rated for the time they are provisioned.”

    Read 2026-09-05 · official docs

Egress over allowance

$0.02 per GB (North America / Europe); $0.04 per GB (Asia Pacific / Oceania / South America); $0.12 per GB (Africa / India)

Sources (1) →
  • Pricing · Fly Docs ↗

    “We bill for data leaving your app destined for the public internet or for apps or Machines in other regions — Egress to Internet: North America / Europe $0.02 per GB; Asia Pacific / Oceania / South America $0.04 per GB; Africa / India $0.12 per GB.”

    Read 2026-09-05 · official pricing

When you exceed a cap

No plan cap to exceed — Fly bills per second for provisioned resources. The only documented enforcement is unspecified automated scaling limits, which surface as an error message (platform-wide, all plans)

Sources (1) →
  • Fly.io Resource Pricing · Fly Docs ↗

    “Organizations may be subject to automated scaling limits to prevent abuse or to help with capacity planning. Email the address in the error message if you run into such a limit and it's getting in your way.”

    Read 2026-09-05 · official pricing

Limits

Memory (entry plan)

256MB on shared-cpu-1x, the smallest Machine size ($2.02/month at the Amsterdam-region rate shown in the pricing table)

Sources (1) →

File or inode limit

8 GB rootfs (deployed image) limit per Machine, platform-wide on all plans; exceeding it fails the image push at deploy time

Sources (1) →

Execution

CPU time limit

Platform-wide, per Machine size: shared vCPUs get a 5ms CPU quota per 80ms period (6.25%); performance vCPUs get the full 80ms. Quotas are shared across a Machine's vCPUs, and tasks are throttled for the rest of the period once the quota is reached.

Sources (1) →
  • CPU Performance ↗

    “For each 80ms period of time, we set a quota of 5ms for each shared vCPU, or the full 80ms period for each performance vCPU. If your machine cgroup's CPU usage reaches its quota, its tasks will be 'throttled' (not scheduled to run again) for the remainder of the 80ms period. Quotas are shared between a Machine's vCPUs. For example, a shared-cpu-2x Machine is allowed to run for 10ms per 80ms period, regardless of which vCPU is using that time.”

    Read 2026-09-05 · official docs

Streaming response limit

No duration or size ceiling documented. Streaming works, but Fly Proxy buffers responses before compressing them, so progressive server-side rendering needs Content-Encoding: none set on those responses.

Sources (1) →
  • Content Encoding — Fly Docs ↗

    “The proxy buffers responses before compressing them. That can break HTML streaming—e.g., progressive server-side rendering. To avoid buffering, disable compression by setting Content-Encoding: none for those responses”

    Read 2026-09-05 · official docs

Managed connection pooling

Supported

Sources (1) →
  • Cluster configuration options ↗

    “All Managed Postgres clusters come with PGBouncer for connection pooling, which helps manage database connections efficiently. You can configure how PGBouncer assigns connections to clients by changing the pool mode.”

    Read 2026-09-05 · official docs

Deployment

Docker deployment

Supported

Sources (1) →
  • Deploy a Fly.io app ↗

    “fly deploy builds, or gets, the Docker image for the app, and refreshes Machines with the latest changes. If there's a Dockerfile in the local working directory, use that Dockerfile for the build.”

    Read 2026-09-05 · official docs

Scheduled jobs

Limited

Sources (1) →
  • fly machine run · Fly Docs ↗

    “Use the --schedule flag to set the Machine's config.schedule property, which starts the Machine on a fuzzy hourly, daily, weekly, or monthly cycle.”

    Read 2026-09-05 · official docs

Infrastructure

Persistent storage

Supported

Sources (1) →

Managed databases

Supported

Sources (1) →
  • Fly.io pricing ↗

    “The price of running Fly.io Managed Postgres depends on your selected Managed Postgres Plan and the amount of storage your Postgres cluster has.”

    Read 2026-09-05 · official docs

Edge network

Limited

Sources (1) →
  • The Fly.io Architecture — Fly Docs ↗

    “We broadcast and accept traffic from ranges of IP addresses (both IPv4 and IPv6) in all our datacenters. When we receive a connection on one of those IPs, we match it back to an active customer application, and then proxy the TCP connection to the closest available microVM.”

    Read 2026-09-05 · official docs

Scales to zero

Supported

Sources (1) →
  • Automatically stop and start Machines · Fly Docs ↗

    “Use autostop/autostart to automatically start and stop or suspend existing Machines based on incoming requests. [...] you don't pay for their CPU and RAM when they're in a stopped or suspended state.”

    Read 2026-09-05 · official docs

Autoscaling

Limited

Sources (1) →
  • Autoscaling · Fly Docs ↗

    “Autoscaling adjusts the number of running or created Fly Machines dynamically. We support two forms of autoscaling: Autostop/autostart Machines and Metrics-based autoscaling. [...] Fly Proxy autostop/autostart starts and stops Machines based on load; Machines are never created or deleted. [...] The metrics-based autoscaler scales your application based on any metric. You deploy the autoscaler as an app in your organization.”

    Read 2026-09-05 · official docs

Regions

18 regions

Sources (1) →
  • Fly.io regions ↗

    “You can host your apps in any of the following regions — including ams (Amsterdam, Netherlands), nrt (Tokyo, Japan) and syd (Sydney, Australia).”

    Read 2026-09-05 · official docs