1️⃣ Requisitos previos antes de instalar
-
VPS con CloudPanel ya instalado.
-
Docker instalado en el VPS:
curl -fsSL https://get.docker.com | sh
-
Dominio o subdominio apuntando a la IP del VPS.
-
Certificado SSL habilitado en CloudPanel para ese subdominio.
2️⃣ Configurar el Reverse Proxy en CloudPanel
-
Entra a CloudPanel → Sites → Create Site → Reverse Proxy.
-
Completa así:
-
Crear el sitio.
-
Entrar en el sitio recién creado y activar Let’s Encrypt SSL.
3️⃣ Preparar el entorno Docker
-
Conectarte por SSH al VPS.
-
Crear un volumen limpio para los datos:
docker volume create n8n_data
4️⃣ Descargar e iniciar n8n
Usamos la imagen estable desde GitHub Container Registry para evitar errores de latest roto.
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=USUARIO \
-e N8N_BASIC_AUTH_PASSWORD=CONTRASEÑA \
-e N8N_HOST=subdominio.tudominio.com \
-e N8N_PORT=5678 \
-e N8N_PROTOCOL=http \
-e WEBHOOK_URL=https://subdominio.tudominio.com/ \
-e NODE_ENV=production \
--restart unless-stopped \
ghcr.io/n8n-io/n8n:1.109.2
📌 Sustituir
-
USUARIO→ usuario para acceder a n8n. -
CONTRASEÑA→ contraseña para acceder. -
subdominio.tudominio.com→ el subdominio configurado en CloudPanel.
5️⃣ Verificar que está funcionando
- Ver logs:
docker logs -f n8n
Debes ver:
n8n ready on 0.0.0.0, port 5678
- Probar en el navegador:
https://subdominio.tudominio.com
Entrar con usuario y contraseña configurados.
6️⃣ Actualizar n8n en el futuro
docker stop n8n && docker rm n8n
docker pull ghcr.io/n8n-io/n8n:1.109.2
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=USUARIO \
-e N8N_BASIC_AUTH_PASSWORD=CONTRASEÑA \
-e N8N_HOST=subdominio.tudominio.com \
-e N8N_PORT=5678 \
-e N8N_PROTOCOL=http \
-e WEBHOOK_URL=https://subdominio.tudominio.com/ \
-e NODE_ENV=production \
--restart unless-stopped \
ghcr.io/n8n-io/n8n:1.109.2
7️⃣ Notas importantes
-
No uses
~/.n8nen el host: puede causar el error"Command start not found". -
Siempre usar un volumen limpio gestionado por Docker (
n8n_data). -
N8N_PROTOCOL=httpporque CloudPanel maneja el SSL. -
El puerto
5678solo debe ser accesible localmente, el acceso externo siempre por el subdominio con Reverse Proxy. -
Si cambias de subdominio, debes cambiar
N8N_HOSTyWEBHOOK_URL.