n8n es una herramienta de automatización de flujos de trabajo open-source y self-hosted que te permite conectar cientos de aplicaciones sin escribir código (o con muy poco). Es la alternativa libre a Zapier, Make o IFTTT, y lo mejor: tú controlas tus datos porque corre en tu propio servidor.
En este tutorial te guío paso a paso para instalar n8n en un VPS con Docker, asegurarlo con SSL y dejarlo listo para producción.
1. ¿Por qué n8n en un VPS?
- 🆓 Gratis e ilimitado — sin límite de ejecuciones ni pasos como en Zapier
- 🔐 Tus datos son tuyos — nada pasa por servidores de terceros
- 🧩 400+ integraciones — WhatsApp, Telegram, Gmail, Sheets, WordPress, IA, APIs REST...
- 🤖 Nodos de IA nativos — conecta con OpenAI, Claude, Whisper, etc.
- 📊 Interfaz visual tipo flowchart, fácil de usar
2. Prerrequisitos
- 🔹 Un VPS con al menos 1 GB RAM y 20 GB disco (Hetzner, DigitalOcean, Vultr, Contabo...)
- 🔹 Ubuntu 22.04 o 24.04 instalado
- 🔹 Docker y Docker Compose instalados
- 🔹 Un dominio apuntando al VPS (ej:
n8n.tudominio.com) - 🔹 Acceso SSH al servidor
3. Instalar Docker y Docker Compose
Si aún no tienes Docker, instálalo en Ubuntu con:
# Actualizar paquetes
sudo apt update && sudo apt upgrade -y
# Instalar dependencias
sudo apt install -y ca-certificates curl gnupg
# Agregar repositorio oficial de Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Instalar Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Agregar tu usuario al grupo docker (evita usar sudo)
sudo usermod -aG docker $USER
newgrp docker
# Verificar
docker --version
docker compose version
4. Crear el archivo docker-compose.yml
Crea una carpeta para n8n y el archivo de configuración:
mkdir ~/n8n && cd ~/n8n
Crea el archivo docker-compose.yml:
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.tudominio.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.tudominio.com/
- N8N_EDITOR_BASE_URL=https://n8n.tudominio.com/
- GENERIC_TIMEZONE=America/Mexico_City
- N8N_ENCRYPTION_KEY=cambia-esta-clave-por-una-segura
volumes:
- n8n_data:/home/node/.n8n
- ./local_files:/files
volumes:
n8n_data:
n8n.tudominio.com por tu dominio real y genera una N8N_ENCRYPTION_KEY segura (puedes usar openssl rand -hex 32).
5. Configurar SSL con Nginx Proxy Manager
Para HTTPS, usamos Nginx Proxy Manager que gestiona certificados SSL automáticamente con Let's Encrypt:
# Crear carpeta para NPM
mkdir ~/npm && cd ~/npm
# Crear docker-compose.yml para NPM
cat > docker-compose.yml << 'EOF'
version: "3.8"
services:
app:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
EOF
docker compose up -d
Accede a http://TU_IP:81 con:
- Email:
admin@example.com - Password:
changeme
Crea un Proxy Host:
- Domain:
n8n.tudominio.com - Forward Hostname/IP:
TU_IP_DEL_VPS - Forward Port:
5678 - ✅ Activar Websocket Support
- ✅ Solicitar certificado SSL con Let's Encrypt
6. Iniciar n8n
cd ~/n8n
docker compose up -d
# Verificar que está corriendo
docker compose ps
docker compose logs -f
Accede a https://n8n.tudominio.com. La primera vez te pedirá crear un usuario y contraseña.
7. Configuración Post-Instalación
Crear usuario administrador
Al entrar por primera vez, crea tu cuenta. Guarda bien las credenciales — no hay "recuperar contraseña" en la versión self-hosted.
Activar nodos de IA (opcional pero recomendado)
n8n incluye nodos nativos para IA. Actívalos desde Settings → Community Nodes o instala paquetes adicionales:
# Conectar al contenedor
docker exec -it n8n bash
# Instalar nodos extra
npm install -g n8n-nodes-chatgpt
exit
# Reiniciar
docker compose restart
Configurar backups automáticos
# Crear script de backup
cat > ~/backup-n8n.sh << 'EOF'
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M)
mkdir -p ~/backups/n8n
cp -r ~/n8n/n8n_data ~/backups/n8n/backup_$DATE
echo "Backup completado: backup_$DATE"
EOF
chmod +x ~/backup-n8n.sh
# Agregar al cron (backup diario a las 3 AM)
(crontab -l 2>/dev/null; echo "0 3 * * * /home/tu_usuario/backup-n8n.sh") | crontab -
8. Tu Primer Flujo de Trabajo
Probemos que todo funciona con un flujo simple: Webhook → Filtro → Respuesta
- Arrastra un nodo Webhook al lienzo
- Configura el método como POST y copia la URL generada
- Agrega un nodo If (condición) para filtrar los datos
- Agrega un nodo Respond to Webhook con un mensaje personalizado
- Haz clic en Execute Workflow para probar
9. Optimización y Monitoreo
- 📊 Monitoreo con Portainer:
docker run -d -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest - 🔄 Actualizar n8n:
docker compose pull && docker compose up -d - 🧹 Limpiar ejecuciones antiguas: desde Settings → Usage & Plan → Prune old executions
- 📈 Límites de recursos: agrega
mem_limit: 512men docker-compose.yml si tu VPS es pequeño
10. Conclusión
Instalar n8n en tu propio VPS te da el poder de un Zapier o Make sin límites ni costos recurrentes. En ~30 minutos tienes un servidor de automatización corriendo con SSL, listo para conectar todas tus herramientas.
Lo mejor: al ser self-hosted, tus datos nunca salen de tu servidor. Tus flujos, tus APIs keys, tus conversaciones — todo bajo tu control.
¿El siguiente paso? Conecta n8n con la API de WhatsApp de Twilio (usa el tutorial de Twilio) y automatiza toda tu comunicación con clientes.
¿Te sirvió este tutorial? Compártelo y déjame tu comentario 👇