n8n installeren met Docker: Complete VPS-installatiehandleiding
Stapsgewijze handleiding voor het zelf hosten van n8n op een VPS met Docker. Inclusief SSL-configuratie, PostgreSQL-database, automatische back-ups en productieklare configuratie.
n8n installeren met Docker: Complete VPS-installatiehandleiding
Stapsgewijze handleiding voor het zelf hosten van n8n op een VPS met Docker. Voor VPS-aanbevelingen, zie onze beste VPS voor n8n gids. Deze productieklare configuratie bevat SSL-certificaten, PostgreSQL-database, Nginx reverse proxy en automatische back-ups.
Wat je gaat opzetten
- ✅ n8n draaiend in Docker
- ✅ PostgreSQL-database (productieklaar)
- ✅ Nginx reverse proxy
- ✅ SSL met Let’s Encrypt
- ✅ Automatische back-ups
- ✅ Automatisch herstarten bij reboot
Benodigde tijd: 15-20 minuten
Vereisten
- Een VPS met 2GB+ RAM (wij raden Hostinger KVM 1 aan)
- Een domeinnaam die naar je server verwijst
- Basiskennis van de terminal
Stap 1: Initiële serverconfiguratie
Maak een SSH-verbinding met je VPS:
ssh root@your-server-ip
Werk het systeem bij:
apt update && apt upgrade -y
Stap 2: Docker installeren
# Install Docker
curl -fsSL https://get.docker.com | sh
# Install Docker Compose
apt install docker-compose-plugin -y
# Verify installation
docker --version
docker compose version
Stap 3: Projectstructuur aanmaken
mkdir -p /opt/n8n
cd /opt/n8n
Maak het Docker Compose-bestand aan:
nano docker-compose.yml
Plak het volgende:
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Europe/London
# Database
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=your-secure-password
# Encryption
- N8N_ENCRYPTION_KEY=your-32-char-encryption-key
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
networks:
- n8n-network
postgres:
image: postgres:15
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=your-secure-password
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 5s
timeout: 5s
retries: 5
volumes:
n8n_data:
postgres_data:
networks:
n8n-network:
Belangrijk: Vervang:
n8n.yourdomain.comdoor je daadwerkelijke domeinyour-secure-passworddoor een sterk wachtwoordyour-32-char-encryption-keydoor een willekeurige tekenreeks van 32+ tekens
Genereer een encryptiesleutel:
openssl rand -hex 16
Stap 4: Nginx installeren
apt install nginx -y
Maak de Nginx-configuratie aan:
nano /etc/nginx/sites-available/n8n
Plak het volgende:
server {
listen 80;
server_name n8n.yourdomain.com;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
proxy_buffering off;
}
}
Activeer de site:
ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
Stap 5: SSL instellen met Let’s Encrypt
# Install Certbot
apt install certbot python3-certbot-nginx -y
# Get SSL certificate
certbot --nginx -d n8n.yourdomain.com
Volg de instructies. Certbot configureert Nginx automatisch voor HTTPS.
Stap 6: n8n starten
cd /opt/n8n
docker compose up -d
Controleer of alles draait:
docker compose ps
docker compose logs -f n8n
Ga naar n8n via: https://n8n.yourdomain.com
Stap 7: Firewall configureren
Volg onze VPS-beveiligingsgids voor een volledige beveiligingschecklist. Configureer minimaal:
ufw allow ssh
ufw allow 'Nginx Full'
ufw enable
Stap 8: Automatische back-ups instellen
Maak een back-upscript aan:
nano /opt/n8n/backup.sh
Plak het volgende:
#!/bin/bash
BACKUP_DIR="/opt/n8n/backups"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Backup PostgreSQL
docker compose exec -T postgres pg_dump -U n8n n8n > $BACKUP_DIR/db_$DATE.sql
# Backup n8n data
docker compose exec -T n8n n8n export:workflow --all --output=/home/node/.n8n/backups/workflows_$DATE.json 2>/dev/null || true
# Keep only last 7 days
find $BACKUP_DIR -type f -mtime +7 -delete
echo "Backup completed: $DATE"
Maak het uitvoerbaar en plan het in:
chmod +x /opt/n8n/backup.sh
# Add to crontab (daily at 3 AM)
crontab -e
Voeg toe:
0 3 * * * /opt/n8n/backup.sh >> /var/log/n8n-backup.log 2>&1
Stap 9: Automatisch starten bij boot inschakelen
Docker-containers met restart: always starten automatisch op. Controleer of Docker is ingeschakeld:
systemctl enable docker
n8n bijwerken
Om naar de nieuwste versie bij te werken:
cd /opt/n8n
docker compose pull
docker compose up -d
Probleemoplossing
n8n start niet op
docker compose logs n8n
Controleer op databaseverbindingsfouten of ontbrekende omgevingsvariabelen.
Problemen met SSL-certificaat
certbot renew --dry-run
Databaseverbinding mislukt
Controleer of PostgreSQL correct werkt:
docker compose exec postgres pg_isready -U n8n
Onvoldoende geheugen
Upgrade je VPS of optimaliseer n8n:
# In docker-compose.yml, add under n8n service:
deploy:
resources:
limits:
memory: 2G
Prestatie-optimalisatie
1. Uitvoeringen opschonen
Verwijder automatisch oude uitvoeringen om ruimte te besparen. In de n8n-instellingen:
- Instellingen → Workflow-instellingen → Foutuitvoeringen bewaren: laatste 30 dagen
- Succesvolle uitvoeringen bewaren: laatste 7 dagen
2. Workers verhogen
Voor zware werklasten:
environment:
- EXECUTIONS_MODE=queue
- EXECUTIONS_PROCESS=own
3. Redis gebruiken voor wachtrijmodus
Voeg een Redis-service toe voor workflows met hoog volume:
redis:
image: redis:alpine
restart: always
networks:
- n8n-network
Aanbevolen VPS-specificaties
| Werklast | RAM | CPU | VPS |
|---|---|---|---|
| Licht | 2GB | 1 vCPU | Hostinger KVM 1 |
| Gemiddeld | 4GB | 2 vCPU | Hostinger KVM 2 |
| Zwaar | 8GB | 4 vCPU | Contabo VPS S |
Conclusie
Je hebt nu een productieklare n8n-installatie met:
✅ PostgreSQL-database voor betrouwbaarheid ✅ Nginx reverse proxy voor prestaties ✅ SSL-encryptie voor beveiliging ✅ Automatische back-ups voor gemoedsrust ✅ Automatisch herstarten voor 24/7 beschikbaarheid
Je zelf gehoste n8n is klaar voor onbeperkte automatiseringen! Benieuwd hoe n8n zich verhoudt tot betaalde alternatieven? Bekijk onze n8n vs Zapier vergelijking.
Ready to get started?
Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.
Get Hostinger VPS — $4.99/mo// up to 75% off + free domain included
// related topics
// related guides
$1 VPS Hosting 2026: Cheapest VPS Servers Starting at $1/Month
Looking for $1 VPS hosting? Compare the cheapest VPS providers starting from $1-3/month. Real specs, no hidden fees, honest reviews of budget VPS options.
tutorialCaddy Reverse Proxy Guide 2026: Automatic HTTPS Made Easy
Set up Caddy as a reverse proxy with automatic HTTPS, zero-config SSL, and simple Caddyfile syntax. Complete VPS deployment guide.
tutorialCloudflare Tunnel VPS Guide 2026: Expose Services Without Opening Ports
Set up Cloudflare Tunnel on your VPS to expose web apps securely without opening ports or revealing your server IP. Complete guide with Docker and DNS config.
tutorialCoolify VPS Setup Guide 2026: Self-Hosted Vercel Alternative
Deploy Coolify on your VPS for a self-hosted Vercel/Netlify experience. Complete setup guide with Docker, SSL, and app deployments.
Andrius Putna
I am Andrius Putna. Geek. Since early 2000 in love tinkering with web technologies. Now AI. Bridging business and technology to drive meaningful impact. Combining expertise in customer experience, technology, and business strategy to deliver valuable insights. Father, open-source contributor, investor, 2xIronman, MBA graduate.
// last updated: February 3, 2026. Disclosure: This article may contain affiliate links.