Skip to content
inetGeek

Laravel on Fly.io

Fly.io publishes its own guide for deploying Laravel.

Compare Fly.io with

PHP web framework with an ORM, queue workers and a scheduler that expects a persistent process.

01.

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 4 of the 4.

Persistent processes

Supported — A stopped or suspended Machine still bills for its root filesystem at $0.15 per GB per month.

Queue workers and Horizon are long-running processes, not requests. They have to stay up between jobs.

Sources (1) →
  • 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

Managed databases

Supported

Eloquent, migrations and the default session and cache drivers all expect a relational database.

Sources (1) →
  • Pricing - Fly.io Documentation ↗

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

    Read 2026-09-27 · 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) →
  • 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) →

The requirement and the reason it matters are ours. Every value beside them was read from Fly.io's own pages — expand a source to see the sentence it came from.

02.

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) →

Laravel features on Fly.io

Capabilities Fly.io documents specifically for Laravel, with the constraint it documents alongside each.

laravel_scheduler

Supported

You may need to run Laravel's scheduler (via cron) or queue workers. [...] We can start the cron daemon, which is pre-configured to run php artisan schedule:run.

storage_disk_mount

Supported

To mount a volume named "storage_vol" to this Fly App [...] [mounts] source="storage_vol" destination="/var/www/html/storage"

managed_mysql

Limited

You can run your own MySQL Fly App, or set up a PlanetScale MySQL-compatible serverless database. [...] To run MySQL as a Fly App , follow our guide here .

native_php_runtime

Limited

This would detect that your project is built with Laravel. [...] Dockerfile - Used to build a container image that is run in fly

Sources (4) →
  • Cron and Queues · Fly Docs ↗

    “You may need to run Laravel's scheduler (via cron) or queue workers. [...] We can start the cron daemon, which is pre-configured to run php artisan schedule:run.”

    Read 2026-09-13 · official docs

  • Persisting the Storage Folder · Fly Docs ↗

    “To mount a volume named "storage_vol" to this Fly App [...] [mounts] source="storage_vol" destination="/var/www/html/storage"”

    Read 2026-09-13 · official docs

  • Laravel and MySQL · Fly Docs ↗

    “You can run your own MySQL Fly App, or set up a PlanetScale MySQL-compatible serverless database. [...] To run MySQL as a Fly App , follow our guide here .”

    Read 2026-09-13 · official docs

  • Laravel on Fly.io · Fly Docs ↗

    “This would detect that your project is built with Laravel. [...] Dockerfile - Used to build a container image that is run in fly”

    Read 2026-09-13 · official docs

03.

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) →
  • 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

04.

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.

Written by Palash Bagchi on 2026-09-05. This is a recommendation, not a sourced fact — it carries no citation because it is an opinion.

Visit Fly.io documentation

When these numbers change, hear about it. Sources are re-checked monthly; a repricing goes out as a short note.

Confirm by email; unsubscribe from any issue. Your address goes to Kit and nowhere else — what we do with it.

Every page here is sourced and dated.