Hace unas semanas os conté cómo migré mi WordPress a DDEV con WSL2 porque estaba hasta el gorro de Local en Windows. Y funciona como si tuviera un servidor de la NASA, ¿eh? Para el caso en Windows y sobremesa, creo que es una solución genial. Pero, como no me puedo estar quieto y estoy todo el día leyendo… pues me sigo probando cosas nuevas por si encuentro la herramienta todo terreno.
Cuando me llevé el mismo estilo de desarrollo a MacOS, la cosa cambió de tercio: Docker me comía la batería del portátil como si fuera agua en pleno desierto. Cuando trabajo en el MacBook y estaba con Cursor/Local, bajaba la batería, pero me aguantaba media tarde perfectamente. Pero cuando tuve un solo proyecto en Cursor/DDEV… uf. Se perdió la batería completamente… Sé que Docker pega fuerte, pero no me esperaba que me jodiera bastante la batería. Esos continuos golpes me pueden destrozar la batería.
Llevaba unos años sin encontrar tantos entornos de desarrollo local que de verdad me convencieran algo. Y, últimamente, no sé si es porque ha bajado del cielo una luz reveladora o porque el vibe coding en gente que sabe lo que hace están a tope quemando tokens, están apareciendo herramientas nuevas que funcionan muy bien y encima lo hacen ligero. Me encanta ese movimiento. Y toca hablar de una de ellas: Cove.
¿Qué es Cove y por qué no usa Docker?
Cove es un CLI diminuto que levanta sitios WordPress locales en segundos, con HTTPS automático, login de admin con un solo clic… y aquí viene lo importante: cero Docker. Nada de contenedores, nada de máquinas virtuales pesadas rumiando en segundo plano, nada de que se te vaya la RAM y la batería a paseo solo por tener un WordPress corriendo en local.
En vez de tirar de Docker, Cove monta su stack con herramientas ya probadas y las une entre sí de forma «bonita» (la propia web lo dice con gracia: «boring tech, beautifully glued», tecnología aburrida, bien pegada). El stack es este:
- FrankenPHP: un único binario que hace de runtime de PHP embebido. El mismo binario que sirve tus webs también ejecuta WP-CLI. Ni falta hace instalar PHP aparte con
brew install phpen un Mac recién formateado. - Caddy: se encarga de HTTPS y del routing. Certificados automáticos para cada sitio
.localhost, generados desde una CA raíz local de confianza. Nada de andar editando/etc/hostsa mano ni jugando con puertos raros. - MariaDB: una única instancia compartida para todos tus sitios. Login automático y sin contraseña en Adminer, backups con un solo comando, y puedes consultar las credenciales con
cove db list. - Mailpit: captura todos los correos que envía WordPress, para que no se te escape ningún email de prueba a una bandeja de entrada real. Lo consultas en
mailpit.localhost.
Todo esto corriendo como procesos nativos, no como contenedores. Y esa diferencia, en un portátil, se nota muchísimo. Y, lo bueno, es que no son tecnologías poco conocidas… son los que usamos siempre en todos lados y hay info por doquier.
Cómo instalar Cove
Cove se instala con una línea, sin dramas:
bash <(curl -sL https://cove.run/install-cove.sh)Compatible con macOS, Linux y WSL2 (sí, también en Windows, para los que seguís con WSL como yo con DDEV). Y si sois de los que trabajáis apoyándoos en agentes de IA tipo Claude, Cursor, Codex o Copilot, hasta tienen preparado un prompt que puedes pegarles directamente para que el propio agente lea el cómo instalarlo y ejecute cove add por ti. Porque esto ya es canon lo de darle cosas a la IA…
Comandos más útiles de Cove
Lo que más me ha gustado de Cove, después de trastear un rato, es que si conoces add, list y login, ya sabes usar Cove. El resto de comandos están ahí cuando los necesitas, pero no hace falta memorizarlos todos de entrada.
Gestión de sitios
cove add <nombre> [--plain] # Instalación fresca de WordPress en nombre.localhost
cove delete <nombre> [--force] # Elimina la carpeta y la base de datos de una tacada
cove rename <viejo> <nuevo> # Renombra sitio, BD y ejecuta wp search-replace
cove list [--totals] # Lista todos los sitios (con uso de disco si añades --totals)
cove login <sitio> # Genera una URL de login de admin de un solo usoCon --plain puedes montar un sitio estático si no necesitas WordPress para ese proyecto en concreto, lo cual está bien pensado para cuando estás cacharreando con algo que no tiene por qué llevar un WP detrás. El típico pruebas.local.
Migración y compartir con clientes
cove pull [--proxy-uploads] # Trae un sitio remoto por SSH
cove push # Sube tu sitio local a un hosting remoto
cove share [sitio] # Túnel de Cloudflare -> URL pública al momentoEsto de cove share es un puntazo para el trabajo con clientes : generas una URL pública temporal en segundos para que el cliente vea el avance sin tener que desplegar nada a un servidor de pruebas. Eso sí, tu ordenador tendrá que estar encendido. En Local existe pero jamás he conseguido que funcionara… supongo que será más para el público más cercano a sus servers. Pero con Cloudflare, no creo que tengas muchos problemas.
Acceso en red
cove lan enable # Expone tus sitios en la red local vía Bonjour/mDNS
cove tailscale enable # Accesible desde cualquier dispositivo de tu tailnet
cove ports --http 8090 --https 8453 # Cambia de puertos para convivir con otras appsY aquí otro detalle que me parece importante: Cove convive sin pelearse con Local, WordPress Studio o DevKinsta. Si detecta que los puertos 80/443 están ocupados, el instalador te ofrece alternativas (normalmente 8090/8453) y, si cambias de puertos con un sitio ya montado, migra automáticamente las URLs guardadas con wp search-replace.
Base de datos y servicios
cove db backup # Snapshot con timestamp de todas las bases de datos
cove db list # Todas las credenciales de un vistazo
cove memory [set <valor>] # Audita y ajusta memory_limit de PHP en todos los ini
cove trust # Instala la CA local en el sistema y en Firefox/Chromium
cove enable / disable # Arranca o para Caddy, MariaDB y Mailpit juntos
cove log [sitio] -f # Sigue los logs de error en tiempo realOtras cosas que me parecen interesantes
El menú de la barra superior para MacOS (novedad de la v1.14)
En la última versión han metido cove menubar enable, que compila un pequeño compañero nativo directamente en tu Mac, sin dependencias externas, construido desde el propio código fuente que trae cove.sh. El icono te dice de un vistazo si todo está sano (a color si funciona, en escala de grises si algo ha caído), y desde el menú puedes:
- Arrancar, parar y recargar servicios sin abrir terminal.
- Acceder a cada sitio con un clic (mantén ⌥ para un login de admin directo).
- Recibir una notificación si algún servicio muere por su cuenta.
- Comprobar automáticamente si hay nuevas versiones de Cove disponibles.
Y es opt-in del todo: si no te convence, cove menubar disable lo quita sin dejar rastro.
Tiene un dashboard interactivo en formato web
Además del CLI, tienen montado un dashboard en https://cove.localhost con filtrado rápido (/ para buscar), ordenación por nombre, tamaño o fecha de modificación, login de admin con un clic para cualquier instalación de WordPress, uso de disco por sitio con opción de refresco, y accesos directos a Adminer (sin contraseña) y Mailpit. Sigue el prefers-color-scheme del sistema y recuerda tu preferencia manual, así que también se lleva bien con el modo oscuro.
Así que…
No os voy a decir que DDEV sea mala herramienta, porque no lo es, y me flipa lo bien que va con WSL2 en Windows. Pero el contexto cambia, y en un portátil Mac donde la batería importa y donde no quiero tener Docker consumiendo recursos por debajo, Cove me ha convencido de primeras. Es ligero, el stack que monta por debajo es mínimo, comando sencillos y fácil de recordar.
Le voy a dar uso en el portátil a la vez que DDEV en el sobremesa unas cuantas semanas más de uso real en proyectos de verdad antes de hacer un cambio total, pero de momento pinta muy bien.
