Dokku: el PaaS pequeño que nunca muere

Logotipo oficial del proyecto Dokku alojado en el repositorio abierto de la organización en GitHub, plataforma como servicio minimalista de código abierto inspirada en Heroku con buildpacks, hooks y git push como mecanismo de despliegue, pensada para caber en un único servidor privado virtual y ofrecer a equipos pequeños la mayor parte de la comodidad operativa de un PaaS comercial sin coste de licencia ni complejidad de Kubernetes

Dokku apareció en 2013 como un experimento de fin de semana de Jeff Lindsay, ingeniero que llevaba tiempo fascinado por la simplicidad operativa de Heroku y quería ver si era posible reproducir el núcleo de la experiencia en un único servidor, usando Docker recién llegado al ecosistema y un puñado de scripts en bash. Doce años después, con ecosistemas enteros (Heroku, Dokku mismo, Fly.io, Railway, Render) oscilando entre auge y declive y con Kubernetes convertido en el estándar de infraestructura a gran escala, Dokku sigue vivo, activo y sorprendentemente relevante para un nicho que otras soluciones no sirven bien. A finales de 2025 merece la pena examinar qué hace Dokku, por qué ha sobrevivido y en qué casos compensa elegirlo.

Qué es Dokku en 2025

Dokku es un PaaS de código abierto diseñado para ejecutarse en un único servidor, típicamente un VPS. Su propuesta es reproducir la experiencia de Heroku del flujo de despliegue con git push: configuras un servidor con Dokku, añades el control remoto de git, haces push de tu código y Dokku construye una imagen Docker usando buildpacks de Heroku o un Dockerfile propio, la despliega, configura el enrutamiento HTTP con nginx o Caddy, y te devuelve una URL funcional. Todo en menos de un minuto para aplicaciones pequeñas.

La arquitectura es deliberadamente simple. Dokku no es un orquestador de múltiples nodos ni pretende serlo. Ejecuta contenedores Docker en la máquina local, gestiona sus ciclos de vida, conecta bases de datos ofrecidas como complementos (PostgreSQL, MySQL, Redis, MongoDB y otros), configura proxy inverso con certificados SSL automáticos vía Let’s Encrypt, y ofrece una interfaz de línea de comandos y un panel web opcional para administración.

El proyecto ha evolucionado significativamente. La versión 0.35 lanzada a mediados de 2025 mejoró el soporte para buildpacks de nueva generación (Cloud Native Buildpacks), refinó la integración con Caddy como proxy alternativo a nginx y añadió soporte para despliegues que usan Dockerfile multi-etapa de forma más robusta. Hay más de treinta complementos oficiales para bases de datos, cachés, colas de mensajes y servicios auxiliares, y la comunidad mantiene muchos más.

Por qué sobrevivió al ciclo de hypes

La supervivencia de Dokku en un ecosistema que ha visto tantas alternativas aparecer y desaparecer (Deis, Flynn, Cloudron, Caprover con mayor o menor fortuna) es una señal interesante. Hay tres razones principales.

La primera es el enfoque. Dokku no trata de crecer en funcionalidad para competir con Kubernetes o con PaaS comerciales. Se mantiene fiel al principio original: un PaaS mínimo que cabe en un servidor. Cuando los proyectos competidores intentaron añadir clustering, alta disponibilidad multi-nodo o características empresariales, diluyeron su identidad y perdieron el nicho. Dokku se ha resistido a esa tentación y eso le ha mantenido útil para quien tiene el problema que resuelve.

La segunda es la compatibilidad con Heroku. Como los buildpacks son los mismos, una aplicación que funcionaba en Heroku típicamente funciona en Dokku sin cambios. Esto fue una ventaja enorme cuando Heroku cerró su plan gratuito en 2022 y miles de proyectos pequeños buscaron alternativas: Dokku era la ruta de menor fricción. Buena parte de los usuarios que llegaron entonces siguen ahí en 2025.

La tercera es la comunidad. Dokku tiene una comunidad pequeña pero estable, con Jose Diaz-Gonzalez (Jose51988) como mantenedor principal desde hace muchos años. El ritmo de versiones es razonable (aproximadamente una versión menor cada dos o tres meses), los problemas de seguridad se atienden rápido y el foro de discusión sigue activo. No es el ecosistema explosivo de Kubernetes, pero es confiable.

Cuándo compensa Dokku frente a alternativas

La elección interesante en 2025 depende del problema concreto. Si tienes una aplicación web pequeña o mediana que cabe en un VPS y quieres despliegue cómodo sin gestionar infraestructura compleja, Dokku es una opción excelente. El coste es el VPS mismo (típicamente 10-30 euros al mes para cargas modestas) y el tiempo de administración del servidor es mínimo si lo configuras bien desde el principio.

