Skip to content
inetGeek

Laravel on Heroku

Heroku publishes its own guide for deploying Laravel.

Compare Heroku 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 Heroku publishes about each. Heroku documents 4 of the 4.

Persistent processes

Supported

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

Sources (1) →
  • Dynos (App Containers) | Heroku Dev Center ↗

    “Worker dynos are typically used to run background jobs, queueing systems, and timed jobs. You can have multiple kinds of worker dynos in your application.”

    Read 2026-09-05 · official docs

Managed databases

Supported

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

Sources (1) →
  • Heroku Postgres | Heroku Dev Center ↗

    “Heroku Postgres is a managed SQL database service provided directly by Heroku. You can access a Heroku Postgres database from any language with a PostgreSQL driver, including all languages Heroku officially supports.”

    Read 2026-09-05 · official docs

Scheduled jobs

Supported

Laravel's scheduler is one cron entry calling schedule:run every minute. Without cron, nothing scheduled ever fires.

Sources (1) →
  • Heroku Scheduler | Heroku Dev Center ↗

    “Scheduler is a free add-on for running jobs on your app at scheduled time intervals, much like cron in a traditional server environment.”

    Read 2026-09-05 · official docs

Persistent storage

Not supported

The default filesystem disk writes uploads under storage/app. On an ephemeral filesystem those files disappear at the next deploy.

Sources (1) →
  • Dynos (App Containers) | Heroku Dev Center ↗

    “Each dyno gets its own ephemeral filesystem, with a fresh copy of the most recently deployed code. During the dyno's lifetime, its running processes can use the filesystem as a temporary scratchpad, but no files that are written are visible to processes in any other dyno.”

    Read 2026-09-05 · official docs

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

02.

What Heroku documents.

Heroku publishes its own guide for deploying Laravel.

This guide will walk you through the configuration and deployment of a Laravel 5 application.

Sources (1) →

Laravel features on Heroku

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

laravel_scheduler

Limited

Scheduler is a free add-on for running jobs on your app at scheduled time intervals, much like cron in a traditional server environment. [...] Once you access its interface, a dashboard will allow you to configure jobs to run every 10 minutes, every hour, or every day, at a specified time.

storage_disk_mount

Not supported

By default, Laravel will log errors and messages into a directory on disk, which isn't ideal, because Heroku uses an ephemeral filesystem and treats logs as streams of events across all running dynos.

managed_mysql

Limited

Although Heroku Postgres is the recommended relational database for Heroku apps because of its tight integration with the platform, there are options for applications that currently run on MySQL. [...] If your application uses MySQL-specific features, there are a number of MySQL providers in the Heroku Add-ons marketplace you can use instead of Heroku Postgres.

native_php_runtime

Supported

Heroku supports PHP applications, including ones built with popular frameworks like Laravel and Symfony. [...] Heroku allows you to run your application using the official PHP runtime.

Sources (4) →
  • Heroku Scheduler | Heroku Dev Center ↗

    “Scheduler is a free add-on for running jobs on your app at scheduled time intervals, much like cron in a traditional server environment. [...] Once you access its interface, a dashboard will allow you to configure jobs to run every 10 minutes, every hour, or every day, at a specified time.”

    Read 2026-09-13 · official docs

  • Getting Started with Laravel on Heroku | Heroku Dev Center ↗

    “By default, Laravel will log errors and messages into a directory on disk, which isn't ideal, because Heroku uses an ephemeral filesystem and treats logs as streams of events across all running dynos.”

    Read 2026-09-13 · official docs

  • Migrating from MySQL to Postgres on Heroku | Heroku Dev Center ↗

    “Although Heroku Postgres is the recommended relational database for Heroku apps because of its tight integration with the platform, there are options for applications that currently run on MySQL. [...] If your application uses MySQL-specific features, there are a number of MySQL providers in the Heroku Add-ons marketplace you can use instead of Heroku Postgres.”

    Read 2026-09-13 · official docs

  • Heroku PHP Support Reference | Heroku Dev Center ↗

    “Heroku supports PHP applications, including ones built with popular frameworks like Laravel and Symfony. [...] Heroku allows you to run your application using the official PHP runtime.”

    Read 2026-09-13 · official docs

03.

What it costs to run there.

Entry paid plan
$5 per month (Eco dynos plan, 1000 dyno hours shared across the account)
Pricing model
Usage-based on wall-clock time, prorated to the second
When you exceed a cap
Service sleeps: on the Eco plan ($5/month for a 1000 dyno-hour pool, the cheapest paid tier) exhausting the pool forces every Eco dyno on the account to sleep for the rest of the month, and extra hours cannot be bought
Regions
2 regions on the Common Runtime, which is what a standard dyno runs in: eu (Europe) and us (United States). A further 10 — Dublin, Frankfurt, London, Montreal, Mumbai, Oregon, Singapore, Sydney, Tokyo and Virginia — exist only in Private Spaces, an Enterprise product.
Sources (3) →
  • Eco Dyno Hours | Heroku Dev Center ↗

    “The Eco dynos plan provides 1000 dyno hours for $5 per month. This dyno hours pool is shared by all Eco dynos in your account.”

    Read 2026-09-05 · official docs

  • Usage & Billing | Heroku Dev Center ↗

    “Heroku computes usage from wall-clock time, not CPU time. Any dynos scaled above 0 accrue usage, regardless of traffic or activity. Heroku prorates all costs to the second.”

    Read 2026-09-05 · official docs

  • Regions | Heroku Dev Center ↗

    “eu Europe Common Runtime us United States Common Runtime dublin Dublin, Ireland Private Spaces frankfurt Frankfurt, Germany Private Spaces london London, United Kingdom Private Spaces montreal Montreal, Canada Private Spaces mumbai Mumbai, India Private Spaces oregon Oregon, United States Private Spaces singapore Singapore Private Spaces sydney Sydney, Australia Private Spaces tokyo Tokyo, Japan Private Spaces virginia Virginia, United States Private Spaces”

    Read 2026-09-05 · official docs

04.

Whether it suits you.

Teams that want to deploy by pushing to Git and let the platform handle the runtime, with Postgres, a scheduler and Docker deploys available on the same platform.

Consider something else if…

The dyno filesystem is ephemeral, and a web process must respond within 30 seconds of receiving a request.

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 Heroku 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.