Tutorial

Desplegar sus aplicaciones con Dokku en un VPS

Despliegue11 min de lectura6 pasos

Dokku se presenta como «el PaaS más pequeño del mundo». Construido en torno a Docker y a los buildpacks de Heroku, ofrece una experiencia de despliegue por `git push` en un VPS modesto, sin interfaz pesada ni orquestador integrado. Esta guía va más allá de la instalación básica: cubre las variables de entorno, el rollback zero-downtime, los plugins esenciales y la resolución de los errores más frecuentes.

Contenido· Por qué elegir Dokku para su VPS1/10
  1. 01Por qué elegir Dokku para su VPS
  2. 02Las ventajas concretas de Dokku
  3. 03Requisitos dimensionados para Dokku
  4. 04Instalar Dokku v0.38.x y desplegar una primera aplicación
  5. 05Gestionar varias aplicaciones y variables de entorno
  6. 06Actualizaciones zero-downtime y rollback
  7. 07Plugins esenciales
  8. 08Dokku vs CapRover vs Easypanel — comparativa 2026
  9. 09Resolución de errores frecuentes
  10. 10Para ir más lejos

Por qué elegir Dokku para su VPS

Donde otros PaaS incorporan una interfaz web y un orquestador completo, Dokku sigue siendo deliberadamente minimalista: se trata de un conjunto de scripts de shell que pilotan Docker. Usted envía su código con git push dokku main, Dokku detecta el lenguaje mediante los buildpacks de Heroku o un Dockerfile, construye la imagen y publica la aplicación. Todo se gestiona por línea de comandos, lo que lo hace extremadamente ligero y previsible.

CapRover, Coolify y Easypanel ofrecen todos una interfaz gráfica, pero a un coste de memoria muy superior. CapRover recomienda 2 GB de RAM como mínimo; Coolify 4 también requiere 2 GB por su PostgreSQL integrado; Easypanel necesita 2 GB en cuanto hay un build activo. Dokku, en cambio, funciona desde 512 MB de RAM para una aplicación ligera y no añade ningún componente de control permanente.

Las ventajas concretas de Dokku

  • Huella de memoria mínima: funciona desde 512 MB de RAM para una app ligera, 1 GB con comodidad.
  • Despliegue por git push, como en Heroku, con detección automática del lenguaje mediante buildpacks.
  • Soporte nativo de buildpacks de Heroku (Node, Python, Ruby, Go, PHP…) y de Dockerfiles.
  • Plugins oficiales para PostgreSQL, MySQL, Redis y MongoDB, gestionados íntegramente por CLI.
  • Plugin Let's Encrypt para HTTPS automático con renovación integrada vía cron.
  • Zero-downtime deploys gracias a health checks configurables antes de la conmutación del contenedor.
  • Rollback instantáneo mediante dokku tags y dokku deploy sobre una imagen anterior.
  • Inyección automática de variables de conexión (DATABASE_URL, REDIS_URL) en el plugin:link.

Requisitos dimensionados para Dokku

Dokku es el PaaS más económico en recursos de esta serie.

RAM. 512 MB es suficiente para una aplicación ligera. Prevea 1 GB para un uso habitual y 2 GB en cuanto sus builds usen buildpacks (Node, Ruby, Python compilan en memoria) o aloje una base de datos en el mismo VPS. Para varias aplicaciones en paralelo con PostgreSQL, apunte a 4 GB.

CPU. 1 vCPU es suficiente para aplicaciones ligeras. Las fases de build de buildpack son intensivas en CPU pero no bloquean el despliegue.

Disco. Cuente con 20 GB de SSD mínimo.

Swap. En un VPS de 1 o 2 GB de RAM, añada siempre 2 GB de swap para evitar que el OOM killer del kernel mate un build de Node o Ruby.

Sistema. Ubuntu 22.04 LTS o 24.04 LTS recién instalado, sin Docker ni Nginx preinstalados. Los puertos 22 (SSH), 80 y 443 deben estar abiertos.

DNS. Configure un dominio por aplicación o un dominio wildcard *.your-domain.com apuntando a la IP del VPS.

Instalar Dokku v0.38.x y desplegar una primera aplicación

  1. Descargar y ejecutar el script oficial de arranque

    En un Ubuntu 22.04 o 24.04 LTS recién instalado, descargue el script de instalación y ejecútelo:

    wget -NP . https://dokku.com/bootstrap.sh
    sudo DOKKU_TAG=v0.38.x bash bootstrap.sh

    El script instala Docker (si está ausente), Nginx y Dokku. La operación dura de dos a cinco minutos.

  2. Configurar el dominio global y añadir su clave SSH

    Defina el dominio raíz que Dokku usará para construir los subdominios de las aplicaciones:

    dokku domains:set-global your-domain.com

    A continuación, añada su clave SSH pública para autorizar los despliegues:

    cat ~/.ssh/id_ed25519.pub | ssh [email protected] "dokku ssh-keys:add admin"
  3. Crear una aplicación y configurar el remote de Git

    En el servidor, cree la aplicación objetivo:

    dokku apps:create my-app

    En su equipo local, añada Dokku como remote de Git:

    git remote add dokku [email protected]:my-app

    Dokku creará automáticamente el subdominio my-app.your-domain.com.

  4. Aprovisionar una base de datos PostgreSQL

    Instale el plugin oficial de PostgreSQL (una vez por servidor):

    dokku plugin:install https://github.com/dokku/dokku-postgres.git

    Cree una base de datos y enlácela con la aplicación:

    dokku postgres:create my-db
    dokku postgres:link my-db my-app

    El link inyecta automáticamente la variable DATABASE_URL en el contenedor de la aplicación.

  5. Desplegar la aplicación por primera vez

    Desde su repositorio local, envíe a Dokku:

    git push dokku main

    Dokku detecta el lenguaje, descarga el buildpack correspondiente, construye la imagen Docker y arranca el contenedor. El proceso se muestra en tiempo real en el terminal.

  6. Activar HTTPS con Let's Encrypt

    Instale el plugin Let's Encrypt (una vez por servidor):

    dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git

    Defina el correo para las notificaciones y active el certificado:

    dokku letsencrypt:set my-app email [email protected]
    dokku letsencrypt:enable my-app

    Active la renovación automática:

    dokku letsencrypt:cron-job --add

