Dokku apareció en 2013 como un experimento de fin de semana de Jeff Lindsay, un ingeniero fascinado por la simplicidad operativa de Heroku. Quería ver si era posible reproducir el núcleo de esa experiencia en un único servidor, con Docker recién llegado al ecosistema y un puñado de scripts en bash. Doce años después, ecosistemas enteros han oscilado entre auge y declive y Kubernetes se ha 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.

Puntos clave

  • Dokku reproduce la experiencia git push de Heroku en un único VPS con Docker, buildpacks y proxy inverso automático con SSL.

  • La versión 0.35 de mediados de 2025 añadió soporte mejorado para Cloud Native Buildpacks[1], Caddy como proxy alternativo a nginx y Dockerfile multi-etapa más robusto.

  • Frente a Kubernetes: Dokku resuelve el 90% de lo que las aplicaciones pequeñas necesitan con el 5% de la complejidad y coste.

  • Frente a PaaS comerciales (Fly.io, Railway, Render): coste predecible en VPS europeo, control total sobre datos, sin facturación por uso.

  • Limitación importante: todo corre en un único servidor; sin alta disponibilidad nativa ni escalado horizontal entre nodos.

Qué es Dokku en 2025

Dokku[2] es un PaaS de código abierto que se ejecuta en un único servidor, por ejemplo un VPS. Su propuesta es reproducir el flujo de despliegue de Heroku con git push: configuras un servidor con Dokku, añades el control remoto de git, haces push de tu código. Dokku construye una imagen Docker con 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). También configura el 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.

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) responde a tres razones principales:

  • Enfoque disciplinado: 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 o características empresariales, diluyeron su identidad y perdieron el nicho.

  • Compatibilidad con Heroku: Como los buildpacks son los mismos, una aplicación que funcionaba en Heroku suele funcionar en Dokku sin cambios. Fue una ventaja enorme cuando Heroku anunció el fin de su plan gratuito en 2022[3] y miles de proyectos pequeños buscaron alternativas.

  • Comunidad estable: Dokku tiene una comunidad pequeña pero confiable, con Jose Diaz-Gonzalez como mantenedor principal desde hace muchos años. El ritmo de versiones es razonable (una versión menor cada dos o tres meses) y los problemas de seguridad se atienden rápido.

Cuándo compensa Dokku frente a alternativas

La elección depende del problema concreto:

Frente a Kubernetes: la diferencia en complejidad operativa es abismal. Kubernetes en un clúster gestionado como GKE o EKS tiene coste base alto (nodos, balanceador de carga, registros de contenedor) 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 (Fly.io, Railway, Render): la diferencia está en coste y control. Estos servicios ofrecen mejor experiencia de desarrollador y escalado horizontal automático, pero cobran por uso con facturación que sube rápido. Para proyectos que quieren control total sobre datos, costes predecibles o requisitos de residencia europeos, 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 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.

Este mismo principio de no reinventar lo que ya existe es el que describimos en copias de seguridad con restic: herramientas bien acotadas que resuelven un problema concreto sin pretender más.

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:

# 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:

  • Servidor único: si el servidor cae, la aplicación cae. Para alta disponibilidad real necesitas otro enfoque: un balanceador externo con más de un servidor Dokku detrás, o saltar a Docker Swarm o Kubernetes.

  • Escalado horizontal: 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, pero no escala entre servidores.

  • 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.

  • Aislamiento multi-inquilino: todas las aplicaciones del servidor comparten el kernel y los recursos. Para ofrecer hosting a terceros, no es suficiente.

Conclusión

Mi lectura después de usar Dokku personalmente durante varios años es que es una herramienta excelente para un conjunto bien definido de casos. Para un desarrollador solo o un equipo pequeño cuyas aplicaciones web tienen tráfico moderado, Dokku es probablemente la mejor relación entre productividad, coste y control que existe. 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 quieres el mínimo de fricción en desarrollo y el coste no importa, Fly.io o Render. Si el proyecto es 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: 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. Ignorar su existencia cuando evalúas opciones para un proyecto pequeño es un error frecuente que acaba costando dinero y complejidad innecesaria.

Fuentes:

  1. Dokku: documentación oficial[2]
  2. Heroku: Next Chapter: anuncio del fin del plan gratuito[3]
  3. Cloud Native Buildpacks: sitio oficial[1]

Preguntas frecuentes

¿Puedo mover a Dokku una aplicación que tenía en Heroku sin cambiar código?

Sí, con buildpacks. Dokku usa los mismos buildpacks de Heroku, así que una aplicación que funcionaba allí suele funcionar en Dokku sin cambios; también admite un Dockerfile propio. Esa compatibilidad fue una ventaja enorme cuando Heroku anunció el fin de su plan gratuito en 2022 y miles de proyectos pequeños buscaron alternativa. El flujo es el mismo: añades el remoto git, haces git push dokku main y Dokku construye la imagen Docker, la despliega y configura proxy y SSL.

¿Dokku sirve si necesito alta disponibilidad o escalar entre varios servidores?

No, todo corre en un único servidor: si cae, la aplicación cae. Dokku permite escalar verticalmente (más memoria y CPU) y lanzar más de un proceso en paralelo dentro de la misma máquina, pero no escala entre servidores. Para alta disponibilidad real necesitas un balanceador externo con más de un servidor Dokku detrás, o saltar a Docker Swarm o Kubernetes. Tampoco ofrece aislamiento multi-inquilino suficiente para dar hosting a terceros, porque todas las aplicaciones comparten kernel y recursos.

¿Por qué elegir Dokku en vez de Fly.io, Railway o Render?

Por coste y control. Los PaaS comerciales ofrecen mejor experiencia de desarrollador y escalado horizontal automático, pero facturan por uso y la factura sube rápido. Un VPS europeo con Dokku da costes predecibles, control total sobre los datos y cumple requisitos de residencia europeos. Frente a Docker Compose a mano, Dokku añade buildpacks automáticos, certificados Let's Encrypt, bases de datos como complementos (PostgreSQL, MySQL, Redis, MongoDB) y hooks para migraciones.

Fuentes

  1. Cloud Native Buildpacks
  2. Dokku
  3. Heroku anunció el fin de su plan gratuito en 2022