Frente a Kubernetes, la diferencia es abismal en complejidad operativa. Kubernetes en un clúster gestionado como GKE o EKS tiene coste base alto (facturación de nodos, balanceador de carga, registros de contenedor, espacio de almacenamiento) y curva de aprendizaje seria. Para una aplicación con pocos usuarios, la relación coste-complejidad a beneficio es absurda. Dokku resuelve el 90% de lo que esas aplicaciones necesitan con el 5% de la complejidad.

Frente a PaaS comerciales como Fly.io, Railway o Render, la diferencia está en coste y control. Estos servicios ofrecen mejor experiencia de desarrollador y escalado automático horizontal, pero cobran por uso con facturación que sube rápido cuando la aplicación crece. Para proyectos que quieren control total sobre datos, costes predecibles o requisitos de residencia europeos no cubiertos por los proveedores, un VPS europeo con Dokku es una solución pragmática.

Frente a Docker Compose en un servidor, la diferencia es más sutil. Docker Compose es suficiente si tu aplicación es simple. Dokku añade encima buildpacks automáticos, gestión de certificados, gestión de bases de datos, revisión entre despliegues y hooks para migraciones. Si vas a replicar todo eso a mano con Compose, antes o después llegas a algo parecido a Dokku pero mal.

Instalación y despliegue típico

El flujo de alta de Dokku es limpio. En un VPS Debian o Ubuntu recién instalado, el ciclo completo cabe en pocos comandos del lado servidor más dos del equipo local:

# En el servidor
wget -NP . https://dokku.com/bootstrap.sh
sudo DOKKU_TAG=v0.35.6 bash bootstrap.sh
sudo dokku apps:create mi-app
sudo dokku postgres:create mi-db
sudo dokku postgres:link mi-db mi-app
sudo dokku domains:set mi-app miapp.ejemplo.com
sudo dokku letsencrypt:set mi-app email admin@ejemplo.com
sudo dokku letsencrypt:enable mi-app

# En tu equipo local
git remote add dokku dokku@servidor.ejemplo.com:mi-app
git push dokku main

En tres minutos la aplicación está desplegada, con base de datos conectada, dominio configurado y certificado SSL emitido. Es el flujo que hizo famoso a Heroku y Dokku lo reproduce sin artificio.

Limitaciones honestas

Hay que ser claro con las limitaciones. La más importante es que Dokku ejecuta todo en un único servidor. Si el servidor cae, la aplicación cae. Para alta disponibilidad real necesitas otro enfoque: balanceador externo con varios servidores Dokku detrás, o saltar a Docker Swarm o Kubernetes. No hay solución elegante dentro de Dokku para esto porque no es su problema.

La segunda limitación es el escalado. Dokku permite escalar verticalmente (más memoria, más CPU en el mismo servidor) y lanzar múltiples procesos en paralelo dentro del mismo servidor (web, worker, etc.), pero no escala horizontalmente entre servidores. Para aplicaciones que reciben mucho tráfico, antes o después vas a chocar con el techo del servidor único.

La tercera es el ecosistema de complementos. Los oficiales están bien mantenidos pero los de la comunidad varían en calidad. Antes de depender de un complemento poco usado en producción, conviene revisar su actividad y probarlo en entorno no crítico. Esto es cierto para cualquier proyecto de código abierto pero merece recordatorio.

La cuarta, más sutil, es que Dokku no ofrece aislamiento multi-inquilino fuerte. Todas las aplicaciones del servidor comparten el kernel y los recursos. Para un equipo que despliega sus propias aplicaciones esto está bien; para ofrecer hosting a terceros, no es suficiente.

Cuándo compensa

Mi lectura después de usar Dokku personalmente durante varios años y verlo en proyectos de clientes es que es una herramienta excelente para un conjunto bien definido de casos. Para un desarrollador solo o un equipo pequeño desplegando varias aplicaciones web de tráfico moderado, Dokku es probablemente la mejor relación entre productividad, coste y control que existe en 2025. Ni Kubernetes ni los PaaS comerciales le superan en esa zona concreta.

Para cualquier otro caso, hay alternativas mejores. Si necesitas alta disponibilidad real, Kubernetes o Docker Swarm. Si necesitas que el desarrollo sea lo máximamente frictionless y el coste no importa, Fly.io o Render. Si el proyecto es de una sola página estática, Cloudflare Pages o Netlify. Pero ese nicho intermedio (pocas aplicaciones, tráfico moderado, presupuesto contenido, control sobre datos) es grande y Dokku sigue siendo el rey tácito. La lección general es que las herramientas que sobreviven ciclos tecnológicos largos no son las más vistosas sino las que resuelven un problema concreto sin pretender más, y Dokku encaja exactamente en esa descripción. Ignorar su existencia cuando evalúas opciones para un proyecto pequeño es un error frecuente que acaba costando dinero y complejidad innecesaria.

Entradas relacionadas