Node.js on Fly.io
Fly.io publishes its own guide for deploying Node.js.
JavaScript runtime used to run servers and build tooling outside the browser.
What Node.js needs.
Every host claims to run Node.js, so the claim on its own decides nothing. These are the things Node.js actually requires from the platform underneath it, and what Fly.io publishes about each. Fly.io documents 3 of the 4.
Persistent processes
Supported — A stopped or suspended Machine still bills for its root filesystem at $0.15 per GB per month.
A long-running process is the point: WebSocket connections, in-memory caches and job queues all die with it. A host that only runs functions cannot keep one alive.
Sources (1) →Sources ↓
- Billing - Fly.io Documentation ↗
“If you provision Machines and leave them running all month, we'll charge you a predictable amount for that Machine. [...] Stopped and suspended Machines are billed based on their root file system (rootfs) usage per second (the time they spend in the stopped or suspended state) by $0.15 per GB per month.”
Read 2026-09-27 · official docs
Max request duration
Not documented
Anything the process does inside a request — a large upload, a slow query, a streamed response — is bounded by this ceiling.
Docker deployment
Supported
Node apps routinely need a system binary the platform's buildpack does not ship. A Dockerfile is the escape hatch when they do.
Sources (1) →Sources ↓
- Deploy an app - Fly.io Documentation ↗
“the fly deploy flyctl command builds your app and spins it up on one or more Fly Machines, applying the configuration specified in a local fly.toml file. [...] fly deploy builds, or gets, the Docker image for the app, and refreshes Machines with the latest changes.”
Read 2026-09-27 · official docs
Scales to zero
Supported
An always-on process bills while idle. Scaling to zero removes that cost and adds a cold start to the next request instead.
Sources (1) →Sources ↓
- 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
What Fly.io documents.
Fly.io publishes its own guide for deploying Node.js.
The Basics covers everything you need to set up, run, and manage production Node.js apps on Fly.
Sources (1) →Sources ↓
- JavaScript on Fly.io · Fly Docs ↗
“The Basics covers everything you need to set up, run, and manage production Node.js apps on Fly.”
Read 2026-09-05 · official docs
Node.js features on Fly.io
Capabilities Fly.io documents specifically for Node.js, with the constraint it documents alongside each.
background_workers
Supported
Instead, you should offload that work to a background worker. [...] BullMQ is a Redis-backed queue system for Node.js apps.
ssh_shell_access
Supported
Use SSH to log into or run commands on Machines [...] Connect to a running instance of the current app.
Sources (2) →Sources ↓
- Deferring long-running tasks to a distributed work queue · Fly Docs ↗
“Instead, you should offload that work to a background worker. [...] BullMQ is a Redis-backed queue system for Node.js apps.”
Read 2026-09-13 · official docs
- fly ssh · Fly Docs ↗
“Use SSH to log into or run commands on Machines [...] Connect to a running instance of the current app.”
Read 2026-09-13 · official docs
What it costs to run there.
- Pricing model
- Usage-based, no compute plan tiers; billing is pro-rated for the time resources are provisioned.
- 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)
- Regions
- 17 regions
Sources (2) →Sources ↓
- Pricing — Fly.io Docs ↗
“Plans get complicated, so we just charge based on usage. Pick and choose which pieces you need for your application; that's all you'll see on your invoice.”
Read 2026-09-14 · official docs
- Regions - Fly.io Documentation ↗
“You can host your apps in any of the following regions. Region ID Region Location Gateway MPG ams Amsterdam, Netherlands ✓ ✓ arn Stockholm, Sweden ✓ cdg Paris, France ✓ dfw Dallas, Texas (US) ✓ ✓ ewr Secaucus, NJ (US) ✓ fra Frankfurt, Germany ✓ ✓ gru Sao Paulo, Brazil ✓ iad Ashburn, Virginia (US) ✓ ✓ jnb Johannesburg, South Africa lax Los Angeles, California (US) ✓ ✓ lhr London, United Kingdom ✓ ✓ nrt Tokyo, Japan ✓ ✓ ord Chicago, Illinois (US) ✓ ✓ sin Singapore, Singapore ✓ ✓ sjc San Jose, California (US) ✓ ✓ syd Sydney, Australia ✓ ✓ yyz Toronto, Canada ✓ ✓”
Read 2026-09-27 · official docs
Whether it suits you.
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.
Visit Fly.io documentation