Cómo instalar n8n en un VPS con Docker: guía paso a paso
Instalar n8n en un VPS con Docker es una de las formas más prácticas de tener una plataforma de automatización bajo tu propio control. Con una instalación self-hosted puedes crear workflows, conectar aplicaciones, recibir webhooks y ejecutar automatizaciones en tu propio servidor.
En esta guía aprenderás cómo instalar n8n en un VPS con Docker paso a paso, desde la preparación del servidor hasta la configuración del dominio, HTTPS, persistencia de datos, actualizaciones y backups.
Importante: n8n recomienda Docker para muchos escenarios de self-hosting porque proporciona un entorno aislado y facilita la gestión de la instalación.
¿Qué necesitas para instalar n8n en un VPS?
Antes de comenzar, prepara los siguientes elementos:
- Un VPS con Linux, por ejemplo Ubuntu.
- Acceso SSH al servidor.
- Docker Engine.
- Docker Compose v2.
- Un dominio o subdominio para n8n.
- Una dirección IP pública.
- Un certificado HTTPS para acceder de forma segura a la instancia.
- Espacio suficiente para almacenar workflows, credenciales, ejecuciones y otros datos.
Para comprobar que Docker Compose está instalado correctamente:
docker --version
docker compose version
La documentación actual de n8n utiliza Docker Compose v2 para este tipo de instalación.
¿Por qué instalar n8n en un VPS con Docker?
Una instalación de n8n en VPS te permite administrar tu propia infraestructura y decidir cómo se almacenan y procesan tus datos.
Entre sus principales ventajas están:
- Control sobre el servidor.
- Personalización de la configuración.
- Integración con servicios mediante webhooks.
- Persistencia de los datos.
- Posibilidad de utilizar Docker Compose.
- Mayor control sobre actualizaciones y backups.
- Posibilidad de ampliar recursos del VPS cuando aumenta la carga.
Además, Docker simplifica la instalación y permite mantener n8n aislado del resto de aplicaciones del servidor.
Paso 1: Preparar el VPS
Conéctate a tu servidor mediante SSH:
ssh usuario@IP_DEL_SERVIDOR
Después, actualiza los paquetes:
sudo apt update
sudo apt upgrade -y
También es recomendable configurar un firewall y permitir únicamente los puertos que realmente necesitas, normalmente SSH, HTTP y HTTPS.
Paso 2: Instalar Docker y Docker Compose
Instala Docker siguiendo las instrucciones correspondientes a tu distribución de Linux.
Después verifica la instalación:
docker --version
docker compose version
Debes utilizar el comando moderno:
docker compose
en lugar del antiguo:
docker-compose
La documentación de n8n utiliza actualmente Docker Compose v2.
Paso 3: Configurar el dominio para n8n
Antes de levantar el contenedor, crea un subdominio para tu instalación.
Por ejemplo:
n8n.tudominio.com
En el panel DNS de tu proveedor crea un registro:
Tipo: A
Nombre: n8n
Valor: IP_DE_TU_VPS
Cuando la propagación DNS haya terminado, el subdominio deberá apuntar a la IP pública de tu servidor.
La documentación oficial de n8n también utiliza un subdominio dedicado para exponer la instancia en Internet.
Paso 4: Crear el proyecto Docker de n8n
Crea una carpeta para la instalación:
mkdir n8n
cd n8n
En esta carpeta almacenaremos la configuración de Docker Compose y las variables de entorno.
Paso 5: Crear el archivo Docker Compose
Crea un archivo llamado:
compose.yaml
Puedes comenzar con una configuración sencilla como esta:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.tudominio.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- N8N_WEBHOOK_URL=https://n8n.tudominio.com/
- N8N_PROXY_HOPS=1
- NODE_ENV=production
- GENERIC_TIMEZONE=America/Guayaquil
- TZ=America/Guayaquil
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
La imagen oficial utilizada actualmente para Docker es docker.n8n.io/n8nio/n8n.
¿Para qué sirve N8N_WEBHOOK_URL?
Esta variable indica a n8n cuál es la URL pública que debe utilizar para sus webhooks cuando la aplicación está detrás de un reverse proxy.
En las versiones actuales de n8n se recomienda utilizar:
N8N_WEBHOOK_URL
en lugar de:
WEBHOOK_URL
porque esta última se considera un alias obsoleto.
N8N_PROXY_HOPS=1 indica que n8n se encuentra detrás de un reverse proxy. Si existen varios proxies, el valor debe ajustarse al número correspondiente.
Paso 6: Iniciar n8n con Docker Compose
Guarda el archivo y ejecuta:
docker compose up -d
Comprueba que el contenedor está funcionando:
docker compose ps
Para consultar los logs:
docker compose logs -f n8n
Si el contenedor está funcionando correctamente, podrás continuar con la configuración de acceso.
Paso 7: Configurar HTTPS para n8n
Para una instalación pública de n8n es recomendable utilizar HTTPS.
Una arquitectura habitual es:
Internet
↓
n8n.tudominio.com
↓
Reverse Proxy
↓
n8n Docker
↓
Puerto 5678
Puedes utilizar herramientas como Nginx Proxy Manager o Traefik para gestionar el tráfico HTTPS y los certificados TLS.
Cuando n8n funciona detrás de un reverse proxy, es importante que este transmita correctamente los headers X-Forwarded-For, X-Forwarded-Host y X-Forwarded-Proto.
Paso 8: Acceder a n8n
Una vez configurado el dominio y HTTPS, abre:
https://n8n.tudominio.com
En el primer acceso podrás configurar la cuenta propietaria de la instancia.
No compartas las credenciales de esta cuenta, ya que proporcionan acceso administrativo a tu instalación de n8n.
Paso 9: Comprobar que los webhooks funcionan
Los webhooks son una de las funciones más importantes de n8n.
Después de configurar tu dominio, crea un workflow sencillo con un nodo Webhook y comprueba que una petición externa puede llegar correctamente a tu instancia.
Si el webhook no funciona, revisa:
- El registro DNS.
- El certificado HTTPS.
N8N_WEBHOOK_URL.N8N_PROXY_HOPS.- La configuración del reverse proxy.
- Los headers
X-Forwarded-*. - El firewall del VPS.
Cómo actualizar n8n en Docker
Antes de actualizar una instalación de producción, es recomendable disponer de un backup reciente.
Para descargar la versión actual de la imagen:
docker compose pull
Después puedes recrear los contenedores:
docker compose down
docker compose up -d
Este es el flujo de actualización mostrado en la documentación de Docker de n8n.
Antes de actualizar a una versión nueva, revisa también los cambios incompatibles que puedan afectar a tus workflows o configuración.
Cómo hacer backups de n8n
Los datos persistentes de n8n deben formar parte de tu estrategia de backup.
En esta configuración utilizamos:
volumes:
- n8n_data:/home/node/.n8n
Este volumen contiene información importante de la instancia, por lo que no deberías depender únicamente del VPS como copia de seguridad.
Una estrategia más segura consiste en mantener copias externas y comprobar periódicamente que pueden restaurarse correctamente.
Backup ≠ simplemente copiar archivos.
Un backup útil debe poder recuperarse cuando realmente lo necesites.
¿SQLite o PostgreSQL para n8n?
Una instalación sencilla puede utilizar SQLite, que facilita mucho el despliegue inicial.
Sin embargo, para determinados escenarios de producción puede ser interesante utilizar PostgreSQL.
SQLite
Es una buena opción cuando:
- Estás empezando.
- Tienes una instalación pequeña.
- Buscas reducir la complejidad.
- No necesitas una arquitectura de base de datos separada.
PostgreSQL
Puede ser más apropiado cuando:
- La instalación crece.
- Necesitas una arquitectura más robusta.
- Tienes mayor volumen de workflows y ejecuciones.
- Quieres separar la aplicación de la base de datos.
Si necesitas una instalación más avanzada, puedes utilizar Docker Compose para desplegar n8n junto con PostgreSQL.
Errores frecuentes al instalar n8n en un VPS
n8n no carga en el navegador
Comprueba:
docker compose ps
y:
docker compose logs -f n8n
También verifica que el DNS apunta a la IP correcta y que los puertos necesarios están abiertos.
Los webhooks no funcionan
Comprueba especialmente:
N8N_WEBHOOK_URL
N8N_PROXY_HOPS
y la configuración del reverse proxy.
n8n necesita conocer correctamente la URL pública cuando está detrás de un proxy.
El contenedor se reinicia continuamente
Revisa los logs:
docker compose logs n8n
Busca errores relacionados con permisos, variables de entorno, almacenamiento o configuración.
No puedo actualizar n8n
Comprueba primero:
docker compose pull
y después:
docker compose up -d
Si tienes dudas sobre una versión concreta, revisa sus cambios antes de actualizar una instalación de producción.
Preguntas frecuentes sobre n8n en VPS
¿Puedo instalar n8n gratis en un VPS?
El software de n8n puede ejecutarse mediante una instalación self-hosted, pero el VPS, almacenamiento, dominio y otros servicios de infraestructura pueden tener costes.
¿Puedo instalar n8n en Ubuntu?
Sí. Docker y Docker Compose son una opción habitual para desplegar n8n en servidores Linux.
¿Es mejor n8n Cloud o instalar n8n en un VPS?
Depende de tus necesidades. n8n Cloud reduce la carga de administrar infraestructura, mientras que una instalación self-hosted ofrece mayor control sobre el servidor y la configuración.
¿Necesito un dominio para n8n?
No necesariamente para una prueba local, pero un dominio resulta especialmente útil cuando quieres publicar la instancia y utilizar webhooks externos.
¿Puedo usar n8n con Docker Compose?
Sí. n8n proporciona documentación específica para instalaciones mediante Docker Compose.
Conclusión
Instalar n8n en un VPS con Docker es una forma flexible de desplegar una plataforma de automatización bajo tu propio control.
El proceso básico consiste en:
- Preparar el VPS.
- Instalar Docker y Docker Compose.
- Configurar el dominio.
- Crear el proyecto Docker.
- Configurar n8n.
- Iniciar el contenedor.
- Configurar HTTPS y reverse proxy.
- Comprobar los webhooks.
- Crear una estrategia de backups.
- Mantener n8n actualizado.
Si estás comenzando, una instalación sencilla con Docker puede ser suficiente. A medida que aumente el volumen de automatizaciones, puedes evolucionar hacia una arquitectura con PostgreSQL, mayor capacidad de servidor y una estrategia de monitorización y backups más completa.
Quizás te interesa: Instalar n8n en Hostinger VPS



