Logotipo de Bitdoze

Coolify vs Dokploy vs Kamal 2: Cómo Elegir el PaaS Autoalojado Adecuado

Una comparación práctica de Coolify, Dokploy y Kamal 2 que cubre el consumo de recursos, los flujos de despliegue, la gestión de bases de datos y qué herramienta encaja mejor en cada caso…

Dragos

15 min de lectura

Coolify vs Dokploy vs Kamal 2: Cómo Elegir el PaaS Autoalojado Adecuado

Llevo años pagando facturas de PaaS gestionados. Los precios de Heroku empeoraron cuando murió el plan gratuito. Vercel empieza gratis, pero los cargos por ancho de banda te pillan por sorpresa en cuanto llega tráfico real. En algún momento hice las cuentas: un VPS de Hetzner de 6 $/mes podía con todo lo que estaba pagando entre 40 y 60 $/mes en Heroku y Vercel juntos.

El problema nunca fue el precio del servidor. Era la sobrecarga de administrar máquinas Linux a pelo. Escribir configuraciones de Nginx, crear servicios systemd, gestionar renovaciones de SSL, hacer despliegues sin caídas a mano — eso es lo que se come tus fines de semana.

Para eso existen las herramientas de PaaS autoalojado. Te dan la comodidad de una plataforma gestionada sobre tu propio hardware. Ahora mismo tres herramientas dominan este terreno: Coolify, Dokploy y Kamal 2. He desplegado apps en producción con las tres durante el último año, y cada una resuelve el mismo problema de formas radicalmente distintas.

Este artículo es la comparación que me habría gustado tener al empezar. Si ya sabes qué herramienta te interesa, tenemos guías dedicadas para instalar Coolify e instalar Dokploy.

Comparación rápida

Antes de entrar en detalle, esta es la visión general:

Coolify Dokploy Kamal 2
Interfaz Panel web Panel web Solo CLI
RAM en reposo ~1,5–2 GB ~400–500 MB 0 MB en el servidor
Proxy inverso Caddy Traefik Kamal Proxy
Certificados SSL Automáticos Automáticos Automáticos
Plantillas de un clic Más de 280 apps/bases de datos ~30 plantillas Ninguna
Multiservidor Llega en v5 Docker Swarm integrado SSH a varios hosts
Gestión de bases de datos Completa (backup, restauración, UI) Básica (backup a S3) Manual
VPS mínimo 4 GB de RAM 1–2 GB de RAM 512 MB de RAM
Licencia Apache 2.0 Mixta (partes source-available) MIT
Ideal para Centro de autoalojamiento todo en uno Despliegues ligeros en VPS Devs de CLI, equipos Rails

Coolify: el panel más completo

Coolify es lo que la mayoría de la gente imagina cuando oye «Heroku autoalojado». Te da una interfaz web pulida donde conectas tu cuenta de GitHub, la apuntas a un repositorio y se encarga de la compilación, el despliegue, el SSL y el enrutado. Si has usado el panel de Vercel, te sentirás como en casa.

Hace poco escribí una reseña completa de Coolify v5, así que no voy a repetirlo todo. Pero aquí va la versión corta de lo que lo hace destacar:

La biblioteca de plantillas es enorme. Más de 280 servicios de un clic — bases de datos, Redis, herramientas de monitorización, wikis, lo que sea. Yo uso Plausible Analytics, PostgreSQL y Redis, todos desplegados con plantillas de Coolify, y en total me llevó unos 10 minutos. Añadir una base de datos nueva son dos clics.

Los despliegues con git-push funcionan como esperas. Haces push a main, Coolify compila y despliega. También admite despliegues de vista previa para pull requests, útil si quieres probar ramas en un servidor real antes de fusionar.

Las copias de seguridad están integradas. Puedes programar backups de PostgreSQL y MySQL directamente desde la UI y enviarlos a almacenamiento compatible con S3. Yo uso Cloudflare R2 para esto, y Coolify se encarga de la programación y la rotación.

Dónde flojea Coolify

El mayor problema es el consumo de recursos. Coolify ejecuta un backend en Laravel, una base de datos PostgreSQL, Redis, workers de colas y un proxy inverso Caddy. Todo eso consume en reposo entre 1,5 y 2 GB de RAM antes de que despliegues una sola app. Si pones Coolify en un VPS de 2 GB, el OOM-killer te lo tumbará en cuanto intentes ejecutar algo serio al lado.

No escatimes en el VPS

Una vez probé a ejecutar Coolify en un Hetzner CX22 de 2 GB. Funcionó una semana, hasta que una compilación coincidió con un pico de tráfico y el servidor entero se congeló. Necesitas 4 GB como mínimo — más bien 8 GB si piensas ejecutar varias apps y bases de datos. Consulta nuestra reseña de Hetzner Cloud para recomendaciones de VPS.

