Skip to content

Laravel Herd for Linux

Laravel Herd does not run on Linux. It ships as a macOS application and a Windows application, both built around native platform binaries and a native desktop app. There is no Linux build, no .deb, no .rpm, no AppImage, and no announced plan for one, which is why "Laravel Herd for Linux" is a question that keeps coming up.

If you have moved to Linux, or your team is on Herd and you are not, Lerd is the closest equivalent. Same idea: one tool that gives every project a .test URL, HTTPS, a PHP version and the services it needs, with nothing to configure per project. MIT licensed, free for commercial use, on Linux and macOS.

bash
curl -fsSL https://lerd.sh/install.sh | bash
cd ~/code/myapp
lerd link

Your project is live at https://myapp.test. That is the whole setup.

Every Herd feature, and the Lerd equivalent

What you used in HerdThe same thing in Lerd
herd park ~/Herd, every folder inside becomes a sitelerd park ~/code, same model, every project inside is served
herd link, serve the current directorylerd link, plus framework detection and PHP version picked from composer.json
Automatic .test domains through the native resolverAutomatic .test domains through a dnsmasq container wired into your system resolver, no /etc/hosts edits
The Secure Site togglelerd secure, a real mkcert certificate trusted by your system and browsers
herd isolate php@8.4, PHP version per sitelerd isolate 8.4, or auto-detected, PHP 7.4 and 8.0 to 8.5
herd php, herd composer, always the site's versionlerd php, lerd composer, lerd php:shell, on the version that site is registered on
Services, MySQL, PostgreSQL, Redis, Mailpitlerd service start mysql, plus PostgreSQL, Redis, Meilisearch, MongoDB, RustFS (S3) and Mailpit, shared across every site
The database inspector, log viewer and dumps window in Herd ProThe same surfaces in the web dashboard, free: databases, live logs, the dump viewer and the query viewer
The Xdebug togglelerd xdebug:on, a tray toggle and a dashboard switch
herd share, expose a site publiclylerd share, over ngrok, cloudflared, Expose, serveo or localhost.run, or on your LAN with a QR code
herd.yml committed to the repo.lerd.yaml committed to the repo, covering PHP, Node, framework, services, workers and custom containers
The Herd desktop appA web dashboard at 127.0.0.1:7073, a system tray and a terminal dashboard
Octane, run manually alongside Herdlerd runtime frankenphp --worker, FrankenPHP and Octane worker mode per site
Queue workers, run with supervisor or by handlerd worker start queue and schedule, as systemd user services, with self-heal

Lerd vs Laravel Herd

LerdLaravel Herd
PlatformsLinux (systemd), macOS, Windows via WSL2 (beta)macOS, Windows
LicenseOpen source (MIT), free for commercial useProprietary, freemium with a Herd Pro subscription
CostFree, no paid tierFree tier plus paid Pro subscription
StackNginx, PHP-FPM and services as rootless Podman containersNative binaries on macOS and Windows
PHP versions7.4, 8.0 to 8.5, shared FPM containers7.4 through 8.5, native
.test domainsAutomatic, through a dnsmasq containerAutomatic, through the native dnsmasq resolver
HTTPSlerd secure and mkcert, trusted system-wideBuilt-in Secure Site toggle
FrankenPHP / OctaneBuilt in, lerd runtime frankenphp [--worker] per site, freeNot built in, Octane runs manually alongside Herd
Xdebuglerd xdebug:on, tray togglePer-site toggle in Herd Pro
ServicesBuilt in and free, with add-ons fetched from a store that updates without a new releaseSome in the free tier, most advanced services and UIs behind Herd Pro
Queue and scheduler workerslerd worker start queue / schedule, systemd user servicesNot built in, run Horizon or supervisor yourself
Per-project config.lerd.yaml, covering PHP, Node, framework, services, workers and custom containersherd.yml, covering name, PHP, TLS and aliases on the free tier, services need Pro
Non-PHP projectsFirst-class through Containerfile.lerd or a host-proxy siteNot directly supported, Herd focuses on PHP
DashboardWeb UI, system tray, terminal dashboard, installable PWANative desktop app
AI / MCPBuilt-in MCP serverBuilt-in MCP server

