Lerd: el Laravel Herd que sí corre en Linux

Lerd es un entorno de desarrollo PHP local para Linux y macOS que levanta Nginx, PHP-FPM y tus servicios como contenedores Podman rootless. Sin demonio de Docker, sin sudo y sin ensuciar el sistema. Es MIT, es gratis entero y no tiene tier de pago.
El pitch corto es "Herd para Linux", y por una vez la comparación con el producto ajeno no es marketing perezoso: sus propias páginas de documentación mapean función por función lo que hace Herd contra lo que hace Lerd. Vale la pena mirarlo con calma, porque debajo del pitch hay decisiones de arquitectura que explican tanto por qué esto funciona como para quién no está pensado.
Aviso antes de seguir: lo que viene sale de la documentación oficial, del repositorio y de la API de GitHub. Cuando hay una cifra suya y no una medición mía, lo digo.
El hueco que llena
La documentación de Lerd lo dice sin rodeos: Laravel Herd no corre en Linux. Es una app de macOS y una app de Windows, y no hay .deb, ni .rpm, ni AppImage, ni un plan anunciado para que lo haya.
Del otro lado, Laragon es solo Windows. Así que el desarrollador PHP en Linux, que estadísticamente es el mismo que despliega en Linux, se quedó durante años con tres opciones: montarse un LEMP a mano, cargar con un Docker Compose por proyecto, o vivir en php artisan serve y fingir que el entorno local se parece a producción.
Lerd apunta exactamente a ese hueco.
Qué es por dentro
El repositorio lerd-env/lerd se creó el 17 de marzo de 2026, tiene licencia MIT y hoy va por 1.048 estrellas. Por composición de lenguajes es casi todo Go (el binario y el motor), con TypeScript y Svelte para el dashboard web. La versión estable más reciente en el momento de escribir esto es la 1.33.1, del 14 de agosto de 2026, con un ritmo de release de una menor cada una o dos semanas.
Las piezas que importan:
- Podman rootless en vez de Docker. No hay demonio de fondo ni grupo
dockeral que sumarte, que es el punto donde muchos setups locales empiezan a pedir privilegios que no deberían. - Una sola infraestructura compartida. Un Nginx, un PHP-FPM y unos servicios comunes atienden a todos tus sitios. Esta es la decisión de diseño central y volvemos a ella más abajo, porque es la que decide si Lerd es para ti.
- systemd user units en Linux y launchd en macOS para los procesos de fondo: colas, scheduler, workers.
- Dominios
.testautomáticos vía un contenedor con dnsmasq. Sin tocar/etc/hosts. - TLS de verdad con mkcert, con la CA local instalada en el almacén del sistema, así que el candado del navegador es real y no una excepción de seguridad.
- PHP de la 7.4 a la 8.5, global o fijado por proyecto.
.lerd.yamlcomo archivo de configuración del proyecto, que puedes commitear o no.
Detecta solo el framework: Laravel, Symfony, WordPress, Drupal, Magento, CakePHP, Statamic, CodeIgniter y Tempest. Y para lo que no es PHP hay Containerfile.lerd, con el que sirves proyectos Node, Python, Go o Ruby dentro del mismo esquema de dominios y certificados.
Instalación, y el requisito que se salta todo el mundo
El instalador es el habitual:
curl -fsSL https://lerd.sh/install.sh | bashTambién hay paquetes para apt, dnf y una fórmula de Homebrew para macOS.
Ahora el detalle que arruina la primera tarde a más de uno. Lerd crea su red con podman network create --dns, y ese flag existe desde Podman 4.5, de abril de 2023. Ubuntu 22.04 sigue empaquetando Podman 3.4.4, así que ahí no arranca hasta que actualices Podman por el repositorio de Kubic. No es un bug de Lerd, es una LTS vieja, pero conviene saberlo antes de abrir el issue.
El resto de requisitos en Linux: una distro moderna con systemd, el runtime OCI crun (recomendado sobre runc para rootless), NetworkManager o systemd-resolved para la resolución DNS, sesión de usuario de systemd activa con loginctl enable-linger $USER, y los paquetes unzip y nss-tools.
En macOS pide Ventura 13 o superior, Apple Silicon o Intel, y Homebrew instala Podman como dependencia. La VM de Podman Machine se configura sola, con memoria escalada al RAM del host, entre 3 y 6 GB. Windows solo entra por WSL2 y está marcado como beta.
El flujo con Laravel
Su walkthrough de Laravel son cinco comandos:
cd ~/Lerd
laravel new myapp
cd myapp
lerd link # el sitio queda en myapp.test
lerd init # asistente: PHP, Node, base de datos, servicios, workers
lerd setup # dependencias, migraciones, certificado TLS, workers
lerd status # resumen de saludlerd init es un wizard interactivo donde eliges versión de PHP, versión de Node, motor de base de datos (MySQL, PostgreSQL, SQLite o MongoDB), servicios como Redis o Mailpit, y qué workers deben arrancar solos. lerd setup --all corre la lista entera sin preguntar nada, que es lo que quieres en un git clone de un proyecto ajeno.
A partir de ahí el CLI es amplio de verdad. Un extracto de la referencia completa:
| Área | Comandos |
|---|---|
| Sitios | park, link, secure, share, pause, group add |
| PHP | use, isolate, xdebug on/off, php:ext add, php:ini |
| Node | node:install, node:use, isolate:node |
| Base de datos | db:create, db:import, db:export, db:shell, db:snapshot |
| Workers | queue:start, horizon:start, reverb:start, schedule:start |
| Diagnóstico | doctor, dns:check, which, tui, cleanup |
lerd artisan es alias de lerd console para Laravel, y lerd shell te mete dentro del contenedor cuando hace falta.
Dos cosas menos obvias que me parecen las más interesantes del set: lerd db:snapshot, que crea instantáneas restaurables de la base, y el aislamiento de base de datos por worktree de Git, que resuelve el problema real de tener dos ramas con migraciones incompatibles abiertas al mismo tiempo. Eso no lo hace Herd.
Lo que en otros sitios está detrás de un pago
Aquí es donde el proyecto se pone deliberadamente incómodo con la competencia. Las funciones que Herd reserva para su suscripción Pro (el navegador de base de datos, el visor de logs, la ventana de dumps y los toggles de Xdebug) en Lerd son parte del dashboard y no cuestan nada.
El dashboard es una web app instalable como PWA, y trae además:
- Profiler SPX con flame graphs.
- Ventana de debug que intercepta las llamadas a
dump(), monitoriza SQL y detecta consultas N+1. - Tinker REPL en el navegador, con editor Monaco y language server. Autocompletado de verdad sobre tus modelos, no un textarea.
- Autocuración de workers para colas, scheduler y webhooks.
lerd sharepara exponer el sitio por túnel, ylerd lan:sharepara servirlo en la red local con código QR, que es la forma menos dolorosa de probar algo en un teléfono real.
El servidor MCP, que es la parte que menos se comenta
Lerd trae un servidor MCP integrado, de los que ya repasé en los mejores servidores MCP. Se registra con un comando:
lerd mcp:enable-global # a nivel usuario, en todas las sesiones
lerd mcp:inject # solo en este proyectoY a partir de ahí Claude Code, Cursor, Codex CLI, Gemini CLI, Copilot en VS Code, Junie, Antigravity o Windsurf pueden manejar tu entorno directamente. La superficie son doce herramientas agrupadas, cada una con un argumento action:
site, service, db, env, runtime, worker, exec, framework, diag, logs, worktree y workspace.
Agrupar así en vez de exponer sesenta herramientas planas es la decisión correcta y todavía poco común: el contexto que consume el listado de tools crece con el número de tools, no con lo que usas.
Hay un detalle de implementación que revela que esto lo pensó alguien que lo usa. PHP corre dentro del contenedor, así que las variables de entorno que tu agente exporta en el host (CLAUDECODE, CURSOR_AGENT y compañía) se perderían en el camino. Lerd las reenvía al contenedor en lerd php, lerd artisan y tinker, e inyecta un marcador AI_AGENT=lerd-mcp cuando el comando entra por MCP y no hay variable real. Es decir: tu código puede saber que quien lo está ejecutando es un agente, y comportarse distinto. Las ejecuciones manuales desde la terminal quedan intactas.
La misma idea de servidor MCP para entornos locales ya la vimos en WordPress Studio. Está dejando de ser un extra y empieza a parecer parte del contrato de cualquier herramienta de desarrollo local nueva.
Dónde no encaja
La documentación publica sus propias comparativas, y son razonablemente honestas. Vale la pena leerlas al revés, buscando el caso en el que pierde.
Contra Sail y DDEV, la diferencia no es de rendimiento, es de modelo. Lerd comparte una infraestructura entre todos tus sitios; Sail levanta un stack Docker Compose completo por proyecto y DDEV pide un .ddev/config.yaml commiteado. Sus cifras para cinco proyectos: unos 200 MB de RAM en Lerd, entre 500 MB y 1 GB en DDEV, entre 1 y 2 GB en Sail. No las he medido.
El ahorro es real, y el precio también: si tu equipo exige aislamiento por proyecto, o dos proyectos necesitan versiones incompatibles del mismo servicio, la infraestructura compartida es justo lo que no quieres. Ese es el caso en el que Sail o DDEV siguen ganando, y Lerd lo admite.
Contra Lando, Lando tiene más recetas de frameworks e integraciones con hostings. Lerd es más ligero.
Y las advertencias que pondría yo, que no están en su tabla:
- Es un proyecto joven. Marzo de 2026, cinco meses. Mil estrellas es tracción sana, no madurez.
- Windows por WSL2 está en beta. Si tu equipo es mixto, hoy no es una respuesta única para todos.
- Podman rootless tiene sus propias rarezas con permisos de volúmenes y UID mapping. No aparecen el primer día, aparecen el día que montas un directorio del host con permisos raros.
Entonces, ¿lo instalo?
Depende de dónde estés parado, y creo que se resume en tres frases.
Si desarrollas PHP en Linux, es lo más cercano a Herd que existe y no hay mucho más que pensar. Antes de esto la alternativa era construírtelo.
Si estás en macOS, la pregunta es distinta: Herd corre nativo ahí y no paga el peaje de una VM de Podman. Lerd te compra el código abierto, el dashboard completo sin suscripción y una configuración reproducible en .lerd.yaml. Si nada de eso te duele hoy, Herd está bien.
Si tu equipo ya vive en Sail o DDEV por política de aislamiento, esto no es un reemplazo, es otra filosofía. Cambiarte por los 200 MB no compensa romper la garantía de que el entorno de cada proyecto es suyo.
Si vienes de instalar todo a mano, la guía de instalación de Laravel cubre el resto de opciones de entorno y dónde encaja cada una.
Preguntas frecuentes
¿Lerd es gratis de verdad?
Sí. Licencia MIT, sin tier de pago ni suscripción Pro, y libre para uso comercial. Las funciones que otras herramientas cobran, como el navegador de base de datos o el visor de logs, vienen incluidas.
¿Necesito Docker para usar Lerd?
No, y ese es medio punto del proyecto. Usa Podman en modo rootless, que no tiene demonio corriendo de fondo ni exige sudo. En Linux necesitas Podman 4.5 o superior; en macOS lo instala Homebrew como dependencia.
¿Funciona en Windows?
Solo a través de WSL2, y esa vía está marcada como beta. Para Windows nativo, Herd sí tiene aplicación.
¿Puedo servir proyectos que no sean PHP?
Sí, con un archivo Containerfile.lerd en el proyecto. Node, Python, Go y Ruby entran con el mismo esquema de dominios .test y certificados que los sitios PHP.
Recursos
- Sitio y documentación: lerd.sh y la guía de inicio rápido
- Código y releases: github.com/lerd-env/lerd
- Requisitos por sistema: lerd.sh/getting-started/requirements
- Referencia de comandos: lerd.sh/reference/commands
- Servidor MCP: lerd.sh/features/mcp
- Comparativas oficiales frente a Herd, Laragon, Sail, ddev y Lando: lerd.sh/getting-started/comparison
- Cuando algo no arranca: lerd.sh/troubleshooting