La otra molestia es que depurar el proxy puede ser doloroso. Cuando algo falla con el enrutado de Caddy, los mensajes de error no siempre ayudan. He pasado más tiempo del que quisiera reiniciando el contenedor del proxy de Coolify y esperando a que regenerara las configuraciones.

Aun así, si tienes un servidor con RAM suficiente y quieres un único panel para gestionarlo todo, Coolify es la opción más completa disponible. El proceso de instalación lleva unos 10 minutos.

Dokploy: el punto medio ligero

Dokploy compite directamente con Coolify, pero con un enfoque más liviano. Te da un panel web para despliegues y gestión básica de bases de datos, pero funciona con una fracción de los recursos.

Cubrí la instalación completa de Dokploy en una guía aparte. Versión corta: ejecutas un solo comando curl, esperas dos minutos y tienes un PaaS funcionando en tu servidor. Dokploy usa Docker Compose y Traefik por debajo, y el panel es limpio y rápido.

Qué hace bien Dokploy

La eficiencia de recursos es su principal argumento de venta. Dokploy consume en reposo unos 400–500 MB de RAM. Eso significa que sí puedes ejecutarlo en un VPS barato de 2 GB y aún te queda espacio para un par de apps Node.js y una base de datos PostgreSQL. Para proyectos personales y pequeñas apps SaaS, esto importa mucho.

Docker Swarm viene integrado. Si un solo servidor se te queda pequeño, Dokploy te permite añadir nodos worker y distribuir contenedores entre ellos con Docker Swarm. Coolify aún no tiene esto (llega en v5). Para quien necesite escalar a varios nodos sin saltar a Kubernetes, es una ventaja real.

El soporte de Docker Compose es nativo. Puedes pegar un archivo docker-compose.yml completo en Dokploy y lo ejecuta tal cual. Lo he cubierto en detalle en cómo desplegar apps Docker Compose en Dokploy. Si ya tienes archivos compose para tus herramientas autoalojadas, pasarte a Dokploy es trivial.

Dokploy también gestiona copias de seguridad automáticas en Cloudflare R2 y admite desplegar apps Python con Railpack y uv, lo que viene bien si usas apps FastHTML o Flask. También puedes actualizar stacks de Docker Compose directamente desde la UI.

Dónde se queda corto Dokploy

La biblioteca de plantillas es pequeña comparada con la de Coolify. Si quieres desplegar algo como Outline o Activepieces con un solo clic, puede que tengas que escribir tu propio archivo compose. No es difícil, pero no es tan cómodo como el enorme catálogo de plantillas de Coolify.

La licencia es mixta. El núcleo es open source, pero algunas funciones están bajo una licencia source-available más restrictiva. Para la mayoría de usuarios da igual, pero conviene saberlo si piensas construir herramientas comerciales encima.

La comunidad es más pequeña. Coolify tiene más de 50 000 estrellas en GitHub y un Discord muy activo. La comunidad de Dokploy está creciendo, pero encontrarás menos tutoriales e hilos de resolución de problemas. Cuando algo se rompe, es más probable que acabes leyendo el código fuente que encontrando una respuesta en Stack Overflow.

Kamal 2: la herramienta CLI sin sobrecarga

Kamal 2 está construido por el equipo detrás de Ruby on Rails (37signals, la gente de Basecamp/HEY). Adopta un enfoque completamente distinto al de Coolify y Dokploy: no hay panel web, no hay panel de control instalado en tu servidor, nada.

Kamal es una gema de Ruby que ejecutas desde tu portátil o tu pipeline de CI. Se conecta a tu servidor por SSH, descarga tu imagen Docker, arranca el contenedor nuevo, ejecuta los health checks y cambia el tráfico sin tiempo de inactividad. Lo único que instala en el servidor es un pequeño proxy inverso llamado kamal-proxy (unos 10 MB).

Qué hace interesante a Kamal

Cero sobrecarga en el servidor. Los recursos de tu VPS van íntegramente a tus aplicaciones. Ningún panel comiéndose 500 MB o 2 GB de RAM. Para desplegar una sola app en un VPS barato de 4 $, es con diferencia la opción más eficiente.

Todo es un archivo en tu repositorio. Tu configuración de despliegue vive en config/deploy.yml, tus variables de entorno en .kamal/secrets y tu setup de Docker en un Dockerfile estándar. No hay nada que clicar, nada guardado en una base de datos remota. git log te muestra el historial completo de cada cambio de infraestructura que hayas hecho jamás.

Los despliegues sin caída funcionan de fábrica. Kamal arranca el contenedor nuevo, espera a que el health check pase y luego le dice a kamal-proxy que enrute el tráfico hacia él. El contenedor antiguo sigue corriendo durante un periodo de gracia. Las reversiones son un comando: kamal rollback.

