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
![status](https://comunidad-n8n.com/content/images/2020/12/status.png)
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