n8n auf Hetzner Cloud selbst hosten: Vollständiges Docker-Setup-Tutorial
Workflow-Automatisierung ist für moderne Unternehmen unverzichtbar geworden, aber SaaS-Lösungen können mit wachsenden Teams teuer werden. Wir zeigen Ihnen, wie Sie Ihre eigene n8n-Instanz auf Hetzner Cloud für unter 5 EUR/Monat einrichten und damit unbegrenzte Workflows und vollständige Kontrolle über Ihre Automatisierungsplattform erhalten.
Was Sie aufbauen werden
Am Ende dieses Tutorials haben Sie:
- Eine voll funktionsfähige n8n-Installation mit HTTPS
- Automatische SSL-Zertifikate über Let's Encrypt
- E-Mail-Integration für Benutzerkonten
- Automatischen Start nach Serverneustartes
- Ein produktionsreifes Setup für den professionellen Einsatz
Monatliche Kosten: 4,51 EUR (CX11-Server) + Domain-Kosten
Voraussetzungen
- Domainname, der auf Ihre Server-IP verweist
- Grundlegende Kommandozeilenkenntnisse
- Hetzner-Cloud-Konto
Schritt 1: Server-Einrichtung
Hetzner-Cloud-Server erstellen
- Melden Sie sich in der Hetzner Cloud Console an
- Erstellen Sie ein neues Projekt
- Fügen Sie einen Server mit diesen Spezifikationen hinzu:
- Image: Ubuntu 24.04 LTS
- Typ: CX11 (1 vCPU, 4 GB RAM, 20 GB Festplatte)
- Standort: Wählen Sie den nächstgelegenen zu Ihren Benutzern
- SSH-Key: Fügen Sie Ihren öffentlichen Schlüssel hinzu
Initiale Server-Konfiguration
Verbinden Sie sich mit Ihrem Server:
ssh root@YOUR_SERVER_IP
Aktualisieren Sie das System:
apt update && apt upgrade -y
Schritt 2: Docker installieren
Installieren Sie Docker und Docker Compose:
# Install dependencies
apt install apt-transport-https ca-certificates curl software-properties-common gnupg -y
# Add Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Add Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# Create Docker network for our services
docker network create proxy
Docker-Installation verifizieren:
docker --version
docker compose version
Schritt 3: Traefik Reverse Proxy konfigurieren
Verzeichnisstruktur erstellen:
mkdir -p /opt/traefik/data
cd /opt/traefik
Traefik-Konfigurationsdatei erstellen:
nano /opt/traefik/data/traefik.yml
Folgende Konfiguration hinzufügen:
api:
dashboard: false
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
certificatesResolvers:
letsencrypt:
acme:
email: your-email@example.com # Change this!
storage: acme.json
httpChallenge:
entryPoint: http
acme.json-Datei für SSL-Zertifikate erstellen:
touch /opt/traefik/data/acme.json
chmod 600 /opt/traefik/data/acme.json
Traefik-Docker-Compose-Datei erstellen:
nano /opt/traefik/docker-compose.yml
Folgende Konfiguration hinzufügen:
version: '3'
services:
traefik:
image: traefik:latest
container_name: traefik
restart: always
ports:
- "80:80"
- "443:443"
networks:
- proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/etc/traefik/traefik.yml
- ./data/acme.json:/acme.json
labels:
- "traefik.enable=true"
networks:
proxy:
external: true
Schritt 4: SMTP-Relay einrichten (optional, aber empfohlen)
Mailserver-Verzeichnis erstellen:
mkdir -p /opt/mailserver
cd /opt/mailserver
Docker-Compose-Datei erstellen:
nano /opt/mailserver/docker-compose.yml
Folgende Konfiguration hinzufügen:
version: '3'
services:
mailserver:
image: bytemark/smtp
restart: always
networks:
- proxy
environment:
- RELAY_HOST=smtp.gmail.com # Change to your SMTP provider
- RELAY_PORT=587
- RELAY_USERNAME=your-email@gmail.com # Change this
- RELAY_PASSWORD=your-app-password # Change this
- MAIL_DOMAIN=yourdomain.com # Change this
ports:
- "25:25"
networks:
proxy:
external: true
Hinweis: Für Gmail müssen Sie:
- Zwei-Faktor-Authentifizierung aktivieren
- Ein App-Passwort generieren
- Das App-Passwort verwenden (nicht Ihr reguläres Passwort)
Schritt 5: n8n konfigurieren
n8n-Verzeichnis erstellen:
mkdir -p /opt/n8n
cd /opt/n8n
Docker-Compose-Datei erstellen:
nano /opt/n8n/docker-compose.yml
Folgende Konfiguration hinzufügen:
version: '3'
services:
n8n:
image: n8nio/n8n:latest
restart: always
environment:
- N8N_HOST=n8n.yourdomain.com # Change this!
- NODE_ENV=production
- N8N_PROTOCOL=https
- N8N_PORT=5678
- N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com # Change this!
# Email configuration
- N8N_EMAIL_MODE=smtp
- N8N_SMTP_HOST=mailserver
- N8N_SMTP_PORT=25
- N8N_SMTP_SSL=false
- N8N_SMTP_USER=
- N8N_SMTP_PASS=
- N8N_SMTP_SENDER=noreply@yourdomain.com # Change this!
# Important fixes for proxy setup
- N8N_TRUST_PROXY_HEADER=true
- N8N_RUNNERS_ENABLED=true
volumes:
- ./data:/home/node/.n8n
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.yourdomain.com`)" # Change this!
- "traefik.http.routers.n8n.entrypoints=https"
- "traefik.http.routers.n8n.tls.certresolver=letsencrypt"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
networks:
proxy:
external: true
Schritt 6: Systemd-Dienste für automatischen Start erstellen
Traefik-Dienst
nano /etc/systemd/system/traefik-docker.service
Folgende Konfiguration hinzufügen:
[Unit]
Description=Traefik Docker Compose
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/traefik
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
[Install]
WantedBy=multi-user.target
Mailserver-Dienst
nano /etc/systemd/system/mailserver-docker.service
Folgende Konfiguration hinzufügen:
[Unit]
Description=Mailserver Docker Compose
Requires=docker.service
After=docker.service
Before=n8n-docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/mailserver
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
[Install]
WantedBy=multi-user.target
n8n-Dienst
nano /etc/systemd/system/n8n-docker.service
Folgende Konfiguration hinzufügen:
[Unit]
Description=n8n Docker Compose
Requires=docker.service
After=docker.service traefik-docker.service mailserver-docker.service
Wants=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/n8n
ExecStartPre=/bin/bash -c 'until docker container inspect traefik > /dev/null 2>&1; do sleep 2; done'
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
Restart=on-failure
RestartSec=30
TimeoutStartSec=180
[Install]
WantedBy=multi-user.target
Dienste aktivieren und starten
# Reload systemd daemon
systemctl daemon-reload
# Enable services to start on boot
systemctl enable traefik-docker.service
systemctl enable mailserver-docker.service
systemctl enable n8n-docker.service
# Start services
systemctl start traefik-docker.service
sleep 10
systemctl start mailserver-docker.service
sleep 10
systemctl start n8n-docker.service
Schritt 7: DNS-Konfiguration
Verweisen Sie Ihre Domain auf Ihren Server:
- Gehen Sie zu Ihrem Domain-Registrar/DNS-Anbieter
- Erstellen Sie einen A-Eintrag:
- Name: n8n
- Typ: A
- Wert: YOUR_SERVER_IP
- TTL: 300 (oder das Minimum)
Warten Sie auf die DNS-Propagierung (kann bis zu 24 Stunden dauern, ist aber in der Regel deutlich schneller).
Schritt 8: Ihre Installation testen
Prüfen Sie, ob die Dienste laufen:
docker ps
Sie sollten drei laufende Container sehen: traefik, mailserver und n8n.
Besuchen Sie Ihre n8n-Instanz:
https://n8n.yourdomain.com
Sie sollten die n8n-Einrichtungsseite mit einem grünen Schloss-Symbol sehen (HTTPS funktioniert).
Fehlerbehebung häufiger Probleme
SSL-Zertifikat funktioniert nicht
Prüfen Sie die Traefik-Logs:
docker logs traefik
Häufige Ursachen:
- DNS verweist nicht auf den Server
- Firewall blockiert Ports 80/443
- Falsche Domain in der Konfiguration
n8n nicht erreichbar
Prüfen Sie die n8n-Logs:
docker logs n8n-n8n-1
Häufige Lösungen:
- Überprüfen Sie, ob die Domain-Konfiguration in allen Dateien übereinstimmt
- Prüfen Sie, ob alle Container im selben Netzwerk sind
E-Mail funktioniert nicht
Prüfen Sie die Mailserver-Logs:
docker logs mailserver-mailserver-1
Überprüfen Sie SMTP-Zugangsdaten und -Einstellungen.
Dienste starten nicht nach Neustart
Prüfen Sie den Dienststatus:
systemctl status traefik-docker.service
systemctl status n8n-docker.service
Bei Bedarf neu starten:
systemctl restart traefik-docker.service
systemctl restart n8n-docker.service
Wartung und Updates
Regelmäßige Wartung
Wöchentliche Prüfungen:
# Check container status
docker ps
# Check disk space
df -h
# Check logs for errors
docker logs n8n-n8n-1 | grep -i error
Monatliche Updates:
# Update container images
cd /opt/n8n && docker compose pull && docker compose up -d
cd /opt/traefik && docker compose pull && docker compose up -d
cd /opt/mailserver && docker compose pull && docker compose up -d
# Clean up old images
docker system prune -f
Ihre Daten sichern
Backup-Skript erstellen:
nano /opt/backup-n8n.sh
Folgenden Inhalt hinzufügen:
#!/bin/bash
mkdir -p /opt/backups
tar -czf /opt/backups/n8n-backup-$(date +%Y%m%d).tar.gz /opt/n8n/data
find /opt/backups -name "n8n-backup-*.tar.gz" -mtime +30 -delete
Ausführbar machen und zu Cron hinzufügen:
chmod +x /opt/backup-n8n.sh
# Add to crontab (daily backup at 2 AM)
crontab -e
# Add this line:
0 2 * * * /opt/backup-n8n.sh
Sicherheitshärtung
Firewall konfigurieren
# Install UFW
apt install ufw
# Set defaults
ufw default deny incoming
ufw default allow outgoing
# Allow SSH
ufw allow 22
# Allow HTTP/HTTPS
ufw allow 80
ufw allow 443
# Enable firewall
ufw enable
SSH absichern
SSH-Konfiguration bearbeiten:
nano /etc/ssh/sshd_config
Folgende Änderungen vornehmen:
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
SSH neu starten:
systemctl restart ssh
Fail2Ban einrichten
apt install fail2ban
# Copy default configuration
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# Enable and start
systemctl enable fail2ban
systemctl start fail2ban
Kostenaufstellung
Monatliche Kosten:
- Hetzner CX11-Server: 4,51 EUR
- Domain (jährlich, variiert): ca. 10-15 EUR/Jahr
- Gesamt: ca. 5-6 EUR/Monat
Vergleich mit n8n Cloud:
- n8n Starter: 20 $/Monat
- n8n Pro: 50 $/Monat
- Einsparungen: 180-540 $/Jahr
Ihr Setup skalieren
Mehrere n8n-Instanzen
Sie können mehrere isolierte n8n-Instanzen für verschiedene Teams betreiben:
Erstellen Sie /opt/n8n-team2/docker-compose.yml:
version: '3'
services:
n8n-team2:
image: n8nio/n8n:latest
restart: always
environment:
- N8N_HOST=team2.yourdomain.com
# ... rest of configuration
volumes:
- ./data:/home/node/.n8n
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n-team2.rule=Host(`team2.yourdomain.com`)"
- "traefik.http.routers.n8n-team2.entrypoints=https"
- "traefik.http.routers.n8n-team2.tls.certresolver=letsencrypt"
- "traefik.http.services.n8n-team2.loadbalancer.server.port=5678"
networks:
proxy:
external: true
Serverressourcen aufrüsten
Wenn Sie mehr Leistung benötigen, rüsten Sie Ihren Hetzner-Server auf:
- CX21: 2 vCPU, 8 GB RAM (8,46 EUR/Monat)
- CX31: 2 vCPU, 16 GB RAM (16,07 EUR/Monat)
Fazit
Sie haben jetzt eine produktionsreife n8n-Installation, die nur einen Bruchteil gehosteter Lösungen kostet und Ihnen gleichzeitig vollständige Kontrolle gibt. Das Setup umfasst automatisches HTTPS, E-Mail-Funktionalität und robustes Service-Management.
Hauptvorteile dieses Ansatzes:
- Kosteneffizient: Hunderte Dollar jährlich sparen
- Vollständige Kontrolle: Keine Nutzungslimits oder Einschränkungen
- Datenschutz: Ihre Daten bleiben auf Ihrer Infrastruktur
- Anpassbar: Nach Bedarf modifizieren und erweitern
Diese Konfiguration wurde in Produktionsumgebungen getestet und bietet Zuverlässigkeit auf Enterprise-Niveau zu einem Bruchteil der Kosten.
Über tva
tva gewährleistet umfassendes Infrastrukturmanagement von Datenbanksystemen, Cloud-Umgebungen und globalen Lieferketten. Unser methodischer Ansatz verbindet rigorose Sicherheitsprotokolle mit Leistungsoptimierung, während strategische Beratungsdienste eine präzise Koordination sowohl digitaler Fähigkeiten als auch physischer Vermögenswerte ermöglichen – unter Einhaltung höchster Standards operativer Exzellenz und Compliance in allen Engagements.
Besuchen Sie tva.sg für weitere Informationen über unsere Dienstleistungen.