Desplegar una aplicación web, una base de datos relacional PostgreSQL y una pequeña caché Redis es, sobre el papel, la arquitectura más simple de la ingeniería de software.
Sin embargo, cuando levantas esas tres piezas en las plataformas cloud gestionadas de hoy, añadir unos cuantos gigabytes de RAM, copias de seguridad automáticas y un puesto más para el equipo puede disparar una factura de 20 $ hasta 150 a 300 $ cada mes antes de que tu producto genere ingresos significativos.
La mayor parte de ese sobrecoste no paga ciclos de CPU en bruto ni almacenamiento NVMe. Paga el «impuesto cloud» por la experiencia de desarrollador: el lujo de escribir git push en tu portátil y ver cómo tu código sale a producción sin pelearte con scripts de bash.
¿Y si pudieras alquilar un VPS Linux básico de 5 €/mes, no instalar ningún panel web pesado y tener exactamente el mismo flujo de git push sin downtime? Bienvenido a Dokku.
1. ¿Qué es exactamente Dokku? (y por qué importa no tener panel)
Dokku se describe a sí mismo como «la implementación de PaaS (Platform as a Service) más pequeña que has visto jamás». Impulsado por Docker, convierte cualquier servidor Ubuntu o Debian corriente en tu propio mini-Heroku.
Lo que distingue a Dokku de los paneles de control autoalojados más nuevos es su filosofía de recursos:
- Muchos paneles de servidor basados en web ejecutan su propio panel pesado en Node/PHP, una base de datos interna y daemons de métricas, y consumen entre 1,5 GB y 2 GB de RAM antes incluso de desplegar tu primera app.
- Dokku no tiene interfaz web por defecto. Es una capa de orquestación finísima construida sobre cuatro primitivas de Linux probadas en batalla: SSH, Git, Docker y Nginx.
- Cuando no estás ejecutando un deploy, Dokku consume prácticamente 0 MB de RAM en reposo.
2. Bajo el capó: ¿qué pasa cuando ejecutas git push dokku main?
Una vez instalado Dokku en tu servidor, desplegar desde tu portátil solo requiere añadir un remote de Git:
git remote add dokku dokku@your-server-ip:my-api
git push dokku mainEn cuanto pulsas Enter, se ejecuta en tu servidor un pipeline de cuatro etapas:
[Laptop: git push] ──(SSH Tunnel)──▶ [1. sshcommand & Git Hook]
│
▼
[2. Build Phase]
(Dockerfile OR Cloud Native Buildpacks)
│
▼
[3. Zero-Downtime Verification]
(Spin up v2 alongside v1 ➔ Run CHECKS)
│
▼
[4. Nginx Upstream Switch]
(Route traffic to v2 in <1ms ➔ Retire v1)Etapas 1 y 2: interceptación por SSH y build automático
Dokku intercepta el push de Git entrante por SSH e inspecciona tu repositorio:
- Si tu proyecto contiene un
Dockerfile, Dokku construye tu imagen exacta sin interferir. - Si no hay
Dockerfile, Dokku invoca Cloud Native Buildpacks / Herokuish. Detecta automáticamentepackage.json(Node.js),requirements.txt(Python),composer.json(PHP/Laravel),go.mod(Go) o.csproj(.NET) y compila un contenedor de producción aislado.
Etapas 3 y 4: deploy realmente sin downtime
Si despliegas manualmente en un VPS con docker compose up -d --build, reiniciar el contenedor provoca entre 5 y 15 segundos de temidos errores 502 Bad Gateway para los usuarios activos.
Dokku lo elimina por completo:
- Deja tu contenedor existente (
v1) en marcha sirviendo tráfico real. - Arranca el contenedor nuevo (
v2) en paralelo en un puerto interno. - Ejecuta sondas de disponibilidad (
CHECKS) contrav2para verificar que el servidor arrancó y se conectó a la base de datos. - Solo cuando
v2devuelve200 OK, Dokku recarga el upstream del reverse proxy de Nginx, desplazando el tráfico real av2en milisegundos antes de detenerv1de forma ordenada.
3. Bases de datos en una línea, backups cifrados y SSL gratis
A través de su sistema oficial de plugins, Dokku gestiona servicios con estado y certificados TLS con comandos únicos:
# 1. Create a PostgreSQL instance and link it to your app
dokku postgres:create prod-db
dokku postgres:link prod-db my-api
# -> Automatically injects DATABASE_URL=postgres://... into my-api!
# 2. Schedule nightly encrypted backups to AWS S3 / Cloudflare R2
dokku postgres:backup-schedule prod-db "0 3 * * *" my-backup-bucket
# 3. Provision and auto-renew free Let's Encrypt HTTPS certificates
dokku letsencrypt:enable my-api
dokku letsencrypt:cron-job --add4. Dokku vs. Coolify vs. Kubernetes vs. PaaS gestionados
| Criterio | Dokku | Coolify / CapRover | Kubernetes (K8s) | Vercel / Render / Heroku |
|---|---|---|---|---|
| Interfaz de control | CLI pura y Git por SSH | Panel web completo | kubectl + manifiestos YAML | Panel cloud gestionado |
| Consumo de RAM en reposo | ~0 MB (despreciable) | ~1,2 GB – 2 GB de RAM | Alto (control plane) | N/A (gestionado) |
| Ideal para | De 1 a 15 apps en un único VPS rápido y ligero | Equipos que quieren una interfaz visual autoalojada | Clústeres multinodo y equipos de DevOps dedicados | Equipos sin operaciones dispuestos a pagar un extra |
Información: Conclusión de ingeniería
Una gran arquitectura no consiste en usar el orquestador más complejo, sino en resolver tu carga de trabajo con el menor número de piezas móviles. Para el 90 % de los productos SaaS, las APIs y las startups, un VPS Linux de 5 a 10 € con Dokku atiende cientos de miles de solicitudes diarias sin dependencia de ninguna plataforma.
Hoja de ruta y herramienta interactivas
System Design: escalar a un millón de usuarios
Añadir servidores no basta: un mapa de System Design, etapa por etapa, de por qué los sistemas se caen en un día grande y cómo se recorta la carga antes de que llegue a la base de datos.
¿SQL o NoSQL?
Responde seis preguntas y te diré qué tipo de base de datos encaja con tu proyecto, y por qué.
Sigue leyendo
- CZESCortando el ruido: ¿qué lenguaje y framework de backend deberías elegir en 2026?
Cortando el ruido: ¿qué lenguaje y framework de backend deberías elegir en 2026?
25 de octubre de 2026 · 4 min de lectura - CZES¿Qué significa 0.1.0? Estándares de versionado de software: SemVer, CalVer y ZeroVer explicados
¿Qué significa 0.1.0? Estándares de versionado de software: SemVer, CalVer y ZeroVer explicados
25 de octubre de 2026 · 5 min de lectura