n8n is in 2026 uitgegroeid tot de absolute referentie onder de open source automatiseringstools. Een n8n self-hosted VPS installatie garandeert je de volledige soevereiniteit over je gegevens, totale kostenbeheersing en maximale flexibiliteit bij het configureren van je automatiseringsworkflows. In tegenstelling tot cloud-oplossingen zoals Make.com of Zapier, behoud je met een self-hosted n8n installatie de volledige controle over je data, je integraties en je infrastructuur. Dat is met name cruciaal voor Europese bedrijven die aan de AVG (GDPR) moeten voldoen. Deze uitgebreide gids begeleidt je stap voor stap bij de complete installatie van n8n op een VPS in 2026, met Debian 12, Traefik SSL, PostgreSQL en automatische back-ups.
Vereisten
Voordat je begint met de n8n self-hosted VPS installatie, moet je ervoor zorgen dat je aan de volgende vereisten voldoet. Een zorgvuldige voorbereiding bespaart je later veel troubleshooting-tijd en zorgt voor een stabiele productieomgeving.
- Een VPS met minimaal 2 vCPU en 4 GB RAM (aanbevolen: 4 vCPU / 8 GB RAM). Voor productieomgevingen met veel gelijktijdige workflows raden wij 8 GB RAM aan als ondergrens.
- Vers geinstalleerde Debian 12 (Bookworm) — momenteel de meest stabiele LTS-distributie voor serveromgevingen en ideaal voor n8n self-hosted implementaties.
- Een domeinnaam die verwijst naar het IP-adres van de VPS (bv.: automator.jouw-domein.be). Zorg dat het DNS A-record correct geconfigureerd is voordat je aan de installatie begint, want Traefik heeft een werkend domein nodig voor de SSL-certificaatuitgifte.
- SSH root-toegang tot de server (bij voorkeur via SSH-sleutel in plaats van wachtwoord voor betere beveiliging).
- Basis Linux-administratiekennis: je moet vertrouwd zijn met de commandoregel, het bewerken van configuratiebestanden en het werken met systemd services.
Fase 1: Servervoorbereiding
De eerste stap in elke n8n self-hosted VPS installatie is het beveiligen en bijwerken van je server. Een goed beveiligde basis is essentieel voor een productieomgeving die 24/7 bereikbaar moet zijn. Begin met het bijwerken van alle pakketten en installeer vervolgens de benodigde basissoftware:
apt update && apt upgrade -y
apt install -y curl wget gnupg2 software-properties-common ufw fail2ban
Configureer de firewall met UFW (Uncomplicated Firewall). Hiermee beperk je de toegang tot alleen de noodzakelijke poorten en bescherm je je server tegen ongewenst verkeer:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Configureer fail2ban om SSH te beschermen tegen brute force-aanvallen. Maak het bestand /etc/fail2ban/jail.local aan met de parameters die zijn afgestemd op jouw gebruik. Een typische configuratie blokkeert een IP-adres na vijf mislukte inlogpogingen gedurende tien minuten. Voor productiemgevingen kun je deze drempel verlagen naar drie pogingen met een langere blokkeertijd van dertig minuten of meer. Fail2ban is een onmisbare beveiligingslaag voor elke publiek toegankelijke server.
Fase 2: Node.js installatie
n8n is gebouwd op Node.js en vereist versie 18 of hoger voor een stabiele werking. In 2026 is Node.js 20 LTS de aanbevolen keuze voor n8n self-hosted installaties vanwege de langdurige ondersteuning en optimale compatibiliteit. Installeer Node.js via de officiiele NodeSource repository om altijd over de meest recente beveiligingspatches te beschikken:
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
node --version # Moet v20.x tonen
Controleer na de installatie ook de npm-versie met npm --version. Zorg ervoor dat npm minstens versie 9 is om compatibiliteitsproblemen met n8n-pakketten te voorkomen. Mocht je een oudere npm-versie hebben, werk deze dan bij met npm install -g npm@latest.
Fase 3: PostgreSQL configuratie
Standaard gebruikt n8n SQLite als database, maar voor een serieuze productieomgeving is PostgreSQL de sterk aanbevolen keuze. PostgreSQL biedt betere prestaties bij gelijktijdige workflows, betrouwbaardere transactieverwerking en betere schaalbaarheid naarmate je automatiseringsbehoeften groeien. Dit is een cruciaal onderdeel van elke professionele n8n self-hosted VPS configuratie.
apt install -y postgresql postgresql-contrib
sudo -u postgres createuser n8n
sudo -u postgres createdb n8n_db -O n8n
sudo -u postgres psql -c "ALTER USER n8n WITH PASSWORD 'jouw_veilig_wachtwoord';"
Kies een sterk wachtwoord van minstens 20 tekens met een combinatie van hoofdletters, kleine letters, cijfers en speciale tekens. Bewaar dit wachtwoord veilig in een wachtwoordmanager. Overweeg ook om de PostgreSQL-configuratie te optimaliseren voor je VPS-resources door parameters als shared_buffers, work_mem en effective_cache_size aan te passen in /etc/postgresql/15/main/postgresql.conf. Een goede vuistregel is om shared_buffers in te stellen op 25% van het beschikbare RAM.
Fase 4: n8n installatie en configuratie
Nu de basisinfrastructuur gereed is, kunnen we n8n zelf installeren. De n8n installatie 2026 verloopt via npm, de standaard pakketbeheerder van Node.js. Installeer n8n globaal zodat het als systeembreed commando beschikbaar is:
npm install -g n8n
Maak vervolgens het omgevingsconfiguratiebestand /etc/n8n.env aan. Dit bestand bevat alle essentiiele parameters voor je n8n-instantie, van databaseverbinding tot beveiligingsinstellingen:
N8N_HOST=automator.jouw-domein.be
N8N_PORT=5678
N8N_PROTOCOL=https
WEBHOOK_URL=https://automator.jouw-domein.be/
N8N_ENCRYPTION_KEY=jouw_unieke_encryptiesleutel
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n_db
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=jouw_veilig_wachtwoord
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=jouw_admin_wachtwoord
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168
Een paar belangrijke aandachtspunten bij deze configuratie: de N8N_ENCRYPTION_KEY wordt gebruikt om credentials in de database te versleutelen. Genereer deze met openssl rand -hex 32 en bewaar hem zorgvuldig, want zonder deze sleutel kun je bestaande credentials niet meer ontsleutelen. De WEBHOOK_URL moet exact overeenkomen met je domein inclusief HTTPS, anders werken inkomende webhooks niet correct. De EXECUTIONS_DATA_MAX_AGE van 168 uur (7 dagen) zorgt ervoor dat oude uitvoeringsgegevens automatisch worden opgeruimd, wat de databaseprestaties ten goede komt.
Fase 5: Traefik SSL configuratie
Traefik v3 is de ideale reverse proxy voor een n8n self-hosted VPS opstelling. Het verzorgt automatisch de Let’s Encrypt SSL-certificaten, handelt de HTTPS-terminatie af en biedt geavanceerde routeringsmogelijkheden. Het grote voordeel ten opzichte van Nginx is dat Traefik certificaten volledig automatisch vernieuwt zonder handmatige interventie of cron-jobs.
wget https://github.com/traefik/traefik/releases/download/v3.0.0/traefik_v3.0.0_linux_amd64.tar.gz
tar xzf traefik_v3.0.0_linux_amd64.tar.gz
mv traefik /usr/local/bin/
Maak de Traefik-configuratie aan in /etc/traefik/traefik.yml met de HTTP (80) en HTTPS (443) entrypoints, de Let’s Encrypt resolver met je e-mailadres, en de routing naar n8n op poort 5678. Zorg ervoor dat je een geldig e-mailadres opgeeft voor de Let’s Encrypt registratie, want dit adres ontvangt notificaties over het verlopen van certificaten.
Maak de dynamische configuratie aan in /etc/traefik/dynamic.yml met de router voor je domein en de service die verwijst naar http://localhost:5678. Voeg hier ook middleware toe voor beveiligingsheaders zoals HSTS (HTTP Strict Transport Security), X-Frame-Options en Content-Security-Policy. Deze headers beschermen je n8n-installatie tegen veelvoorkomende webaanvallen zoals clickjacking en cross-site scripting.
Fase 6: systemd services
Om n8n en Traefik als betrouwbare achtergrondservices te laten draaien, configureren we systemd services. Dit zorgt ervoor dat beide applicaties automatisch starten bij het opstarten van de server en automatisch opnieuw worden gestart na een eventuele crash. Een stabiele serviceonfiguratie is essentieel voor automatisering self-hosted.
Maak de systemd service voor n8n aan in /etc/systemd/system/n8n.service:
[Unit]
Description=n8n Workflow Automation
After=network.target postgresql.service
[Service]
Type=simple
User=n8n
EnvironmentFile=/etc/n8n.env
ExecStart=/usr/bin/n8n start
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Let op de After=postgresql.service afhankelijkheid: deze zorgt ervoor dat n8n pas start nadat PostgreSQL volledig draait. Zonder deze afhankelijkheid kan n8n crashen bij het opstarten omdat de database nog niet beschikbaar is. De RestartSec=5 parameter geeft het systeem vijf seconden pauze alvorens n8n te herstarten na een crash, wat voldoende tijd biedt om eventuele tijdelijke problemen op te lossen.
Maak ook een systemd service voor Traefik aan op vergelijkbare wijze. Activeer en start vervolgens beide services:
systemctl daemon-reload
systemctl enable n8n traefik
systemctl start traefik
systemctl start n8n
Controleer met journalctl -u n8n -f of n8n zonder fouten opstart en met journalctl -u traefik -f of Traefik de SSL-certificaten succesvol aanvraagt bij Let’s Encrypt.
Fase 7: Verificatie
Na de installatie is een grondige verificatie van alle componenten essentieel. Volg deze checklist systematisch om er zeker van te zijn dat je n8n self-hosted VPS installatie correct functioneert:
- Controleer of n8n draait:
systemctl status n8n— de status moet “active (running)” tonen. - Controleer of Traefik draait:
systemctl status traefik— ook hier verwacht je de “active (running)” status. - Ga naar
https://automator.jouw-domein.bein je browser en controleer of de pagina laadt. - Controleer het SSL-certificaat (groen slotje) en verifieer dat het is uitgegeven door Let’s Encrypt.
- Log in met je inloggegevens en controleer of het n8n-dashboard zonder fouten laadt.
- Maak een eenvoudige testworkflow aan (Cron > HTTP Request) om te verifieren dat zowel triggers als uitvoeringen correct werken.
Test ook de webhook-functionaliteit door een Webhook-node aan te maken en deze aan te roepen met curl vanaf een extern systeem. Webhooks zijn het kloppend hart van de meeste n8n-automatiseringen en moeten vlekkeloos functioneren in je productieomgeving.
Fase 8: Geavanceerde beveiliging
Een n8n-instantie die publiek toegankelijk is via het internet vereist meerdere beveiligingslagen. De basisbeveiliging uit Fase 1 is een goed begin, maar voor een productieklare omgeving zijn aanvullende maatregelen noodzakelijk. Onderschat de risico’s niet: een onbeveiligde automatiseringstool kan worden misbruikt om gegevens te exfiltreren of om aanvallen op andere systemen uit te voeren.
- Schakel SSH root-toegang uit: maak een dedicated gebruiker aan met beperkte rechten en gebruik
sudovoor beheerderstaken. Pas het bestand/etc/ssh/sshd_configaan doorPermitRootLogin noin te stellen. - Alleen SSH-sleutels: schakel wachtwoordauthenticatie volledig uit door
PasswordAuthentication noin te stellen in de SSH-configuratie. Dit elimineert het risico op brute force-aanvallen op SSH. - Rate limiting: configureer de limieten in Traefik om webhooks te beschermen tegen DDoS-aanvallen en misbruik. Een limiet van 100 verzoeken per minuut per IP is een goed uitgangspunt voor de meeste self-hosted automatiseringsopstellingen.
- Automatische updates: activeer
unattended-upgradesvoor beveiligingspatches zodat je server altijd voorzien is van de meest recente beveiligingsoplossingen zonder handmatige tussenkomst. - Monitoring: installeer Uptime Kuma of een vergelijkbare monitoringtool om de beschikbaarheid van je n8n-instantie en SSL-certificaatstatus continu te monitoren. Configureer waarschuwingen via e-mail of Slack zodat je direct op de hoogte bent van eventuele storingen.
Fase 9: Automatische back-up
Een betrouwbare back-upstrategie is onmisbaar voor elke n8n self-hosted VPS productieomgeving. Zonder back-ups loop je het risico om al je workflows, credentials en uitvoeringsgeschiedenis kwijt te raken bij een serverstoring of menselijke fout. Het onderstaande script maakt dagelijks een gecomprimeerde PostgreSQL-dump aan en beheert automatisch de rotatie van oude back-ups.
Maak een back-upscript aan in /opt/backup-n8n.sh:
#!/bin/bash
BACKUP_DIR="/opt/backups/n8n"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# PostgreSQL back-up
pg_dump -U n8n n8n_db | gzip > "$BACKUP_DIR/n8n_db_$DATE.sql.gz"
# Rotatie: bewaar de laatste 30 back-ups
ls -t $BACKUP_DIR/n8n_db_*.sql.gz | tail -n +31 | xargs rm -f
echo "Back-up voltooid: $DATE"
Plan de dagelijkse uitvoering via cron zodat de back-up automatisch draait zonder handmatige tussenkomst:
chmod +x /opt/backup-n8n.sh
crontab -e
# Toevoegen: 0 2 * * * /opt/backup-n8n.sh >> /var/log/n8n-backup.log 2>&1
Overweeg daarnaast om back-ups naar een externe locatie te kopieren, bijvoorbeeld via rsync naar een tweede server of via rclone naar een S3-compatibele object storage. Een back-up die alleen op dezelfde server staat als je n8n-installatie biedt geen bescherming tegen hardwarestoringen of datacenterproblemen. De 3-2-1 back-upregel is ook voor automatisering self-hosted een goed principe: drie kopieen van je data, op twee verschillende media, waarvan een offsite.
Eindresultaat
Na het doorlopen van alle negen fases beschik je over een volledig productie-klare n8n self-hosted VPS installatie met alle essentiiele componenten voor een betrouwbare en veilige automatiseringsomgeving:
- Automatische SSL via Let’s Encrypt met Traefik v3 als reverse proxy
- Robuuste PostgreSQL-database geoptimaliseerd voor n8n-workloads
- systemd services met automatische herstart en correcte afhankelijkheden
- Meerlaagse SSH-beveiliging met firewall, fail2ban en sleutel-gebaseerde authenticatie
- Dagelijkse automatische back-ups met rotatie en optionele offsite-kopie
Dit is precies de setup die we bij Agile Minds gebruiken op automator.agile-minds.be om onze automatiseringsworkflows en AI-agenten te orkestreren. Met deze configuratie draait onze n8n-instantie al meer dan een jaar stabiel met een uptime van boven de 99,9%. Of je nu een handvol workflows draait of honderden complexe automatiseringen beheert, deze n8n installatie 2026 vormt een solide basis die meegroeit met je behoeften.
Patrick Impens · CEO Agile Minds SRL · agile-minds.be
Marketingautomatisering met n8n voor uw KMO.
Onderhoud en support van uw n8n-infrastructuur.
Lees ook
Laten we over uw project praten
Afspraak maken →