Hoe installeer ik N8N?

AI-agenten in 2025 blijven een van de meest veelbelovende benaderingen voor het oplossen van complexe taken met behulp van grote taalmodellen. Deze agents zijn autonoom en kunnen zelfstandig verschillende tools selecteren om toegewezen taken uit te voeren. Deze aanpak maakt het mogelijk om resultaten te bereiken met minder menselijke betrokkenheid en een hogere kwaliteit. Het opent ook mogelijkheden voor het ontdekken van originelere en effectievere manieren om problemen aan te pakken.
In plaats van alleen een taak te formuleren, geef je het neurale netwerk de opdracht om deze zelfstandig op te lossen, op basis van de middelen die aan het netwerk zijn toegewezen. Maar om dit schema te laten werken, moet er een mechanisme zijn dat neurale netwerkinterfaces verbindt met verschillende tools, of het nu zoeken op het web is of een vector database voor het opslaan van tussenresultaten.
n8n is een automatiseringsplatform dat integratie met verschillende neurale netwerken en openbare diensten ondersteunt. Gebruikers kunnen visueel ontwerpen hoe gegevens worden verwerkt en welk eindresultaat moet worden bereikt. In tegenstelling tot klassieke no-code oplossingen, maakt n8n het mogelijk om willekeurige code op te nemen in elke fase van het proces, wat vooral handig is als ingebouwde functionaliteit niet voldoende is.
Het resultaat is een systeem dat de eenvoud van no-code combineert met de flexibiliteit van traditioneel programmeren. Om het volledig te begrijpen, moet je echter nog wat tijd besteden aan het verkennen en bekijken van workflowvoorbeelden voor een beter begrip. In dit artikel laten we u zien hoe u n8n kunt implementeren op LeaderGPU servers.
De server voorbereiden
Het systeem bijwerken
Werk de pakketlijst bij en upgrade alle geïnstalleerde pakketten:
sudo apt update && sudo apt -y upgrade
Installeer automatisch het aanbevolen NVIDIA® stuurprogramma (eigen) of gebruik onze stap-voor-stap handleiding Installeer Nvidia-stuurprogramma's in Linux:
sudo ubuntu-drivers autoinstall
Start nu de server opnieuw op:
sudo shutdown -r now
Docker installeren
Je kunt het officiële installatiescript gebruiken:
curl -sSL https://get.docker.com/ | sh
Laten we NVIDIA® container toolkit GPG-sleutel en repository toevoegen voor Docker-integratie:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
Werk de pakketlijst bij en installeer de NVIDIA® container toolkit:
sudo apt update && sudo apt -y install nvidia-container-toolkit
Start Docker opnieuw op om de wijzigingen toe te passen en de geïnstalleerde toolkit in te schakelen:
sudo systemctl restart docker
Installeer n8n
Om het systeem gegevens te laten opslaan, moet je een volume aanmaken voordat je de container start:
sudo docker volume create n8n_data
Laten we nu een container starten die poort 5678 zal openen voor externe verbindingen en het aangemaakte n8n_data volume zal mounten in de map /home/node/.n8n in de container:
sudo docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
De eerste keer dat je de applicatie start, ben je misschien verbaasd over de volgende foutmelding:

