n8n és una eina d'automatització de fluxos de treball basada en nodes. Permet connectar diferents aplicacions, serveis i bases de dades perquè es comuniquin entre si sense haver de programar una aplicació complexa des de zero.
La manera més senzilla d'instal·lar n8n a Clouding és crear un servidor a partir de la nostra imatge de Docker i instal·lar-hi n8n seguint les instruccions que et donarem a continuació.
Requisits
- Un servidor al núvol creat a partir de la nostra imatge de Docker.
Crea un fitxer .env
Accedeix al servidor Docker acabat de crear per SSH amb l'usuari root i crea un directori per desar-hi el fitxer de configuració de l'entorn per a n8n i els fitxers de Docker Compose corresponents:
# mkdir /opt/n8n-compose
# cd /opt/n8n-compose Dins del directori n8n-compose, crea un fitxer amb el nom .env per personalitzar la instal·lació de n8n. Això és només un exemple bàsic; l'hauries d'adaptar a les teves necessitats concretes:
# DOMAIN_NAME i SUBDOMAIN determinen des d’on es podrà accedir a n8n
# El domini de primer nivell des del qual s’hi podrà accedir:
DOMAIN_NAME=ejemplo.com
# Subdomini des del qual s’hi podrà accedir:
SUBDOMAIN=n8n
# Amb els valors anteriors, es podrà accedir a n8n des de: https://n8n.ejemplo.com
# Opcional: zona horària utilitzada per Cron i altres nodes de tasques programades
# Si no s’especifica res, la zona horària per defecte és New York
GENERIC_TIMEZONE=Europe/Berlin
# Adreça de correu electrònic que s’utilitzarà per crear el certificat TLS/SSL
SSL_EMAIL=user@ejemplo.comCrea el directori de fitxers locals
Dins del directori n8n-compose, crea un directori amb el nom local-files per compartir fitxers entre la instància de n8n i el sistema amfitrió (per exemple, per utilitzar-lo amb el node Read/Write Files from Disk):
mkdir local-files
Crea el fitxer per a Docker Compose
Crea el fitxer compose.yaml. Afegeix-hi el contingut següent:
services:
traefik:
image: "traefik"
restart: always
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
labels:
- traefik.enable=true
- traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
- traefik.http.routers.n8n.tls=true
- traefik.http.routers.n8n.entrypoints=web,websecure
- traefik.http.routers.n8n.tls.certresolver=mytlschallenge
- traefik.http.middlewares.n8n.headers.SSLRedirect=true
- traefik.http.middlewares.n8n.headers.STSSeconds=315360000
- traefik.http.middlewares.n8n.headers.browserXSSFilter=true
- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
- traefik.http.middlewares.n8n.headers.forceSTSHeader=true
- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.n8n.headers.STSPreload=true
- traefik.http.routers.n8n.middlewares=n8n@docker
environment:
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- N8N_RUNNERS_ENABLED=true
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${GENERIC_TIMEZONE}
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumes:
n8n_data:
traefik_data:El fitxer de Docker Compose anterior configura dos contenidors: un per a n8n i un altre per executar traefik, un servidor intermediari que s'encarrega de l'encaminament i dels certificats TLS/SSL.
També crea i munta dos volums de Docker i munta el directori local-files que has creat abans:
| Nom | Tipus | Punt de muntatge | Descripció |
| n8n-data | Volume | /home/node/.n8n | On n8n desa el fitxer de la base de dades SQLite i la clau de xifratge. |
| traefik_data | Volume | /letsencrypt | On Traefik desa les dades dels certificats TLS/SSL. |
| ./local-files | Bind | /files | Un directori local compartit entre la instància de n8n i el sistema amfitrió. A n8n, utilitza el camí /files per llegir i escriure en aquest directori. |
Executa Docker Compose
Inicia n8n executant:
# docker compose up -d
Per aturar els contenidors, escriu:
# docker compose stop
Conclusió
Ara pots accedir a la instal·lació de n8n amb la combinació subdomini + domini que has definit al fitxer de configuració .env. En la configuració d'aquest article seria https://n8n.ejemplo.com.
n8n només és accessible mitjançant HTTPS, no pas HTTP.
Esperem haver-te ajudat amb aquest tutorial 🙂. Recorda que, si tens consultes sobre aquesta qüestió o qualsevol altra relacionada amb els teus servidors a Clouding, no dubtis a escriure a soporte@clouding.io Som al teu costat per a tot el que necessitis, consulta'ns!