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.
curl -fsSL https://lerd.sh/install.sh | bash
cd ~/code/myapp
lerd linkYour project is live at https://myapp.test. That is the whole setup.
Every Herd feature, and the Lerd equivalent
| What you used in Herd | The same thing in Lerd |
|---|---|
herd park ~/Herd, every folder inside becomes a site | lerd park ~/code, same model, every project inside is served |
herd link, serve the current directory | lerd link, plus framework detection and PHP version picked from composer.json |
Automatic .test domains through the native resolver | Automatic .test domains through a dnsmasq container wired into your system resolver, no /etc/hosts edits |
| The Secure Site toggle | lerd secure, a real mkcert certificate trusted by your system and browsers |
herd isolate php@8.4, PHP version per site | lerd isolate 8.4, or auto-detected, PHP 7.4 and 8.0 to 8.5 |
herd php, herd composer, always the site's version | lerd php, lerd composer, lerd php:shell, on the version that site is registered on |
| Services, MySQL, PostgreSQL, Redis, Mailpit | lerd 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 Pro | The same surfaces in the web dashboard, free: databases, live logs, the dump viewer and the query viewer |
| The Xdebug toggle | lerd xdebug:on, a tray toggle and a dashboard switch |
herd share, expose a site publicly | lerd 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 app | A web dashboard at 127.0.0.1:7073, a system tray and a terminal dashboard |
| Octane, run manually alongside Herd | lerd runtime frankenphp --worker, FrankenPHP and Octane worker mode per site |
| Queue workers, run with supervisor or by hand | lerd worker start queue and schedule, as systemd user services, with self-heal |
Lerd vs Laravel Herd
| Lerd | Laravel Herd | |
|---|---|---|
| Platforms | Linux (systemd), macOS, Windows via WSL2 (beta) | macOS, Windows |
| License | Open source (MIT), free for commercial use | Proprietary, freemium with a Herd Pro subscription |
| Cost | Free, no paid tier | Free tier plus paid Pro subscription |
| Stack | Nginx, PHP-FPM and services as rootless Podman containers | Native binaries on macOS and Windows |
| PHP versions | 7.4, 8.0 to 8.5, shared FPM containers | 7.4 through 8.5, native |
.test domains | Automatic, through a dnsmasq container | Automatic, through the native dnsmasq resolver |
| HTTPS | lerd secure and mkcert, trusted system-wide | Built-in Secure Site toggle |
| FrankenPHP / Octane | Built in, lerd runtime frankenphp [--worker] per site, free | Not built in, Octane runs manually alongside Herd |
| Xdebug | lerd xdebug:on, tray toggle | Per-site toggle in Herd Pro |
| Services | Built in and free, with add-ons fetched from a store that updates without a new release | Some in the free tier, most advanced services and UIs behind Herd Pro |
| Queue and scheduler workers | lerd worker start queue / schedule, systemd user services | Not built in, run Horizon or supervisor yourself |
| Per-project config | .lerd.yaml, covering PHP, Node, framework, services, workers and custom containers | herd.yml, covering name, PHP, TLS and aliases on the free tier, services need Pro |
| Non-PHP projects | First-class through Containerfile.lerd or a host-proxy site | Not directly supported, Herd focuses on PHP |
| Dashboard | Web UI, system tray, terminal dashboard, installable PWA | Native desktop app |
| AI / MCP | Built-in MCP server | Built-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:
mysqldump -u root myapp > myapp.sql3. Install Lerd and start it.
curl -fsSL https://lerd.sh/install.sh | bash
lerd start4. Park or link. If you kept everything under one directory, park it once and every project inside is served:
lerd park ~/codeOr link a single project:
cd ~/code/myapp
lerd linkLerd 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.
lerd service start mysql
lerd db:import myapp.sql6. 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
sudoat install time. Only to point the system resolver at the.testdomains. 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
- Requirements and installation
- Quick start, a project served in two commands
- Full comparison against Herd, Sail, DDEV, Lando and Laragon
- Laragon for Linux if you are coming from Windows instead