Tutoriales de VPS
Guía completa para desplegar Dokploy en un VPS (2026): Vercel/Heroku autoalojado, despliegue automático con Git, HTTPS y copias de seguridad
Instala Dokploy en un VPS y autoaloja una alternativa a Vercel/Heroku: configuración del servidor, despliegue automático con Git, HTTPS con Traefik, copias de seguridad de bases de datos y volúmenes, actualizaciones, endurecimiento de seguridad y solución de problemas comunes.

Guía completa para desplegar Dokploy en un VPS (2026): Vercel/Heroku autoalojado, despliegue automático con Git, HTTPS y copias de seguridad
Si ya sabes usar Docker pero no quieres escribir a mano el Compose, configurar el proxy inverso y los certificados cada vez que publicas, Dokploy es un PaaS autoalojado que merece la pena desplegar en un VPS. Reúne los repositorios de código, las compilaciones, los contenedores, los dominios, HTTPS, las bases de datos, los registros y las copias de seguridad en un mismo panel, lo que lo hace adecuado para desarrolladores individuales, equipos pequeños y proyectos SaaS que necesitan controlar el coste del servidor.
Este tutorial no se limita a dar un comando de instalación: también explica cómo elegir la configuración del VPS, por qué es obligatorio revisar los puertos antes de instalar, cómo conectar repositorios Git, cómo configurar dominios y HTTPS, y qué es lo que más se pasa por alto al hacer copias de seguridad y actualizar.
Dokploy puede desplegar repositorios Git o proyectos de Docker Compose en tu propio servidor. Sigues siendo dueño del VPS, las bases de datos y los contenedores; simplemente delegas las tareas repetitivas de despliegue al panel.
Encaja en estos escenarios:
- Quieres autoalojar en un VPS una alternativa a Vercel, Heroku o Railway;
- Necesitas despliegue continuo desde GitHub, GitLab, Gitea o Bitbucket;
- Ejecutas varios sitios web, API, workers y bases de datos en un mismo servidor;
- Quieres ver de forma unificada los registros de compilación, el estado de los contenedores, los dominios y los certificados;
- No quieres mantener Kubernetes desde el principio.
Si solo ejecutas un contenedor que no cambia durante mucho tiempo, una configuración de Docker Compose para producción suele ser más sencilla. El valor de Dokploy está en múltiples proyectos, publicaciones frecuentes y colaboración en equipo.
La recomendación oficial actual de Dokploy es de al menos 2 GB de memoria y 30 GB de disco. Esto es solo el punto de partida para instalar y compilar sin problemas, no significa que todas las aplicaciones quepan en 2 GB.
| Escala de uso | Configuración recomendada | Escenarios adecuados |
|---|---|---|
| Pruebas y aplicaciones ligeras | 2 núcleos, 2 GB, 30 GB SSD | Sitios estáticos, API pequeñas en Node/Python, sin bases de datos pesadas en la misma máquina |
| Producción habitual | 2–4 núcleos, 4 GB, 60 GB SSD | 2–5 aplicaciones, más un PostgreSQL o Redis |
| Varios proyectos o compilaciones locales | 4 núcleos, 8 GB, 100 GB NVMe | Varios servicios, compilaciones frecuentes, bases de datos, monitorización y copias de seguridad |
Al compilar imágenes de Next.js, Java o Rust, el uso momentáneo de memoria y disco aumenta de forma notable. Si el presupuesto es limitado, es mejor empezar con 4 GB que dejar que los procesos de compilación y las bases de datos se disputen los últimos cientos de MB de memoria. Para un método de selección más detallado, consulta Cómo elegir la configuración del VPS.
Los sistemas de prueba que figuran en la documentación oficial incluyen Ubuntu 20.04/22.04/24.04 LTS, Debian 10/11/12, Fedora 40 y CentOS 8/9. Para despliegues nuevos, conviene elegir una versión Ubuntu LTS o Debian 12 que siga dentro de su periodo de mantenimiento.
Prepara un VPS público limpio y confirma:
- Puedes iniciar sesión por SSH y obtener privilegios de root;
- El registro A del dominio apunta a la IPv4 pública del VPS;
- Los puertos TCP 80, 443 y 3000 no están ocupados por Nginx, Caddy, Apache u otro panel;
- El grupo de seguridad del proveedor cloud y el firewall del sistema permiten el acceso a estos puertos durante la instalación;
- El disco tiene al menos 30 GB de espacio libre.
Revisa primero los puertos:
sudo ss -lntp | grep -E ':(80|443|3000)\b' || true
Si hay salida, primero determina si el servicio existente se puede migrar. Dokploy usa Traefik para ocupar los puertos 80 y 443, por lo que instalarlo directamente en una máquina que ya ejecuta un sitio web suele provocar conflictos de puertos. Para migraciones en producción, prepara primero una máquina nueva o una ventana de mantenimiento.
Ejecuta el script de instalación oficial en un shell de root:
curl -sSL https://dokploy.com/install.sh | sh
Si el servidor aún no tiene Docker, el script de instalación lo instala automáticamente. Cuando termine, accede desde el navegador a:
http://你的服务器IP:3000
Crea de inmediato la cuenta de administrador. No expongas el puerto 3000 a todas las fuentes de forma prolongada; primero completa el dominio del panel y HTTPS, y después cierra la entrada por IP pública y puerto.
Si la instalación falla, revisa primero:
docker version
docker info
docker service ls
docker ps
sudo ss -lntp | grep -E ':(80|443|3000)\b'
Dokploy usa Docker Swarm. Si el servidor cloud tiene varias tarjetas de red o la detección automática es incorrecta, puedes especificar explícitamente la dirección de anuncio:
curl -sSL https://dokploy.com/install.sh | sudo ADVERTISE_ADDR=你的服务器IP sh
Primero prepara un subdominio dedicado para el panel, por ejemplo deploy.example.com, y apunta su registro A al VPS. Entra en la configuración de Domains de Dokploy, añade el dominio y activa el certificado.
Después de confirmar que puedes iniciar sesión con normalidad en https://deploy.example.com, elimina la asignación pública de IP:3000 como recomienda la documentación oficial:
docker service update \
--publish-rm "published=3000,target=3000,mode=host" \
dokploy
El orden importa. Si eliminas el puerto 3000 antes de que el dominio o el certificado estén activos, puedes quedarte fuera del panel.
Al final, el firewall solo necesita abrir al público los puertos necesarios:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Para una estrategia más completa de SSH, Fail2Ban y firewall, consulta la guía de endurecimiento de seguridad para VPS.
Crea un Project en Dokploy y luego añade una Application. El flujo habitual es:
- Conectar GitHub, GitLab, Gitea o Bitbucket;
- Seleccionar el repositorio y la rama de producción;
- Elegir el método de compilación, por ejemplo Dockerfile, Nixpacks o sitio estático;
- Indicar el puerto del contenedor en el que escucha la aplicación;
- Añadir las variables de entorno;
- Pulsar Deploy y observar los registros de compilación y ejecución;
- Añadir el dominio de la aplicación y activar HTTPS.
La aplicación debe escuchar en 0.0.0.0 dentro del contenedor, no solo en 127.0.0.1. Por ejemplo, una aplicación Node debe escuchar en el PORT que proporciona la plataforma; de lo contrario, el contenedor puede aparecer en ejecución pero Traefik no podrá acceder a él.
No subas .env, contraseñas de bases de datos ni claves de API a Git. Coloca las variables de producción en la configuración de variables de entorno de Dokploy y distingue entre variables de tiempo de compilación y de tiempo de ejecución. Tras modificar variables, vuelve a desplegar y confirma que el nuevo contenedor cargó realmente los nuevos valores.
Los dominios de Application en Dokploy se configuran dinámicamente mediante Traefik; los proyectos de Docker Compose normalmente necesitan volver a desplegarse tras cambiar un dominio para que Traefik vuelva a leer las etiquetas.
Orden de diagnóstico:
dig +short app.example.com
curl -I http://app.example.com
docker service ls
docker service ps 服务名
docker service logs 服务名 --tail 100
Céntrate en confirmar cuatro cosas:
- Si el DNS apunta realmente al VPS actual;
- Si los puertos 80/443 están bloqueados por el grupo de seguridad o UFW;
- Si el puerto del contenedor está configurado con el puerto real en el que escucha la aplicación;
- Si el proceso de la aplicación escucha en
0.0.0.0.
Si necesitas entender los certificados automáticos y la cadena del proxy inverso, continúa con la guía de HTTPS automático con Caddy. La implementación es distinta, pero el enfoque de diagnóstico de DNS, puertos y escucha del upstream es el mismo.
Que en el panel aparezca "el contenedor está en ejecución" no significa que los datos estén seguros. Debes proteger por separado al menos tres tipos de datos:
- El PostgreSQL propio de Dokploy y
/etc/dokploy; - Las bases de datos de negocio;
- Los archivos subidos o datos SQLite en volúmenes con nombre de Docker.
Las copias de seguridad del sistema de Dokploy requieren configurar primero un destino compatible con S3. Las copias del sistema empaquetan el PostgreSQL de Dokploy y /etc/dokploy, y luego los suben al almacenamiento de objetos. Las bases de datos de negocio deben tener copias programadas aparte; las aplicaciones que usan volúmenes con nombre también deben activar Volume Backups.
No pongas el destino de las copias en el mismo disco que el VPS, o las copias se perderán junto con el servidor si este falla. Haz un simulacro de restauración al menos una vez por trimestre para verificar credenciales, archivos y pasos de restauración. Puedes aplicar directamente la lista de verificación de simulacros de copia y restauración en VPS.
El comando oficial para actualizar a la última versión es:
curl -sSL https://dokploy.com/install.sh | sh -s update
En producción, no ejecutes una actualización en cuanto la veas. Primero completa las copias de seguridad del sistema y de las bases de datos, lee las notas de la versión y elige una ventana de bajo tráfico para actualizar. Las publicaciones de aplicaciones deben tener configurados health checks; solo con ellos Docker Swarm tiene una base fiable para detener una versión defectuosa o ejecutar una reversión.
Además, asegúrate de:
- Usar solo inicio de sesión SSH con clave, desactivando el inicio de sesión remoto con contraseña y con contraseña de root;
- Activar HTTPS en el dominio del panel y no exponer el puerto 3000 de forma prolongada;
- Limitar los permisos de los miembros del equipo y no compartir la cuenta de administrador;
- No asignar bases de datos directamente a la red pública;
- Limpiar periódicamente imágenes y cachés de compilación sin usar, pero sin borrar por error datos que aún usan los volúmenes;
- Configurar alertas para fallos de disco, memoria, certificados y copias de seguridad.
| Opción | Posicionamiento principal | Más adecuado para |
|---|---|---|
| Dokploy | PaaS autoalojado, despliegue con Git, Traefik, Swarm | Varios proyectos, despliegue continuo, servidores remotos |
| Coolify | PaaS autoalojado, gestión de aplicaciones y bases de datos | Quien quiere un panel de despliegue todo en uno maduro |
| Portainer | Interfaz de gestión de Docker/Swarm | Contenedores ya existentes que necesitan operación visual |
| Docker Compose | Orquestación declarativa de contenedores | Pocos servicios, pocos cambios, mantener la simplicidad |
Portainer es más un gestor de contenedores, mientras que Dokploy y Coolify son más plataformas de despliegue. Si quieres gestionar directamente Stacks, contenedores, redes y registros, lee el tutorial del panel de gestión Docker Portainer.
No es recomendable. La recomendación oficial es de al menos 2 GB de memoria y 30 GB de disco; con 1 GB es fácil que se bloquee o se produzca OOM durante las compilaciones de Docker.
No necesariamente sobrescribe la configuración, pero si los puertos 80, 443 y 3000 están ocupados, la instalación fallará o habrá conflictos de enrutamiento. Si ya tienes un sitio web en producción, es preferible usar un VPS nuevo.
El flujo de instalación oficial actual usa Docker Swarm, por lo que al diagnosticar debes revisar docker service, no solo docker compose ps.
Sí, pero primero verifica el certificado del origen y el enrutamiento con DNS only, y luego activa el proxy para localizar problemas con más facilidad. No uses Cloudflare para ocultar errores de puerto o certificado del origen.
No hay una respuesta absoluta. Si ya usas uno de ellos de forma estable, migrar suele aportar menos beneficios que mejorar las copias de seguridad, la monitorización y la reversión. Para proyectos nuevos, compara primero la integración con Git, los servidores remotos, los métodos de copia de seguridad y los permisos de equipo, y luego verifícalo con un VPS de prueba.
Lo más atractivo de Dokploy no es la "instalación con un clic", sino reunir Git, compilaciones, contenedores, dominios, certificados, bases de datos y copias de seguridad en un proceso de publicación repetible. El enfoque realmente apto para producción es: empezar con un VPS limpio de al menos 2 GB/30 GB, resolver primero los puertos y el DNS, desplegar después las aplicaciones y, por último, completar las copias de seguridad externas, los health checks y el control de acceso.
Si vas a ejecutar varios proyectos a largo plazo, elige directamente 4 GB de memoria y disco NVMe, y realiza un simulacro de restauración de Dokploy desde una copia en S3 antes de poner en marcha tu primer negocio.