4.3 KiB
Perfecto, David. A continuación te dejo el manual completo y actualizado para instalar n8n
de forma manual en Ubuntu Server (sin Docker), incluyendo:
-
Instalación limpia de Node.js 20
-
Instalación de n8n y pm2
-
Script de arranque con autenticación básica
-
Ejecución en segundo plano con reinicio automático al encender el servidor
🛠 Manual actualizado para instalar n8n (sin Docker) en Ubuntu Server
✅ 1. Actualiza el sistema e instala dependencias
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg build-essential
✅ 2. Instala Node.js 20 (requerido por versiones recientes de n8n)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
Verifica que esté instalado correctamente:
node -v
npm -v
Debe mostrar algo como v20.x.x
.
✅ 3. Instala n8n
y pm2
globalmente
sudo npm install -g pm2 n8n
✅ 4. Crea el script de arranque n8n
nano ~/start-n8n.sh
Pega el siguiente contenido:
#!/bin/bash
export N8N_HOST=0.0.0.0
export N8N_PORT=5678
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=Shala55951254
n8n
Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
Hazlo ejecutable:
chmod +x ~/start-n8n.sh
✅ 5. Ejecuta el script para probar
~/start-n8n.sh
Deberías ver un mensaje como:
Editor is now accessible via: http://0.0.0.0:5678
📌 Accede desde el navegador con la IP del servidor:
http://TU_IP:5678
Usuario: admin
Contraseña: Shala55951254
✅ 6. Ejecutar n8n en segundo plano con pm2
A. Inicia el proceso con pm2
:
pm2 start ~/start-n8n.sh --name n8n
B. Guarda el proceso para que se reinicie con el sistema:
pm2 startup
Copia y ejecuta la línea que te devuelva (ejemplo):
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
Luego:
pm2 save
✅ 7. (Opcional) Abre el puerto en el firewall
sudo ufw allow 5678/tcp
sudo ufw enable
sudo ufw status
✅ 8. Comandos útiles
-
Ver estado de procesos:
pm2 list
-
Ver logs en tiempo real:
pm2 logs n8n
-
Parar o reiniciar:
pm2 stop n8n pm2 restart n8n
-
Eliminar proceso:
pm2 delete n8n
¿Quieres que ahora te dé el manual con NGINX + HTTPS (Let's Encrypt) para que accedas por dominio seguro como https://n8n.tudominio.com
?
hacer que el servicio de n8n se reincie con el equipo
Excelente pregunta, David. Si n8n
no se reinicia automáticamente tras reiniciar tu servidor, lo más probable es que faltó ejecutar correctamente uno de los pasos con pm2
para registrar el arranque del proceso.
Aquí te explico cómo asegurar que n8n se inicie automáticamente al arrancar el servidor:
✅ Paso a paso para activar reinicio automático con pm2
1. Asegúrate de que n8n
está corriendo con pm2
Confirma con:
pm2 list
Deberías ver un proceso llamado n8n
.
2. Genera el script de arranque para systemd
pm2 startup
Esto te devolverá una línea como esta (con tu usuario):
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u web --hp /home/web
🔁 Cópiala y ejecútala exactamente.
⚠️ Este paso es clave: si no ejecutas esa línea,
pm2
no se integrará consystemd
y no podrá reiniciar tus procesos al arrancar el servidor.
3. Guarda el estado actual de los procesos
pm2 save
Esto crea un snapshot de los procesos actuales que serán restaurados al reinicio.
4. Verifica que todo esté correcto
Puedes simular un reinicio:
sudo reboot
Luego, tras reiniciar, verifica:
pm2 list
Y accede a http://IP:5678
para confirmar que n8n
se levantó automáticamente.
✅ Resumen de comandos clave
pm2 start ~/start-n8n.sh --name n8n
pm2 startup # (ejecutar también la línea que devuelve)
pm2 save
¿Quieres que revise también cómo levantar pm2
con un usuario distinto al login por defecto o con logs persistentes en un archivo?