254 lines
4.3 KiB
Markdown
254 lines
4.3 KiB
Markdown
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
|
|
|
|
```bash
|
|
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)
|
|
|
|
```bash
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
|
sudo apt install -y nodejs
|
|
```
|
|
|
|
Verifica que esté instalado correctamente:
|
|
|
|
```bash
|
|
node -v
|
|
npm -v
|
|
```
|
|
|
|
Debe mostrar algo como `v20.x.x`.
|
|
|
|
---
|
|
|
|
## ✅ 3. Instala `n8n` y `pm2` globalmente
|
|
|
|
```bash
|
|
sudo npm install -g pm2 n8n
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ 4. Crea el script de arranque `n8n`
|
|
|
|
```bash
|
|
nano ~/start-n8n.sh
|
|
```
|
|
|
|
Pega el siguiente contenido:
|
|
|
|
```bash
|
|
#!/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:
|
|
|
|
```bash
|
|
chmod +x ~/start-n8n.sh
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ 5. Ejecuta el script para probar
|
|
|
|
```bash
|
|
~/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`:
|
|
|
|
```bash
|
|
pm2 start ~/start-n8n.sh --name n8n
|
|
```
|
|
|
|
### B. Guarda el proceso para que se reinicie con el sistema:
|
|
|
|
```bash
|
|
pm2 startup
|
|
```
|
|
|
|
Copia y ejecuta la línea que te devuelva (ejemplo):
|
|
|
|
```bash
|
|
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
|
|
```
|
|
|
|
Luego:
|
|
|
|
```bash
|
|
pm2 save
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ 7. (Opcional) Abre el puerto en el firewall
|
|
|
|
```bash
|
|
sudo ufw allow 5678/tcp
|
|
sudo ufw enable
|
|
sudo ufw status
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ 8. Comandos útiles
|
|
|
|
- Ver estado de procesos:
|
|
|
|
```bash
|
|
pm2 list
|
|
```
|
|
|
|
- Ver logs en tiempo real:
|
|
|
|
```bash
|
|
pm2 logs n8n
|
|
```
|
|
|
|
- Parar o reiniciar:
|
|
|
|
```bash
|
|
pm2 stop n8n
|
|
pm2 restart n8n
|
|
```
|
|
|
|
- Eliminar proceso:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
pm2 list
|
|
```
|
|
|
|
Deberías ver un proceso llamado `n8n`.
|
|
|
|
---
|
|
|
|
### 2. Genera el script de arranque para `systemd`
|
|
|
|
```bash
|
|
pm2 startup
|
|
```
|
|
|
|
Esto te devolverá una línea como esta (con tu usuario):
|
|
|
|
```bash
|
|
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á con `systemd` y no podrá reiniciar tus procesos al arrancar el servidor.
|
|
|
|
---
|
|
|
|
### 3. Guarda el estado actual de los procesos
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
sudo reboot
|
|
```
|
|
|
|
Luego, tras reiniciar, verifica:
|
|
|
|
```bash
|
|
pm2 list
|
|
```
|
|
|
|
Y accede a `http://IP:5678` para confirmar que `n8n` se levantó automáticamente.
|
|
|
|
---
|
|
|
|
## ✅ Resumen de comandos clave
|
|
|
|
```bash
|
|
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? |