Gestionar varias aplicaciones y variables de entorno

Dokku gestiona cada aplicación en un contenedor aislado. Puede alojar tantas aplicaciones como soporte su VPS.

Variables de entorno. Use dokku config:set para inyectar secretos o parámetros de configuración:

dokku config:set my-app NODE_ENV=production \
  SECRET_KEY=changeme

Staging vs producción. La práctica habitual es crear dos aplicaciones en el mismo servidor:

dokku apps:create my-app-staging
dokku apps:create my-app-production

Dominios personalizados. Para asociar un dominio existente:

dokku domains:add my-app your-domain.com

Actualizaciones zero-downtime y rollback

Dokku gestiona el zero-downtime mediante checks de salud antes de la conmutación. Configure un fichero CHECKS en la raíz de su proyecto:

WAIT=10
TIMEOUT=60
/healthz Application is up

Tags y rollback. Dokku conserva las imágenes Docker de despliegues anteriores como tags. Para revertir:

dokku tags:list my-app
dokku tags:deploy my-app v3

Para crear un tag de seguridad antes de un despliegue arriesgado:

dokku tags:create my-app stable-before-migration

Plugins esenciales

PostgreSQL. El más utilizado. Comandos adicionales útiles: dokku postgres:backup my-db para un volcado manual, dokku postgres:connect my-db para acceso psql interactivo.

Redis.

dokku plugin:install https://github.com/dokku/dokku-redis.git
dokku redis:create my-cache
dokku redis:link my-cache my-app

Inyecta la variable REDIS_URL en el contenedor.

Cron (planificador). Cree un fichero app.json en la raíz de su proyecto:

{
  "cron": [
    { "command": "php artisan schedule:run", "schedule": "* * * * *" }
  ]
}

Dokku vs CapRover vs Easypanel — comparativa 2026

Desplace la tabla

CriterioDokku 0.35CapRover 1.xEasypanel 2.x
RAM en reposo~100 MB (Nginx + daemon)~400 MB (Swarm + supervisor)~350 MB (Traefik + API)
Interfaz gráficaNo — solo CLISí (panel web)Sí (panel moderno)
BuildpacksHeroku buildpacks (CNB)captain-definition / DockerNixpacks o Dockerfile
Despliegue Gitgit push nativoCLI caprover + webhookWebhook GitHub / GitLab
Plugins / marketplace~100 plugins oficialesCatálogo One-Click (~150 apps)Marketplace integrada (~200 apps)
Zero-downtimeSí (fichero CHECKS)Sí (rolling Docker Swarm)Sí (Traefik labels)
Rollbackdokku tags:deployReconstrucción desde imagenRedespliegue desde Git
Multi-servidorNo nativoSí (Docker Swarm multi-nodo)Sí (agentes remotos)
KubernetesNoNo (solo Docker Swarm)No
LicenciaMITApache 2.0Propietaria (plan gratuito)
Curva de aprendizajeBaja (CLI sencilla)ModeradaBaja (interfaz intuitiva)

Swap recomendado desde 1 GB de RAM. En un VPS ligero, añada 2 GB de swap antes de cualquier otra cosa: un build de Node o Python sin swap es eliminado regularmente por el OOM killer.

Fichero CHECKS. Sin este fichero, Dokku conmuta en cuanto arranca el contenedor, antes de que la aplicación esté lista para responder.

Rotación de logs. Los logs de Docker crecen sin límite por defecto. Configure la rotación en /etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": { "max-size": "50m", "max-file": "3" }
}

Resolución de errores frecuentes

error: failed to push some refs — permiso denegado.
Compruebe que su clave SSH está registrada: dokku ssh-keys:list. Si está ausente, añádala con dokku ssh-keys:add admin < ~/.ssh/id_ed25519.pub.

! [remote rejected] — hook pre-receive rechazado.
Este error indica un fallo de build en el lado de Dokku. Consulte los logs detallados con dokku logs my-app.

La aplicación devuelve 502 Bad Gateway.
Compruebe el estado del proceso: dokku ps:report my-app. Causa frecuente: la aplicación no escucha en el puerto declarado en el Procfile.

letsencrypt:enable falla — timeout del challenge HTTP-01.
El desafío ACME requiere que el dominio resuelva a la IP del VPS antes de la activación. Verifique la propagación DNS: dig +short my-app.your-domain.com.

El build es eliminado por el kernel (OOM) — Killed.
El OOM killer intervino por falta de memoria. Añada swap o migre a un VPS con 2 GB de RAM.

Para ir más lejos

Dokku cubre el despliegue de aplicaciones de contenedor único en un VPS. Si su arquitectura evoluciona hacia varios servicios interdependientes, varias alternativas de la misma familia complementan este enfoque: CapRover añade una interfaz gráfica y un modo clúster Docker Swarm. Easypanel simplifica la gestión multi-servicio con Nixpacks y un marketplace de aplicaciones. Todas estas herramientas funcionan en un VPS Cloud de ServOrbit con Ubuntu LTS.

Ponga Dokku en producción en su VPS

Un VPS Cloud de ServOrbit con Ubuntu LTS, ligero y asequible, es el terreno ideal para Dokku y su flujo de despliegue por git push.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva