Laravel on Fly.io
Fly.io publishes its own guide for deploying Laravel.
PHP web framework with an ORM, queue workers and a scheduler that expects a persistent process.
What Laravel needs.
Every host claims to run Laravel, so the claim on its own decides nothing. These are the things Laravel actually requires from the platform underneath it, and what Fly.io publishes about each. Fly.io documents 3 of the 4.
Persistent processes
Not documented
Queue workers and Horizon are long-running processes, not requests. They have to stay up between jobs.
Managed databases
Supported
Eloquent, migrations and the default session and cache drivers all expect a relational database.
Sources (1) →Sources ↓
- 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
Scheduled jobs
Limited
Laravel's scheduler is one cron entry calling schedule:run every minute. Without cron, nothing scheduled ever fires.
Sources (1) →Sources ↓
- 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
Persistent storage
Supported
The default filesystem disk writes uploads under storage/app. On an ephemeral filesystem those files disappear at the next deploy.
Sources (1) →Sources ↓
- Fly Volumes overview · Fly Docs ↗
“Fly Volumes are local persistent storage for Fly Machines.”
Read 2026-09-05 · official docs
What Fly.io documents.
Fly.io publishes its own guide for deploying Laravel.
We're about to launch your Laravel app on Fly.io. Here's what you're getting:
Sources (1) →Sources ↓
- Laravel on Fly.io · Fly Docs ↗
“We're about to launch your Laravel app on Fly.io. Here's what you're getting:”
Read 2026-09-05 · official docs
What it costs to run there.
- Pricing model
- Usage-based, no compute plan tiers
- 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
- 18 regions
Sources (2) →Sources ↓
- 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
- 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
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