Introducción: ¿Por qué self-hosted para automatizaciones?
n8n se ha convertido en una de las plataformas de orquestación y automatización de flujos de trabajo más potentes del mercado. A diferencia de soluciones propietarias en la nube que cobran por cada ejecución o tarea, alojar tu propia instancia te otorga control absoluto sobre tus credenciales, privacidad de datos y ejecuciones ilimitadas.
Sin embargo, desplegar n8n en un entorno de producción real requiere prestar atención al dimensionamiento de hardware (sizing), aislamiento de servicios y configuración segura de red mediante HTTPS.
1. Dimensionamiento de Hardware: ¿Dónde instalarlo?
Antes de ejecutar cualquier comando, el primer error común es instalar n8n en el mismo servidor donde corren aplicaciones monolíticas o bases de datos críticas de producción con poca memoria (por ejemplo, 1 GB o 2 GB de RAM).
- Consumo de memoria: n8n requiere un mínimo de 1 GB libre para arrancar, pero cuando procesa flujos complejos, bucles masivos o maneja archivos pesados en memoria, puede experimentar picos repentinos.
- Riesgo del OOM Killer: En servidores con menos de 2 GB de RAM, un consumo elevado de n8n puede provocar que el sistema operativo mate procesos críticos como MySQL o tu servidor web.
Recomendación ideal: Un servidor o VPS independiente (ej. Rocky Linux / Ubuntu) con al menos 2 a 3 vCPUs y 4 GB de RAM. Esto garantiza estabilidad para procesar cientos de ejecuciones concurrentes sin cuellos de botella.
2. Instalación del entorno: Node.js 20 y PM2
n8n corre sobre el runtime de Node.js (versión 18 o 20 recomendadas). En sistemas basados en RHEL / Rocky Linux, habilitamos e instalamos el módulo oficial:
# Habilitar e instalar Node.js 20 dnf module enable -y nodejs:20 dnf install -y nodejs # Verificar versiones instaladas node -v npm -v
Para asegurar que n8n se mantenga siempre en ejecución en segundo plano y se recupere ante cualquier caída, utilizamos PM2 como gestor de procesos:
npm install -g pm2 n8n
3. Configuración de Proxy Inverso con Nginx
Por defecto, n8n escucha en el puerto local 5678. No es recomendable exponer este puerto directamente a internet. En su lugar, utilizamos Nginx como proxy inverso para manejar el tráfico en el puerto estándar 80 / 443 y dar soporte a WebSockets (necesarios para la interfaz gráfica en tiempo real y webhooks).
Creamos el archivo de configuración /etc/nginx/conf.d/n8n.conf:
server { listen 80; server_name n8n.tudominio.com; location / { proxy_pass http://127.0.0.1:5678; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Tiempos de espera extendidos para flujos largos proxy_read_timeout 300s; proxy_send_timeout 300s; } }
Validamos y recargamos la configuración de Nginx:
nginx -t && systemctl reload nginx
4. Asegurando con HTTPS: Certificado SSL con Certbot
Muchas integraciones modernas (como webhooks de Stripe, WhatsApp Cloud API o redes sociales) exigen de forma obligatoria conexiones cifradas bajo HTTPS.
Una vez que el registro DNS (tipo A) de tu subdominio apunte a la IP de tu servidor, ejecutamos Certbot para emitir e instalar el certificado de forma 100% automatizada:
certbot --nginx --agree-tos -m [email protected] -d n8n.tudominio.com
Certbot modificará la configuración de Nginx para redirigir todo el tráfico HTTP a HTTPS de manera transparente.
5. Puesta en marcha con PM2 y Autoinicio en el arranque
Para inicializar n8n con las variables de entorno adecuadas (especialmente WEBHOOK_URL para que las URLs públicas de tus triggers se generen con HTTPS y tu dominio), ejecutamos:
# Iniciar n8n restringido a localhost con su webhook público N8N_HOST=127.0.0.1 WEBHOOK_URL=https://n8n.tudominio.com/ pm2 start n8n --name n8n --update-env # Guardar la lista de procesos activos pm2 save # Configurar el servicio para que inicie tras reinicios del sistema pm2 startup
6. Comandos útiles para el día a día
Para supervisar tu nueva instancia, puedes usar los comandos nativos de PM2 directamente por SSH:
- Ver estado y consumo de RAM/CPU:
pm2 status - Consultar logs en tiempo real:
pm2 logs n8n - Reiniciar la instancia:
pm2 restart n8n
¡Listo! Al ingresar a https://n8n.tudominio.com tendrás tu entorno n8n en producción, protegido con SSL, optimizado en recursos y listo para automatizar tus procesos de negocio.