Curso de servidores linux

¿Qué es n8n?

n8n es una herramienta de automatización de flujos de trabajo (tipo Zapier, pero open source).

Permite:

  • Conectar APIs
  • Automatizar tareas
  • Integrar bases de datos
  • Crear bots
  • Ejecutar lógica condicional
  • Crear backend sin código

Y lo mejor: 👉 Se puede auto-hospedar en tu servidor Linux.


Arquitectura que vamos a montar

En tu Linux Mint (VM):

Alumnos → Navegador → n8n (puerto 5678)

Más adelante podemos:

  • Ponerlo detrás de nginx
  • Activar HTTPS
  • Añadir autenticación
  • Conectarlo a PostgreSQL (ya que lo tienes instalado 😉)

🚀 PRÁCTICA GUIADA – INSTALACIÓN


🧩 PASO 1 — Comprobar que tienes Node.js

n8n funciona con Node.

1node -v

Si NO lo tienes:

1sudo apt update
2sudo apt install nodejs npm -y

Comprueba versión:

1node -v
2npm -v

Recomendado: Node 20 o superior.


NOTA: Si la version es inferior a la 20 actualizala

1curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
2sudo apt-get install -y nodejs

📦 PASO 2 — Instalar n8n globalmente

1sudo npm install -g n8n

Comprueba que funciona:

1n8n --version

▶ PASO 3 — Ejecutarlo por primera vez

1n8n

Te aparecerá algo como:

Editor is now accessible via:
http://localhost:5678

🌐 PASO 4 — Permitir acceso desde otra máquina

Ahora mismo solo escucha en localhost.

Vamos a permitir acceso desde red:

1export N8N_HOST=0.0.0.0
2export N8N_PORT=5678
3export N8N_SECURE_COOKIE=false
4n8n

Ahora podrás acceder desde:

http://IP_DE_TU_SERVIDOR:5678

Comprueba tu IP:

1ip a

🔥 PASO 5 — Abrir el puerto en firewall (si usas UFW)

1sudo ufw allow 5678
2sudo ufw reload

🛡️ PASO 6 — Proteger con usuario y contraseña (MUY IMPORTANTE)

Si lo vas a abrir en red:

1export N8N_BASIC_AUTH_ACTIVE=true
2export N8N_BASIC_AUTH_USER=admin
3export N8N_BASIC_AUTH_PASSWORD=tuPasswordSeguro

Luego:

1n8n

⚙️ PASO 7 — Ejecutarlo como servicio (modo profesional)

Creamos servicio systemd:

1sudo nano /etc/systemd/system/n8n.service

Contenido:

1[Unit]
2Description=n8n
3After=network.target
4
5[Service]
6Type=simple
7User=angel
8ExecStart=/usr/bin/n8n
9Restart=always
10Environment=N8N_HOST=0.0.0.0
11Environment=N8N_PORT=5678
12Environment=N8N_BASIC_AUTH_ACTIVE=true
13Environment=N8N_BASIC_AUTH_USER=admin
14Environment=N8N_BASIC_AUTH_PASSWORD=tuPasswordSeguro
15
16[Install]
17WantedBy=multi-user.target

Guardar y ejecutar:

1sudo systemctl daemon-reload
2sudo systemctl enable n8n
3sudo systemctl start n8n

Comprobar estado:

1sudo systemctl status n8n

🏆 OPCIONAL PRO (Recomendado para tu servidor)

Como ya tienes:

  • nginx
  • PostgreSQL
  • SSH
  • Fail2ban

Podemos hacer instalación más profesional:

  • n8n detrás de nginx

  • Base de datos PostgreSQL

  • HTTPS con Let's Encrypt

  • Subdominio tipo:

    n8n.tuservidor.local