¡Claro, David! Aquí tienes una guía clara para instalar **n8n** en **WSL (Windows Subsystem for Linux)**. Usaremos Node.js (v18 LTS o superior) y npm para instalarlo directamente. --- ### ✅ **Requisitos previos** Asegúrate de tener lo siguiente: 1. **WSL** ya instalado (preferentemente Ubuntu). 2. **Node.js** (v18 o superior). 3. **npm** (gestor de paquetes de Node.js). --- ### 🔧 **Pasos para instalar n8n en WSL** #### 1. Actualiza tu sistema ```bash sudo apt update && sudo apt upgrade -y ``` #### 2. Instala Node.js (vía nvm recomendado) ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash source ~/.bashrc nvm install --lts nvm use --lts ``` ==Para ubuntu server la instalación de Node.js== ```bash curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs ``` Verifica que estén bien instalados: ```bash node -v npm -v ``` #### 3. Instala n8n globalmente ```bash npm install -g n8n ``` Esto instalará el CLI de n8n de forma global. #### 4. Ejecuta n8n ```bash n8n ``` Verás un mensaje como: ``` n8n ready on 127.0.0.1, port 5678 ``` Desde Windows, abre tu navegador y ve a: 📍 `http://localhost:5678` --- ### 🛡️ Opcional: Configurar credenciales y seguridad Por defecto, n8n se instala sin autenticación. Para producción o pruebas seguras, puedes establecer una contraseña así: ```bash export N8N_BASIC_AUTH_ACTIVE=true export N8N_BASIC_AUTH_USER=admin export N8N_BASIC_AUTH_PASSWORD=mi_contraseña_segura n8n ``` --- ### 🛠️ ¿Quieres levantarlo en segundo plano? Puedes usar `tmux`, `screen` o `pm2`: Ejemplo con `pm2`: ```bash npm install -g pm2 pm2 start n8n pm2 startup pm2 save ``` --- ¿Quieres que n8n arranque automáticamente al iniciar WSL o levantarlo con Docker también? Puedo ayudarte con eso también si gustas. # ejecutar en segundo plano n8n en wsl: Sí, el enfoque que muestras con `systemd` para levantar un servidor de Minecraft **es perfectamente replicable** para **n8n**, con unas pequeñas adaptaciones. ### 🚫 PERO HAY UN DETALLE IMPORTANTE: WSL **no soporta `systemd` por defecto** en versiones antiguas. Sin embargo, **WSL2 en Windows 11** ya permite activarlo. --- ## ✅ OPCIÓN A: Si tienes WSL2 con systemd habilitado ### 1. Verifica que `systemd` esté habilitado En `/etc/wsl.conf`, debe decir: ```ini [boot] systemd=true ``` Luego reinicia WSL: ```bash wsl --shutdown ``` --- ### 2. Crear servicio systemd para n8n ```bash sudo nano /etc/systemd/system/n8n.service ``` Contenido del archivo (ajusta tu nombre de usuario y la ruta si es necesario): ```ini [Unit] Description=n8n workflow automation After=network.target [Service] User=web # <- tu usuario de WSL Environment=PATH=/home/web/.nvm/versions/node/v18.XX.X/bin:/usr/bin:/bin Environment=NODE_ENV=production WorkingDirectory=/home/web ExecStart=/home/web/.nvm/versions/node/v18.XX.X/bin/n8n Restart=on-failure [Install] WantedBy=default.target ``` 📌 Reemplaza `v18.XX.X` con la versión exacta que tienes (`node -v` y `which n8n` te ayudan a saberlo). --- ==Para ubuntu server== ```bash ExecStart=/usr/bin/n8n ``` ### 3. Habilita y levanta el servicio ```bash sudo systemctl daemon-reload sudo systemctl enable n8n sudo systemctl start n8n ``` Verifica que esté funcionando: ```bash systemctl status n8n ``` ==Para ubuntu server== Para que puedas acceder a `n8n` desde otro equipo (navegador o API): - Asegúrate de configurar el host: ```bash export N8N_HOST=0.0.0.0 ``` - O en el archivo de servicio: ```bash Environment=N8N_HOST=0.0.0.0 ``` - Y abre el puerto 5678: ```bash sudo ufw allow 5678/tcp ``` --- ## 🟡 OPCIÓN B: Si NO tienes systemd activado (por ejemplo en Windows 10 o WSL1) Usa mejor **PM2** para ejecutar en segundo plano: ```bash npm install -g pm2 pm2 start n8n pm2 startup pm2 save ``` Con eso n8n se ejecutará como demonio cada vez que abras WSL. --- ## 🔄 ¿Cómo reiniciar n8n con systemd? ```bash sudo systemctl restart n8n ``` ¿Quieres que también tenga autenticación, log de errores o conecte a PostgreSQL? Puedo ayudarte a extender el servicio según tus necesidades. ¿Te gustaría saber cómo revisar logs o cómo incluir variables de entorno como el webhook URL base?