Hola Wecindario, En esta guia vamos a ver cómo instalar el n8n en un servidor VPS con Docker y linux ¿Cumples con estos requisitos? Pues vamos a ello
El n8n es una herramienta automatizar tareas y procesos y lo que haces es crear flujos de trabajo personalizados usando nodos.
Un ejemplo, si queremos enviar un email al usuario cuando sube una foto a Instagram, podemos usar n8n para crear ese flujo de trabajo que de forma automática envíe un mensaje de texto cada vez que pasa esto en Instagram. Así creamos soluciones de automatización más complicadas sin escribir código desde cero.
Veremos un método para instalar n8n en un servidor y cómo se asigna un dominio propio, y poderlo usar para acceder a la interfaz
Antes de empezar creamos el dominio o subdominio que remos a usar, por ejemplo n8npruebas.com
Índice de contenidos
Empezando con Docker compose y Nginx Proxy Manager
Este es el método más sencillo, y para mí pensar el mejor
Instalamos Docker
Desde ssh ejecutamos
apt install curl
/bin/bash -c "$(curl -fsSL https://get.docker.com)"
Instalamos Docker Compose
Añadiremos tambien el Docker Composer ya que nos simplifica la forma del trabajo con Docker.
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
Lo hacemos ejecutable :chmod +x ~/.docker/cli-plugins/docker-compose
Y vemos la version:docker compose version
Instalamos Nginx Proxy Manger
Ahora tenemos que crear el proxy inverso, y usaremos el Nginx Proxy Manager con una imagen de Docker , confirgurada para esto
Creamos la carpeta donde guardaremos la configuración del Nginx Proxy Manager.mkdir nginx-proxy-manager && cd nginx-proxy-manager
Creamos el archivo de config de Docker Compose .nano docker-compose.yml
Y pegamos la configuración:
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Y con esto ya está el proxy montado, lo arrancamos con :docker compose up -d
Y luego para acceder se hace mediante el puerto 81. 10.58.135.137: 81.
Y veremos el loguin
Y para acceder, los datospor defecto son :
Email: admin@example.com
Password: changeme
Instalamos el n8n
Aquí instalaremos el n8n desde el docker oficial, Empezando por crear una carpeta donde guardar la configuración.
mkdir ~/n8n
cd ~/n8n
Luego crearemos el archivo docker-compose.yml.: nano docker-compose.yml
Y añadimos lo siguiente:
version: "3"
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER
- N8N_BASIC_AUTH_PASSWORD
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
volumes:
- ./data:/home/node/.n8n
Luego hay que crear el .env donde se definen las variables necesarias para que funcione n8n
Y lo creamos:nano .env
Y pondremos esto , ediatndo esto por los datos correctos
DOMAIN_NAME=devseo.xyz
SUBDOMAIN=n8npruebas.com
N8N_BASIC_AUTH_USER=usuarion8n
N8N_BASIC_AUTH_PASSWORD=contraseñan8n
GENERIC_TIMEZONE=Europe/Madrid
SSL_EMAIL=miemail@email.com
Levantamos el contenedor y ya tenemos n8n funcionando en el servidor :docker compose -d up
Tenemos que vincular el dominio con el contenedor Docker de n8n abrimos el panel Nginx Proxy Manager. (XXX.XX.XX.XXX:81)., y vamos a Hosts -> Proxy hosts -> Add Proxy Host
.
Y lo rellenamos
Y en ssl debemos añladir un ssl valido
Y Terminado. ya está configurado el n8n y accesible mediante el dominio que hemos creado en nuestro Plesk