Ejemplo de deploy.yml

Una configuración básica de despliegue con Kamal tiene este aspecto:

yaml
service: my-app
image: ghcr.io/myuser/my-app

servers:
  web:
    - 49.12.100.50
  workers:
    hosts:
      - 49.12.100.50
    cmd: bin/jobs

proxy:
  ssl: true
  host: myapp.com

registry:
  server: ghcr.io
  username: myuser
  password:
    - KAMAL_REGISTRY_PASSWORD

env:
  secret:
    - DATABASE_URL
    - REDIS_URL

accessories:
  db:
    image: postgres:16
    host: 49.12.100.50
    port: "127.0.0.1:5432:5432"
    env:
      secret:
        - POSTGRES_PASSWORD
    directories:
      - data:/var/lib/postgresql/data

Comandos habituales

La CLI de Kamal es sencilla:

bash
# First-time server setup
kamal setup

# Deploy latest changes
kamal deploy

# Roll back to previous version
kamal rollback

# Open a Rails console on the server
kamal app exec --interactive "bin/rails console"

# View live logs
kamal app logs -f

# Deploy to a specific server
kamal deploy --hosts=49.12.100.50

Dónde resulta molesto Kamal

No hay ninguna interfaz visual. ¿Quieres comprobar si tu app está corriendo? Entra por SSH o ejecuta kamal app details. ¿Quieres ver logs? kamal app logs. ¿Quieres ver el estado de la base de datos? Te apañas solo. Si gestionas 10 servicios y quieres verlo todo de un vistazo en una pantalla, Kamal no te ayuda.

La gestión de bases de datos es manual. Kamal puede levantar bases de datos como «accessories» (mira la configuración de arriba), pero no les hace copias de seguridad, no te da una UI para explorar tablas y no te ayuda a restaurar datos. Tienes que montar tus propios cron jobs con pg_dump. Tanto Coolify como Dokploy lo hacen por ti.

Es muy centrado en Ruby. Aunque Kamal puede desplegar cualquier contenedor Docker, la documentación y la comunidad están muy enfocadas a Rails. Si eres desarrollador de Python o Node.js, los ejemplos y las convenciones pueden resultarte ajenos.

La curva de aprendizaje es real. Si nunca has usado registros de Docker, escrito Dockerfiles o configurado endpoints de health check, Kamal se te hará cuesta arriba. Coolify y Dokploy abstraen casi todo esto.

Flujos de despliegue comparados

Así se ve la experiencia de despliegue real con cada herramienta:

Coolify

  1. Haces push del código a GitHub
  2. Coolify detecta el push vía webhook
  3. Compila con Nixpacks (detección automática) o tu Dockerfile
  4. Arranca el contenedor nuevo, ejecuta health checks
  5. Cambia el tráfico mediante el proxy inverso Caddy
  6. El contenedor antiguo se elimina

Todo ocurre automáticamente. Lo ves en el panel de Coolify o lo ignoras por completo.

Dokploy

  1. Haces push del código a GitHub
  2. Dokploy detecta el push vía webhook
  3. Compila con Nixpacks, Railpack o tu Dockerfile
  4. Arranca el contenedor nuevo, ejecuta health checks
  5. Cambia el tráfico mediante el proxy inverso Traefik
  6. El contenedor antiguo se elimina

El mismo flujo automático. La compilación de Dokploy suele ser más rápida porque hay menos sobrecarga del sistema. El proxy Traefik es ligero y está bien documentado.

Kamal 2

  1. Haces push del código a GitHub
  2. Desde tu terminal (o CI), ejecutas kamal deploy
  3. Kamal construye la imagen Docker en local o en CI
  4. La sube a tu registro de contenedores (GHCR, Docker Hub, etc.)
  5. Entra por SSH a tu servidor y descarga la imagen
  6. Arranca el contenedor nuevo, el health check pasa
  7. kamal-proxy enruta el tráfico al contenedor nuevo
  8. El contenedor antiguo sigue corriendo un periodo de gracia y luego se detiene

Lo lanzas manualmente o lo conectas a GitHub Actions. Es más explícito, pero también más controlable.

Cuándo usar cada herramienta

Tras un año usando las tres, así decido yo:

Elige Coolify si...
  • Tienes un VPS con 4+ GB de RAM y quieres gestionar apps, bases de datos y servicios autoalojados desde un solo lugar
  • Valoras las plantillas de un clic y no quieres escribir archivos Docker Compose para herramientas comunes
  • Quieres copias de seguridad de bases de datos, monitorización y despliegues por webhook integrados
  • Vienes de Heroku o Vercel y quieres el equivalente autoalojado más parecido

Lee la reseña completa de Coolify v5 o salta a la guía de instalación de Coolify.

