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?