Dit is niet echt een fout, het is meer een waarschuwing over hoe je het systeem goed moet configureren voor toegang. Het probleem is dat het systeem standaard geen TLS/HTTPS-certificaat heeft. Zonder dat is de verbinding niet veilig. Je hebt dus drie opties:
- Connect your own certificate. Je kunt dit doen door de paden naar de certificaatbestanden op te geven via omgevingsvariabelen, of door een reverse proxy server te configureren.
- Create an SSH tunnel and forward port 5678 naar localhost op de computer waarvandaan je verbinding maakt. Op deze manier krijg je direct een beveiligde persoonlijke verbinding. Niemand anders heeft echter toegang tot de server van buitenaf.
- Bypass the warning. Als dit een testserver is die niet bedoeld is voor productiegebruik en je niets geeft om beveiliging, kun je de waarschuwing uitschakelen door de omgevingsvariabele N8N_SECURE_COOKIE in te stellen op FALSE. Dit wordt sterk afgeraden omdat het de server kwetsbaar maakt voor mogelijke aanvallen. Toch kan het acceptabel zijn in specifieke scenario's.
Dit artikel zal elke optie in detail bespreken zodat je de juiste kunt kiezen.
Verbinding maken met de server
Als u nog geen SSL-certificaat hebt, raden wij u aan er een te bestellen bij LeaderSSL. Het kan worden gebruikt voor elke website, online winkel of om de echtheid van een e-mail te verifiëren.
Omgevingsvariabelen gebruiken
De eenvoudigste manier om HTTPS te configureren is door je certificaat te uploaden naar de server en het te specificeren via Docker omgevingsvariabelen. Begin met het aanmaken van een map voor de certificaatbestanden:
mkdir ~/n8n-certs
Je kunt deze bestanden (meestal cert.crt en privkey.key) naar deze directory uploaden met elke methode. Zie voor meer gedetailleerde informatie:
- Bestandsuitwisseling vanuit Windows
- Bestandsuitwisseling vanuit Linux
- Bestandsuitwisseling vanuit macOS
Laten we nu de container starten met één volledig commando:
sudo docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-v ~/n8n-certs:/certs \
-e N8N_PROTOCOL=https \
-e N8N_SSL_CERT="/certs/cert.crt" \
-e N8N_SSL_KEY="/certs/privkey.key" \
docker.n8n.io/n8nio/n8n
Hier is een uitsplitsing van elk argument:
- sudo docker run -d lanceert de Docker-container in daemon (achtergrond) modus
- --name n8n kent de naam toe aan de container n8n
- -p 5678:5678 stuurt poort 5678 door naar de container
- -v n8n_data:/home/node/.n8n creëert en koppelt een volume met de naam n8n_data aan de verborgen directory /home/node/.n8n in de container
- -v ~/n8n-certs:/certs koppelt de certificaatmap
- -e N8N_PROTOCOL=https dwingt N8N om het HTTPS-protocol te gebruiken
- -e N8N_SSL_CERT="/certs/cert.crt" stelt het pad naar het certificaatbestand in
- -e N8N_SSL_KEY="/certs/privkey.key" stelt het pad naar de certificaatsleutel in
- docker.n8n.io/n8nio/n8n bron van containerafbeelding
Traefik
Een iets complexere maar flexibele opstelling maakt gebruik van de Traefik reverse proxy server om de verbinding met N8N te beveiligen. Het configuratiebestand is gebaseerd op de officiële methode in de documentatie. Installeer eerst het hulpprogramma docker-compose:
sudo apt -y install docker-compose
We implementeren Traefik en N8N samen en ze moeten zich op hetzelfde netwerk bevinden. Maak een netwerk aan met de naam web.
sudo docker network create web
Maak nu een docker-compose.yml bestand om beide containers te definiëren en uit te voeren:
nano docker-compose.yml
services:
traefik:
image: "traefik"
container_name: "proxy"
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
networks:
- web
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: "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_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
networks:
- web
volumes:
n8n_data:
traefik_data:
networks:
web:
name: web
Naast het bestand docker-compose.yml maken we nog een bestand aan met de naam .env. Dit bestand zal variabelen bevatten zoals de domeinnaam en het e-mailadres dat wordt gebruikt om een SSL-certificaat aan te vragen bij Let's Encrypt. Als we ooit iets moeten veranderen, zoals de domeinnaam, dan hoeven we dat alleen maar in dit bestand aan te passen en daarna de container opnieuw te maken.
nano .env
DOMAIN_NAME=example.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Europe/Amsterdam
SSL_EMAIL=user@example.com
Implementeer tenslotte beide containers:
sudo docker-compose up -d
Nu is N8N hier beschikbaar: https://n8n.example.com.Nginx Proxy Manager
In tegenstelling tot Traefik, die geconfigureerd wordt via bestanden, biedt Nginx Proxy Manager een gebruiksvriendelijke webinterface. Het detecteert services echter niet dynamisch, je moet ze handmatig toevoegen. Toch werkt het goed voor statische services zoals N8N.
Maak nog een docker-compose.yml bestand in een aparte directory met de volgende inhoud:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: proxy
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
- web
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: unless-stopped
environment:
- N8N_HOST=n8n.example.com
- N8N_PORT=5678
- WEBHOOK_URL=https://n8n.example.com/
- N8N_PROTOCOL=http
volumes:
- n8n_data:/home/node/.n8n
networks:
- web
volumes:
n8n_data:
networks:
web:
external: true
Deploy with:
sudo docker-compose up -d
Open dan web-interface bij: http://your_hostname_or_ip:81
- Gebruikersnaam: admin@example.com
- Wachtwoord: changeme
Je wordt gevraagd om je referenties bij te werken. Open daarna Hosts → Proxy Hosts → Add Proxy Host, voer je domeinnaam in (bijv. n8n.example.com):

Vul de benodigde velden in:
- Stel Destination/IP in op n8n.
- Stel Port in op 5678.
- Kies Request a new SSL certificate with Let’s Encrypt onder het tabblad SSL.
- Voer je e-mailadres in en ga akkoord met de voorwaarden.
- Klik op Websockets support.
- Klik optioneel op Force SSL.
Nadat u op Save hebt gedrukt, wordt het certificaat aangevraagd en geïnstalleerd:

Zodra dit is gebeurd, leidt het openen van je domein naar de N8N-interface.
SSH-tunnel
Als je N8N niet extern toegankelijk hoeft te maken, kun je poort 5678 forwarden via SSH. Dit versleutelt al het verkeer, en N8N zal beschikbaar zijn op http://localhost:5678/.
Opmerking: Deze opstelling werkt niet voor integraties met externe diensten zoals messengers die openbare HTTPS-toegang vereisen.
De eenvoudigste manier om de poort door te sturen is met de populaire SSH-client PuTTY. Eenmaal geïnstalleerd, open SSH → Tunnels en stel Source port - 5678 en Destination - localhost:5678 in. Klik vervolgens op Add.

Ga terug naar Session, voer het IP-adres van je server in en klik op Open. Na authenticatie is de tunnel actief. Open http://localhost:5678 in een browser om toegang te krijgen tot N8N.
Opmerking: De verbinding werkt alleen zolang de SSH-sessie actief is. Het afsluiten van PuTTY zal de tunnel beëindigen.
omzeilen
Deze methode wordt niet aangeraden voor gebruik op openbare netwerken. Als je de container start met de N8N_SECURE_COOKIE=false omgevingsvariabele, zal de waarschuwing verdwijnen en krijg je toegang via HTTP:
sudo docker run -d --name n8n -p 5678:5678 -e N8N_SECURE_COOKIE=false -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Warning: Dit stelt het beheerpaneel van N8N bloot via onversleutelde HTTP, waardoor het kwetsbaar is voor MITM-aanvallen (Man-In-The-Middle) en een aanvaller mogelijk je server volledig kan overnemen.
Zie ook:
Bijgewerkt: 12.08.2025
Gepubliceerd: 23.06.2025