Antes de comenzar, asegúrate de tener desplegada una instancia Ubuntu (preferiblemente versión 22.04 o superior).
Consulta la guía correspondiente para el despliegue de instancias en la plataforma:
Para un funcionamiento óptimo, se recomienda que la instancia cuente con los siguientes recursos mínimos:
Actualiza los paquetes del sistema a sus últimas versiones:
sudo apt update && sudo apt upgrade -y
n8n requiere Node.js. Se recomienda instalar la versión LTS:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
Verifica la versión instalada:
node -v
Instala n8n de forma global mediante npm:
sudo npm install -g n8n
Comprueba que la instalación se haya realizado correctamente:
n8n --version
Para ejecutar n8n de forma aislada y más segura, crea un usuario dedicado:
sudo useradd -r -m -d /opt/n8n -s /bin/bash n8n
sudo chown -R n8n:n8n /opt/n8n
Crea el archivo del servicio systemd para gestionar n8n como un servicio del sistema:
sudo vi /etc/systemd/system/n8n.service
Copia el siguiente contenido:
[Unit]
Description=n8n workflow automation
After=network.target
[Service]
Type=simple
User=n8n
WorkingDirectory=/opt/n8n
ExecStart=/usr/bin/n8n
Restart=on-failure
Environment=DATA_FOLDER=/opt/n8n/.n8n
Environment=WEBHOOK_TUNNEL_URL=https://tu-dominio-o-ip
Environment=N8N_PORT=5678
Environment=GENERIC_TIMEZONE=Europe/Madrid
Environment=N8N_SECURE_COOKIE=false
Environment=N8N_BASIC_AUTH_ACTIVE=true
Environment=N8N_BASIC_AUTH_USER=admin
Environment=N8N_BASIC_AUTH_PASSWORD=tu_password_segura
[Install]
WantedBy=multi-user.target
Guarda el archivo y recarga la configuración de systemd:
sudo systemctl daemon-reload
sudo systemctl enable n8n
sudo systemctl start n8n
Comprueba que el servicio se está ejecutando correctamente:
sudo systemctl status n8n
Por defecto, n8n quedará disponible en el puerto 5678.
Puedes acceder al panel web desde tu navegador en:
http://<IP_O_DOMINIO>:5678
Autentícate con las credenciales definidas en las variables de entorno:
admintu_password_seguraSi el servicio va a ser expuesto públicamente, se recomienda configurarlo detrás de un proxy inverso (por ejemplo, Nginx o Traefik) con soporte HTTPS.
Consulta la guía de configuración de proxy inverso si aplica.