Elige Dokploy si...
  • Estás en un VPS barato (1–2 GB de RAM) y no puedes permitirte la sobrecarga de recursos de Coolify
  • Ya tienes archivos Docker Compose y quieres una UI para gestionarlos
  • Necesitas escalar a varios nodos con Docker Swarm sin la complejidad de Kubernetes
  • Quieres una experiencia PaaS pero valoras la eficiencia más que una enorme biblioteca de plantillas

Sigue nuestra guía de instalación de Dokploy o aprende a desplegar apps Docker Compose y a configurar copias de seguridad.

Elige Kamal 2 si...
  • Quieres cero sobrecarga en el servidor y el máximo control sobre los despliegues
  • Prefieres infraestructura como código con todo versionado en tu repositorio
  • Te manejas bien con la terminal y no necesitas un panel web
  • Despliegas una sola app (o un número pequeño de apps) y quieres la configuración de servidor más simple posible
  • Ya estás dentro del ecosistema Ruby/Rails

También puedes combinar

Yo uso Coolify en un servidor de 8 GB para gestionar bases de datos y herramientas autoalojadas (wiki, analítica, monitorización). Para mi app web principal en producción, uso Kamal 2 desplegando en otro VPS más liviano. No hay ninguna regla que diga que solo puedes elegir una herramienta.

Comparación de costes

Una de las principales razones para autoalojar es ahorrar dinero. Aquí va un desglose aproximado de lo que cuestan configuraciones similares:

Setup Coste de PaaS gestionado Coste autoalojado
1 app web + PostgreSQL + Redis Heroku: 30-50 $/mes Coolify en VPS de 4 GB: 7 $/mes
1 app web + 1 base de datos Vercel + Neon: 20-40 $/mes Dokploy en VPS de 2 GB: 4-5 $/mes
1 app web, infra mínima Railway: 10-20 $/mes Kamal en VPS de 1 GB: 3-4 $/mes
5 apps + bases de datos + monitorización Multiplataforma: 100+ $/mes Coolify en VPS de 8 GB: 15 $/mes

Son cifras aproximadas, pero el patrón se mantiene: autoalojar es entre 5 y 10 veces más barato para cargas de trabajo equivalentes. La contrapartida es tu tiempo gestionando el servidor. Herramientas como Coolify y Dokploy reducen ese tiempo a casi cero para las tareas comunes.

Para proveedores de VPS, me han dado buenos resultados Hetzner para servidores europeos.

Preguntas frecuentes

¿Puedo migrar de una herramienta a otra?

Sí, porque las tres herramientas usan contenedores Docker estándar. Tus aplicaciones están empaquetadas como imágenes Docker independientemente de qué herramienta las despliegue. Para migrar de Dokploy a Coolify (o viceversa), montas la herramienta nueva en el mismo servidor o en otro, la apuntas a tu repositorio Git y despliegas. Las bases de datos hay que exportarlas y reimportarlas manualmente con herramientas como pg_dump y pg_restore.

¿Puedo ejecutar varias apps en un servidor?

Sí, las tres herramientas lo permiten. Coolify y Dokploy usan sus proxies inversos (Caddy y Traefik) para enrutar el tráfico según los nombres de dominio. Kamal 2 usa kamal-proxy para lo mismo. El factor limitante es la RAM y la CPU de tu servidor, no las herramientas en sí.

¿Qué herramienta gestiona las copias de seguridad automáticas de bases de datos?

Coolify y Dokploy tienen programación de copias de seguridad integrada. Puedes enviar los backups a almacenamiento compatible con S3 como Cloudflare R2, Backblaze B2 o AWS S3. Kamal 2 no gestiona copias de seguridad en absoluto — tienes que montar tus propios cron jobs con pg_dump o herramientas similares.

¿Funciona alguna en servidores ARM?

Sí. Las tres funcionan en servidores ARM64, incluidas las instancias ARM de Hetzner y las VMs ARM gratuitas de Oracle Cloud. Coolify y Dokploy ejecutan sus paneles en ARM sin problemas. Kamal despliega imágenes Docker, así que mientras tu imagen soporte ARM (builds multi-arquitectura), funciona bien.

¿Y qué pasa con Kubernetes?

Ninguna de estas herramientas usa Kubernetes. Todas se basan en Docker, lo que las mantiene simples y eficientes en recursos. Si necesitas orquestación a nivel Kubernetes, mira herramientas como Rancher o k3s. Para la mayoría de despliegues pequeños y medianos, Docker con una de estas herramientas es más que suficiente.

¿Hay dependencia de proveedor (vendor lock-in)?

No. Las tres herramientas se apoyan en contenedores Docker estándar y repositorios Git. Si dejas de usar cualquiera de ellas, el código de tu aplicación sigue en tu repositorio y tus contenedores siguen corriendo hasta que los pares manualmente. No hay nada propietario en los artefactos de despliegue.