Choose Herd when: you work on macOS or Windows, you want native binaries with no container layer, you are already in the Laravel Forge and Envoyer ecosystem, or you are happy paying for Pro.

Choose Lerd when: you work on Linux, where Herd has no build at all, you prefer open source with no paid tier, you want the environment itself committed to the repo, or you need workers, non-PHP projects and profiling in the same tool.

Moving from Herd to Lerd

Nothing inside your projects has to change. Lerd reads them where they are, and the command names line up closely enough that muscle memory mostly carries over.

1. Copy the projects across. Everything in ~/Herd can go anywhere on Linux, for example ~/code. There is no document root to respect.

2. Export your databases before you leave the machine Herd is on:

bash
mysqldump -u root myapp > myapp.sql

3. Install Lerd and start it.

bash
curl -fsSL https://lerd.sh/install.sh | bash
lerd start

4. Park or link. If you kept everything under one directory, park it once and every project inside is served:

bash
lerd park ~/code

Or link a single project:

bash
cd ~/code/myapp
lerd link

Lerd detects the framework, picks the PHP version from composer.json, writes the nginx vhost, registers myapp.test and provisions the certificate. Use lerd init instead if you want to choose the PHP version, HTTPS and services through a wizard and save the answers to .lerd.yaml.

5. Restore the database.

bash
lerd service start mysql
lerd db:import myapp.sql

6. Point the app at the shared services. lerd env rewrites the .env database, cache and mail entries to match the services lerd is running, so DB_HOST, REDIS_HOST and MAIL_HOST line up without you editing them by hand.

7. Keep herd.yml if the team still uses it. Lerd ignores it and reads .lerd.yaml, so both can sit in the repo. The PHP version and site name carry over directly.

Full detail lives in the quick start and the site management guide.

What is genuinely different

Worth knowing before you switch, these are the places where the mental model changes:

  • Containers, not native binaries. PHP and the services run in rootless Podman containers. On Linux the overhead is negligible, on macOS Podman Machine costs you a sliver of the native performance Herd gets. What you gain is isolation and a stack that is identical on both.
  • Services are shared, not per project. One MySQL, one Redis, one Mailpit across every site, which is why five running projects cost around 200 MB of RAM rather than five full stacks.
  • Nothing is gated. The database browser, log viewer, dumps window and Xdebug toggles that sit behind Herd Pro are part of the dashboard.
  • One sudo at install time. Only to point the system resolver at the .test domains. Everything after that runs as your own user.

Staying on macOS

Herd is a good tool on macOS and this page is not an argument against it. Lerd also runs on macOS if you want one environment across a Linux desktop and a Mac laptop, with the same .lerd.yaml producing the same stack on both. See installation.

Frequently asked questions

Is there a Laravel Herd for Linux? No. Herd ships for macOS and Windows only, and no Linux build has been announced.

Can I install Herd on Ubuntu? No. Both builds are native desktop applications wrapped around platform binaries, so there is no package for any distribution.

What is the best Laravel Herd alternative for Linux? Lerd, if you want the Herd model of a shared zero-config stack that any project can be dropped into. DDEV or Lando if you would rather have a per-project Docker stack.

Does Lerd need Docker? No. It uses rootless Podman, which has no daemon, and it never asks for Docker Desktop.

Is Lerd free for commercial work? Yes. MIT licensed, with no paid tier and no Pro subscription.

Does my herd.yml still work? It keeps working in Herd. Lerd reads .lerd.yaml, which covers the same ground and adds services, workers and Node, so both files can live in the repo.

Next steps

Released under the MIT License.