¿Por qué desplegar con Dokploy en tu VPS?
Los proveedores de PaaS gestionado popularizaron un modelo atractivo: sube el código, obtén una URL. Pero esa comodidad tiene un precio. A medida que crece el tráfico o las bases de datos, la factura mensual se dispara. Dokploy invierte la ecuación: instálalo una sola vez en un VPS de recursos fijos y obtén la misma experiencia de despliegue a un coste predecible desde 99 DH/mes/mes.
La plataforma se basa íntegramente en Docker. Cada aplicación corre en un contenedor o stack Compose; Dokploy orquesta la red, los volúmenes, el proxy inverso Traefik y los certificados Let's Encrypt. La interfaz web permite gestionar todo sin abrir un terminal, aunque este sigue disponible para operaciones avanzadas.
Puntos fuertes de Dokploy
- Despliegue desde Git (GitHub, GitLab, Bitbucket) o desde una imagen de Docker Hub
- Proxy inverso Traefik integrado con SSL Let's Encrypt automático
- Soporte nativo de Docker Compose — despliega stacks multi-servicio con un clic
- Variables de entorno cifradas gestionadas directamente en la interfaz
- Copias de seguridad programadas hacia S3, Backblaze B2 o almacenamiento compatible
- Bases de datos gestionadas (PostgreSQL, MySQL, MongoDB, Redis) aprovisionadas localmente
- Logs en tiempo real y métricas CPU/RAM por servicio
- Open source, sin telemetría forzada, autoalojado en tu infraestructura
Dokploy vs Coolify vs Caprover — ¿cuál elegir?
Desplace la tabla
| Criterio | Dokploy | Coolify | Caprover |
|---|---|---|---|
| Licencia | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| Proxy integrado | Traefik | Traefik / Caddy | NGINX |
| Docker Compose nativo | Sí | Sí | Parcial |
| Bases de datos gestionadas | Sí (5 motores) | Sí (muchos) | No nativo |
| Copias de seguridad integradas | Sí (S3/B2) | Sí | No |
| Interfaz de usuario | Moderna, clara | Muy completa | Funcional |
| Curva de aprendizaje | Baja | Media | Media |
| Madurez (mediados 2026) | Activa — v0.15.x | Madura — v4.x | Estable — v1.x |
Requisitos previos
Antes de instalar Dokploy, asegúrate de disponer de lo siguiente:
- Un VPS con Ubuntu 22.04 LTS o Debian 12 (recomendados), con mínimo 2 vCPU y 2 GB de RAM. Para stacks complejos (Supabase, n8n con workers), prevé 4 GB.
- Acceso SSH como root o un usuario con privilegios sudo.
- Un nombre de dominio apuntando a la IP de tu VPS — o al menos la dirección IP para una prueba inicial.
- Los puertos 80 y 443 abiertos en tu firewall. Dokploy también usa el puerto 3000 para su interfaz durante la instalación; puedes restringirlo después.
- Docker Engine ausente del servidor en el momento de la instalación (el script de Dokploy lo instala en la versión correcta).
Instalar y desplegar con Dokploy
Conéctate a tu VPS por SSH
Abre un terminal y conéctate:
ssh root@tu-ip. Si usas un usuario no-root, añadesudoantes de los siguientes comandos.Ejecuta el script de instalación oficial
Un único comando instala Docker, Traefik y el panel Dokploy:
curl -sSL https://dokploy.com/install.sh | sh. El script detecta tu distribución, instala las dependencias y arranca los servicios. La operación tarda entre dos y cinco minutos.Accede a la interfaz y crea tu cuenta de administrador
Una vez finalizada la instalación, abre
http://tu-ip:3000en tu navegador. La primera visita muestra un formulario de creación de cuenta de administrador. Elige una contraseña fuerte — es la única cuenta con acceso completo a todos los recursos.Conecta tu repositorio Git
En el menú Ajustes → Proveedores Git, añade un token de acceso personal de GitHub, GitLab o Bitbucket. Para GitHub, un token con los scopes
repoyread:useres suficiente.Crea tu primer proyecto y servicio
Haz clic en Nuevo proyecto, dale un nombre y añade un Servicio. Elige el tipo: *Aplicación* (imagen Docker o repositorio Git), *Docker Compose* o *Base de datos*.
Configura el dominio y el SSL
En la pestaña Dominios de tu servicio, añade tu dominio (ej.
app.tudominio.com). Dokploy crea automáticamente una regla Traefik y solicita un certificado Let's Encrypt vía el reto HTTP-01. Activa la redirección HTTPS forzada desde la misma pestaña.Inyecta tus variables de entorno
Ve a la pestaña Entorno del servicio. Introduce cada variable como
CLAVE=valor. Los valores se almacenan cifrados y nunca se exponen en los logs.Lanza el primer despliegue
Haz clic en Desplegar. Dokploy descarga la imagen o clona el repositorio, construye si es necesario, crea el contenedor y lo conecta al proxy. Sigue el progreso en la pestaña Logs de despliegue en tiempo real.
Activa los webhooks para despliegue continuo
Copia la URL del webhook mostrada en la pestaña General del servicio y pégala en los ajustes de webhook de tu repositorio Git. A partir de ahora, cada
git pushdisparará un redespliegue automático.Verifica la salud del servicio y las métricas
La pestaña Monitorización muestra el uso de CPU, RAM y red del contenedor en directo. Si has configurado un health check en tu
Dockerfile, Dokploy lo respeta y reinicia el contenedor automáticamente en caso de fallo prolongado.
Desplegar un stack Docker Compose completo — ejemplo con n8n
La verdadera potencia de Dokploy aparece con los stacks multi-servicio. Aquí mostramos cómo desplegar n8n (automatización de flujos de trabajo) con su base de datos PostgreSQL.
En Dokploy, crea un nuevo servicio de tipo Docker Compose y pega directamente tu docker-compose.yml. Un ejemplo mínimo incluye el servicio n8n con image: n8nio/n8n, variables de entorno DB_TYPE=postgresdb y DB_POSTGRESDB_HOST=postgres, y el servicio postgres con su volumen persistente.
Dokploy crea una red Docker interna aislada para tu stack. Para Supabase, el enfoque es idéntico: importa el docker-compose.yml oficial y despliega.
Configurar dominios, SSL y variables de entorno
Dokploy soporta múltiples dominios por servicio — útil para exponer una API y un dashboard bajo subdominios distintos desde el mismo contenedor. Cada dominio dispone de su propia regla de enrutamiento Traefik y su certificado SSL independiente.
Para un wildcard (*.midominio.com), Traefik requiere un challenge DNS-01 en lugar de HTTP-01. Dokploy expone las opciones de configuración avanzada de Traefik en Configuración → Proxy; puedes inyectar allí archivos de configuración TOML personalizados.
Nunca almacenes secretos en tu docker-compose.yml versionado. Usa siempre la pestaña Entorno de Dokploy, que cifra los valores en reposo. Para los secretos compartidos entre varios servicios de un mismo stack (clave de cifrado, token de API), defínelos una sola vez a nivel de proyecto y referencíalos en cada servicio.
Copias de seguridad y bases de datos gestionadas
Dokploy puede aprovisionar directamente PostgreSQL, MySQL, MongoDB, Redis y MariaDB en tu VPS, sin escribir archivos Docker Compose manualmente. En Nuevo servicio → Base de datos, elige el motor y define el nombre, usuario y contraseña.
Para las copias de seguridad, ve a la pestaña Copias de seguridad del servicio de base de datos. Configura un destino S3 y una planificación cron. Prueba la restauración con regularidad — una copia de seguridad no probada no es una copia de seguridad.
Para los volúmenes de aplicación (archivos subidos, assets generados), la copia de seguridad sigue la misma lógica: Dokploy archiva el contenido del volumen y lo envía al mismo destino. Prueba la restauración con regularidad — una copia de seguridad no probada no es una copia de seguridad.
Resolución de problemas — 4 errores frecuentes
Estos son los mensajes de error más comunes y cómo resolverlos.
1. Error response from daemon: pull access denied — La imagen es privada o el nombre es incorrecto. Comprueba la ortografía exacta y añade tus credenciales de Docker Hub en Ajustes → Docker Registries.
2. Certificate not found for domain — El reto HTTP-01 de Let's Encrypt ha fallado. Causas frecuentes: el DNS aún no apunta al servidor, o el puerto 80 está bloqueado. Verifica con curl -I http://tu-dominio desde una máquina externa.
3. Container exited with code 1 al arrancar — La aplicación se cuelga inmediatamente. Abre la pestaña Logs del servicio para leer el stderr del contenedor. La causa casi siempre es una variable de entorno faltante o una conexión a la base de datos rechazada.
4. bind: address already in use — Otro proceso ocupa el puerto que tu servicio intenta abrir. En el servidor, ss -tlnp | grep :PORT identifica el proceso responsable.
Consejo de seguridad — restringir el acceso a la interfaz de administración
Por defecto, el puerto 3000 de Dokploy es accesible desde cualquier IP. En producción, restringe el acceso a nivel de firewall: ufw allow from TU_IP_FIJA to any port 3000, luego ufw delete allow 3000. Activa la autenticación de dos factores desde Ajustes → Cuenta.
Nota sobre la versión
Esta guía está redactada en coherencia con las funcionalidades disponibles alrededor de la rama v0.15.x de Dokploy (mediados de 2026). El proyecto evoluciona rápidamente; consulta el changelog de GitHub para conocer las novedades recientes.
Documentación oficial
La documentación completa de Dokploy está disponible en docs.dokploy.com. Allí encontrarás guías de integración CI/CD (GitHub Actions, GitLab CI), la referencia de la API REST y ejemplos de configuración avanzada de Traefik.