DevOps

Coolify vs Dokploy vs CapRover: panel de deploy self-hosted 2026

Heroku te cobró por dyno. Vercel subió precios. Render sigue siendo decente pero también paga. La respuesta en 2026 es self-hosting: tu propio panel PaaS en una VPS o en tu homelab, con Docker por debajo y SSL automático. Los tres nombres que más aparecen son Coolify, Dokploy y CapRover. Esta guía los compara con datos reales: qué instala cada uno, cuánta RAM consume, qué stacks soporta y cómo montarlos paso a paso.


TL;DR — Lo que vas a tener al final

  • Tiempo de setup: 30 minutos a 2 horas dependiendo de la complejidad del entorno.
  • Requisitos: Acceso root, Linux moderno, conexión a internet para descargar dependencias.
  • Resultado: Servicio funcional y estable, documentado paso a paso.
  • Troubleshooting: Logs estándar en /var/log/, comandos de verificación al final de cada sección.

El problema que resuelven

Levantar una app hoy significa pelearte con nginx, certificados, git hooks, systemd, backups y un docker-compose.yml por servicio. Si tienes tres proyectos se vuelve insostenible. Un panel PaaS agrega una capa visual encima de Docker que te deja:

  • Hacer git push y que el panel detecte el repo, construya la imagen y redeploy solo.
    • Asignar dominios y certificados TLS automáticos con Let’s Encrypt.
    • Levantar bases de datos y servicios auxiliares (Postgres, Redis, MinIO) con un click.
    • Ver logs, métricas, restart y escalar desde una UI.

    Los tres resuelven esto, pero con arquitecturas distintas y trade-offs diferentes.


    Tabla comparativa rápida

    Característica Coolify Dokploy CapRover
    UI moderna (Svelte) Sí Sí Más vieja
    Soporta Docker Compose Sí Sí No
    Auto-detección de stack (Nixpacks) Sí Sí No
    Base técnica Docker Engine Docker Swarm Docker Swarm
    RAM mínima recomendada 2 GB 2 GB 1 GB
    Preview deployments por PR Sí Sí Vía GitHub Action
    Bases de datos gestionadas Sí (PG, MySQL, Mongo, Redis, ClickHouse) Sí (vía plantillas) No (apps one-click)
    Backups automáticos Sí Sí Vía plugins
    Multi-servidor Sí Sí Sí
    Multi-nodo Swarm Parcial Sí Sí
    Túneles Cloudflare Sí Sí Vía plugin
    Licencia Open source (AGPLv3) Open source (Apache 2.0) Open source (MIT)
    Versión cloud de pago Sí (Coolify Cloud) Sí (Dokploy Cloud) No

    Resumen ejecutivo: Coolify es el más amigable y el que más hace solo; Dokploy es el más rico en features (RBAC, equipos, bitbucket, gitea); CapRover es el más liviano y el más estable, ideal para VPS chicos de 1 GB.


    Coolify

    Qué es y cuándo conviene

    Coolify es un panel auto-hospedable escrito en Svelte que apunta a ser “el Vercel open source”. Construye con Nixpacks (auto-detecta Node, Python, Go, PHP, Ruby, Rust) o Docker Compose; levanta bases de datos con un click; gestiona HTTPS, logs, métricas y backups. La curva de aprendizaje es baja si ya usas Docker.

    Cuándo elegirlo: tienes 2-4 GB de RAM libre; quieres deploys por push a GitHub/GitLab sin tocar Compose manualmente; vas a hostear 3-10 apps y unas cuantas bases de datos.

    Instalación paso a paso

    El instalador oficial corre un script que levanta Coolify en un contenedor Docker, expone el panel en el puerto 8000 y configura Traefik como reverse proxy por debajo. Antes de ejecutarlo asegurate de tener un FQDN (por ejemplo panel.tudominio.com) apuntando a la IP del server, porque Coolify lo usa para el certificado TLS inicial.

    # Como root en un Ubuntu 24.04 / Debian 13 limpio
    curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

    El script tarda 2-4 minutos: instala Docker si falta, hace pull de las imágenes, genera claves SSH locales y arranca el panel. Cuando termina te muestra la URL y un email temporal para el primer login. Cambia la contraseña antes de agregar destinos.

    Si ves “Connection refused” al intentar entrar al panel, el firewall de tu proveedor (Hetzner, DigitalOcean, OVH) está bloqueando el 8000 — abrí el puerto o mapealo a 80/443 antes de reintentar. Si el script se queda colgado en “pulling coolify/image”, probablemente sea rate limit de Docker Hub — espera 10 minutos o configura un mirror. Si los deploys quedan en estado “pending” indefinidamente, el daemon de Coolify perdió la conexión con el socket de Docker; reinicia con docker restart coolify.

    Deploy de una app con Git

    Conectas tu GitHub/GitLab desde la UI, eliges el repo, la rama y el build pack. Coolify clona el repo, corre nixpacks build, sube la imagen al registry interno y actualiza el contenedor activo. SSL se emite automático contra Let’s Encrypt cuando asocias un dominio.

    # Ver logs del build en vivo desde la UI o vía CLI
    docker logs -f $(docker ps -q --filter "name=coolify")

    Si el primer deploy falla con “build failed at step X”, el problema casi siempre es una variable de entorno faltante — Coolify no hereda secretos del repo, tienes que setearlas en Environment Variables del servicio antes del primer build. Si el deploy pasa pero la app responde 502, Traefik no detectó el puerto interno — verifica que PORT en Environment coincida con el puerto que escucha tu app (Nixpacks lo infiere pero no siempre acierta con apps multi-stage).


    Dokploy

    Qué es y cuándo conviene

    Dokploy es el más nuevo de los tres (lanzado en 2024) y se posiciona como el más rico en features de empresa: RBAC granular, equipos, Bitbucket, Gitea, templates, backups de volúmenes, schedules. La UI es moderna y la documentación oficial tiene una tabla comparativa explícita con CapRover y Coolify. Por debajo corre sobre Docker Swarm, lo que le da clustering real multi-nodo out of the box.

    Cuándo conviene: administras apps para un equipo o varios clientes; necesitas separar permisos por proyecto; quieres Bitbucket o Gitea además de GitHub; planeas escalar a 3+ servers.

    Instalación paso a paso

    Dokploy tiene un instalador oficial que también asume un server Linux limpio con acceso root. Antes de correrlo abrí el puerto 80, 443 y 3000 en el firewall; Dokploy expone el panel primario en 3000 y luego enruta todo por Traefik. El primer arranque tarda ~3 minutos.

    # Como root, server limpio
    curl -sSL https://dokploy.com/install.sh | sh

    Si tu server tiene menos de 2 GB de RAM, Dokploy arranca pero los deploys fallan con “no space left on device” porque el swap está al límite — agrega 4 GB de swap antes del install con fallocate -l 4G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile && echo "/swapfile none swap sw 0 0" >> /etc/fstab. Si Traefik no levanta los certificados y ves “ACME challenge failed”, el FQDN no resuelve a la IP pública todavía — espera la propagación de DNS o usa --dns-cloudflare=true con un token si vas detrás de Cloudflare.

    Crear proyecto + app + base de datos

    La unidad organizativa en Dokploy es el proyecto, adentro van services (apps), databases (Postgres/MySQL/Mongo/Redis gestionadas) y compose (stacks multi-servicio). Los tres se crean desde la UI y comparten variables de entorno. La CLI dokploy también expone los mismos recursos para scripting.

    # CLI: crear proyecto + app desde un template público
    dokploy project create --name "blog-prod"
    dokploy app create --project blog-prod --name web 
      --source docker 
      --image "ghcr.io/tu-org/tu-app:latest" 
      --port 3000

    Si los logs del deploy muestran “image pull denied”, Dokploy no se autenticó contra el registry — agrega un registry con usuario y token en Settings → Registries antes de reintentar. Si la base de datos queda en estado “unhealthy” después del primer deploy, casi siempre es que el volumen ya existía de una corrida anterior con schema incompatible — borra el volumen desde la UI o docker volume rm dokploy_postgres_data y vuelve a deployar. Si los deploys quedan en loop infinito “building → failed → building”, el build context de Docker está mal configurado (Dockerfile está en una subcarpeta y --dockerfile-path no la apunta).


    CapRover

    Qué es y cuándo conviene

    CapRover es el abuelo del grupo (2017) y el que mejor corre en hardware modesto. La instalación es un solo comando, consume 200-400 MB de RAM en idle y maneja multi-nodo Swarm sin drama. La contra: la UI se ve vieja, no tiene bases de datos gestionadas (las levantas desde la one-click store como cualquier app), y la integración con Git es menos pulida que las de Coolify/Dokploy.

    Cuándo conviene: tienes una VPS de 1 GB o un Raspberry Pi 4/5; quieres algo que arranque en 5 minutos y no se rompa; el catálogo de one-click apps (WordPress, Ghost, GitLab, Mattermost, Nextcloud) es exactamente lo que necesitas.

    Instalación paso a paso

    El instalador de CapRover espera un server Ubuntu/Debian limpio con Docker ya instalado. El script configura Swarm, levanta el panel en el puerto 80 y crea el archivo captain.conf con la contraseña inicial. Después de instalar entras al panel, cambias la contraseña y asocias tu dominio wildcard (*.tudominio.com) para que cada app obtenga HTTPS automático.

    # Prerrequisito: Docker instalado (20.10+)
    curl -fsSL get.captain.docker.com | bash
    # Resetea el swarm si vienes de un Docker previo
    docker swarm leave --force 2>/dev/null
    # Levanta el panel
    docker run -p 80:80 -p 443:443 -p 3000:3000 
      -v /var/run/docker.sock:/var/run/docker.sock 
      -v /captain:/captain 
      caprover/caprover:latest

    Si el panel no responde en http://IP:3000, Docker daemon no está corriendo o el socket no tiene permisos — reinicia Docker con systemctl restart docker y verifica que /var/run/docker.sock pertenece al grupo docker. Si después de asociar el dominio las apps siguen mostrando “self-signed certificate”, el wildcard no apunta bien — CapRover necesita que *.tudominio.com resuelva a la IP del server antes de emitir el certificado wildcard de Let’s Encrypt (que tiene rate limit de 5 por semana). Si una app queda en “Deploying…” eternamente, el captain-definition está mal armado en el repo — revisa que el campo dockerfilePath exista y apunte al Dockerfile correcto.

    Deploy por CLI (específico de CapRover)

    CapRover tiene su propia CLI caprover que se autentica contra el panel y permite deploys automatizados desde cualquier pipeline. Subes un tarball con el código, el panel lo extrae, construye la imagen y redeploya. Es el patrón clásico “git push → CI build → caprover deploy” sin docker-compose.yml.

    # Instalar CLI
    npm install -g caprover
    # Login una vez
    caprover login --server https://panel.tudominio.com --password <pass>
    # Deploy desde el directorio actual
    tar -czf /tmp/deploy.tar.gz --exclude=node_modules --exclude=.git .
    caprover deploy -a mi-app --tarFile /tmp/deploy.tar.gz

    Si caprover deploy se queda colgado en “uploading…”, el archivo es demasiado grande (>500 MB) — excluí node_modules, .git, dist, build y archivos binarios antes de tarrer. Si el deploy pasa pero la app responde 503, el dockerfilePath en captain-definition no existe o el comando de inicio (startCommand) no es el correcto — revisa los logs en caprover logs -a mi-app -f.


    Cuándo elegir cada uno (decisión final)

    Tu situación Recomendación
    VPS de 1 GB, Raspberry Pi, deploys simples CapRover
    2-4 GB de RAM, quieres UI pulida, deploys por push Coolify
    Equipo de varios devs, RBAC, multi-server, Bitbucket/Gitea Dokploy
    Muchas apps WordPress/Ghost one-click CapRover
    Quieres bases de datos gestionadas con backups Coolify o Dokploy
    Necesitas preview deployments por PR Coolify o Dokploy
    Self-hosting puro, quieres el más liviano CapRover

    Si tuvieras que elegir uno solo para un homelab o PyME que arranca: Coolify en 2026. La UI es la más cómoda, Nixpacks te ahorra escribir Dockerfiles, y la comunidad es la más activa (más de 1.000 contribuidores en GitHub, releases mensuales).


    Migración entre plataformas

    Si ya tienes Coolify y quieres moverte a Dokploy (o viceversa), los dos exportan stacks Docker Compose. El truco: convertí cada service de Coolify en un compose stack de Dokploy, recrea las variables de entorno desde la UI, y transferí los volúmenes con docker run --rm -v nombre_vol:/from alpine tar czf - /from > backup.tar.gz del server viejo al nuevo. Los certificados no se migran — Let’s Encrypt los reemite automáticamente al detectar los nuevos dominios en Traefik.

    Para migrar de CapRover a Coolify: exporta cada app como docker-compose.yml desde la one-click store, recrea las variables en Coolify, y transferí volúmenes igual que arriba. CapRover usa captain- como prefijo para sus volúmenes internos, así que filtra con docker volume ls | grep captain- antes de hacer el dump.


    Checklist antes de instalar cualquiera

    1. DNS: tu dominio wildcard (*.tudominio.com) apunta a la IP del server (registro A o AAAA).
    2. Puertos: 80 y 443 abiertos en el firewall del proveedor; SSH en 22 abierto.
    3. RAM: mínimo 1 GB para CapRover, 2 GB para Coolify/Dokploy; agrega 2-4 GB de swap si andas justo.
    4. Docker: versión 20.10+ (Ubuntu 24.04 y Debian 13 lo traen en repos oficiales; en versiones viejas instala desde docker.com).
    5. Backups: definí desde el día uno dónde van los snapshots de volúmenes (S3, Backblaze B2, Hetzner Storage Box) — los tres paneles ofrecen backups automáticos pero el destino lo eliges tú.

Preguntas frecuentes

¿Por qué Coolify vs Dokploy vs CapRover: panel de deploy self-hosted 2026 es relevante para sysadmins Linux?

Forma parte del flujo diario de administración. Los conceptos explicados se aplican directamente a servidores en producción y resuelven problemas reales que enfrentan sysadmins hispanohablantes.

¿Qué necesito para empezar con Coolify vs Dokploy vs CapRover:?

Distribución Linux actualizada (Debian, Ubuntu, RHEL, Fedora o Arch), acceso root, y conexión a internet. Para producción: entorno de staging separado antes de aplicar cambios.

¿Cuáles son los errores más comunes con Coolify vs Dokploy vs CapRover:?

Los tres más frecuentes: (1) saltar la lectura de logs, (2) aplicar cambios directos en producción sin probar, (3) olvidar permisos y ownership. La documentación y un plan de rollback siempre.

¿Cuándo usar Coolify vs Dokploy vs CapRover: y cuándo una alternativa?

Esta solución es ideal para el caso descrito. Alternativas como Docker, Ansible o configuración manual pueden ser mejores según contexto: portabilidad, escala y reproducibilidad son los factores clave.

¿Cómo migro desde una configuración previa a Coolify vs Dokploy vs CapRover:?

Documentar el estado actual, probar la nueva configuración en staging, validar funcionalmente, y aplicar en producción con rollback plan listo. Los posts de SoyLinux incluyen troubleshooting para los problemas más comunes.

Lee también

Alfonso Moreno | Sysadmin Senior

Soy Alfonso, sysadmin senior con RHCE y más de 10 años administrando sistemas Linux para empresas y proyectos personales. Me especializo en infraestructura, redes, virtualización, monitoring, automation y self-hosting. Sobre SoyLinux.com SoyLinux.com es un blog técnico en español sobre Linux, software libre y self-hosting. Lo mantengo en mi tiempo libre. Áreas de expertise - Linux server administration: RHEL, CentOS, Rocky, Alma, Fedora, Debian, Ubuntu - Network services: Postfix, BIND, Samba, NFS, Squid - Virtualización y containers: KVM, Proxmox, Docker, Podman - Monitoring: Prometheus, Grafana, Zabbix - Automation: Ansible, Bash scripting - Self-hosting: Vaultwarden, Nextcloud, Jellyfin, Immich, Homelab Contacto - Email: [email protected]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *