Hola Comunidad,

Está vez, veremos como instalar N8N usando el gestor de paquetes de NodeJS ( npm ).

Para realizar la instalación, lo haremos mediante nvm un gestor de versiones de NodeJS, que nos va ha facilitar bastante su instalación y actualización en cualquier sistema Linux.

Instalación de NVM

Ejecutaremos este comando como usuario root en el servidor

sudo wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.1/install.sh | bash

CentOS

En sistemas operativos basados en RedHat, ( que tienen el gestor de paquetes yum)
Instalaremos las herramientas de desarrollador, que nos permitirán que se compile NodeJS y los paquetes que instalemos mediante NPM.

yum groupinstall 'Development tools' -y

Debian / Ubuntu

Esto es exactamente lo mismo, pero para sistemas basados en Debian. Concretamente el paquete build-essential es un meta paquete, que contiene todo lo que necesitemos para poder compilar.

sudo apt-get install build-essential

Instalamos NodeJS

Ejecutamos los siguientes comandos, el primero para que recargue las variables de entorno y cargue el perfil de usuario y encuentre el comando nvm, el segundo hace la instalación de node en su versión estable.

su -
nvm install v14.16.0

NodeJS para todos los usuarios.

nvm, se instala a nivel de user space y limita que solo pueda ejecutarlo root. Nosotros vamos a hacer que nos instale NodeJS a nivel de sistema y pueda ser compartido por todos los usuarios.

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local

Instalamos pm2 y n8n

Ahora pasamos a instalar los paquetes necesarios en este caso.

  • n8n
  • pm2
  • sqlite3

PM2 es un gestor de procesos para NodeJS y nos va a permitir que n8n siga funcionando aunque re-iniciemos el servidor.

SQLITE3 es el gestor de la base de datos y es necesario instalarlo así para que no falle la instalación.

npm config set user 0
npm i sqlite3 -g --build-from-source 
npm install -g pm2 n8n

Por ultimo definimos las variables que va a usar N8N para configurarse.

Las variables son las siguientes:

export N8N_TUNNEL_SUBDOMAIN=sharingaway
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=demo
export N8N_BASIC_AUTH_PASSWORD=demo
export GENERIC_TIMEZONE=Europe/Madrid

Debéis modificar varios de los valores para adecuarlo a vuestra configuración.

  • N8N_TUNNEL_SUBDOMAIN
  • N8N_BASIC_AUTH_USER
  • N8N_BASIC_AUTH_PASSWORD

El 1 es el nombre que tendrá vuestro servidor en el ejemplo https://sharingaway.hooks.n8n.cloud/workflow

El valor 2 es el usuario podéis poner el que queráis admin por ejemplo o vuestro nombre debe ser en minúsculas y todo junto.

Por ultimo el valor 3 que es la contraseña que quieras definir.

Una vez copiados los parámetros adaptados a tú configuración en la terminal pasamos a ejecutar el siguiente comando.

pm2 --name N8N-$HOSTNAME start n8n -- start --tunnel

Este comando es el que permitirá que funcione nuestra instancia y siga funcionando si cerramos la conexión de SSH.

Por último configuraremos P2M para que inicie al reiniciar el servidor

pm2 startup systemd
pm2 save
systemctl enable pm2-root
systemctl restart pm2-root

Por ultimo os enseño un par de comandos útiles que sirven para ver el estado de vuestra instancia de n8n.

pm2 status

Puedes ver los logs con este comando.

pm2 logs 0

Con esto ya tendrías tu instancia de n8n funcionando y podrías actualizar siempre que saquen una nueva versión con este comando.

pm2 stop 0 ; npm -g update n8n ; pm2 start 0