n8n auf Hetzner selbst hosten: Anleitung für Selbstständige
n8n Cloud kostet 20 €/Monat – selbst gehostet auf Hetzner zahlst du ab 5 €. DSGVO-konform, volle Kontrolle, 100M+ Docker-Pulls. Schritt-für-Schritt-Anleitung.
n8n Cloud kostet 20 Euro pro Monat. Ein eigener Hetzner-VPS kostet 5 Euro. Über zwölf Monate sparst du 180 Euro – und bekommst dafür mehr Kontrolle, besseren Datenschutz und unbegrenzte Ausführungen. Ich betreibe meine eigene n8n-Instanz seit über einem Jahr auf Hetzner und würde es nicht anders machen. Diese Anleitung zeigt dir Schritt für Schritt wie du das einrichtest – auch ohne Programmierkenntnisse.
Das Wichtigste auf einen Blick
- Hetzner CX22/CX23: ab ~5 €/Monat (2 vCPU, 4 GB RAM) statt 20 €/Monat n8n Cloud
- Ersparnis: ~180 €/Jahr auf dem Starter-Plan, ~540 €/Jahr auf Pro
- Hetzner = deutsches Unternehmen, kein US-Konzern, kein CLOUD Act – DSGVO-konform by design
- n8n Docker-Image: über 100 Millionen Downloads (Docker Hub)
- Einrichtungszeit: ca. 60–90 Minuten beim ersten Mal
Was brauchst du für das Setup?
Bevor du anfängst, sorge dafür dass du diese drei Dinge hast:
1. Einen Hetzner-Account — Registrierung auf hetzner.com, Kreditkarte oder PayPal für die Abrechnung.
2. Eine Domain — z.B. n8n.deinedomain.at oder eine Subdomain deiner bestehenden Domain. Du brauchst Zugriff auf die DNS-Einstellungen.
3. Einen Terminal — auf macOS ist das das Terminal-Programm, auf Windows PowerShell oder Windows Terminal. SSH-Grundkenntnisse (Verbindung aufbauen) reichen aus.
Das war’s. Programmierkenntnisse sind nicht nötig. Du kopierst Befehle, ich erkläre was sie tun.
Warum Hetzner statt n8n Cloud?
Hetzner Online GmbH sitzt in Gunzenhausen, Bayern. Kein US-Mutterkonzern, kein Börsengang, keine Investoren die Zugriff auf Daten verlangen könnten. Das bedeutet konkret: Hetzner unterliegt nicht dem US CLOUD Act – dem Gesetz das US-Behörden erlaubt, Daten von US-Unternehmen anzufordern, egal wo die Server stehen (Hetzner Datenschutz-FAQ).
Für Selbstständige in Österreich und Deutschland ist das relevant: Wenn du mit n8n Kundendaten verarbeitest – Lead-Daten, E-Mail-Adressen, CRM-Einträge – bist du nach Art. 28 DSGVO verpflichtet, einen Auftragsverarbeitungsvertrag mit jedem Dienstleister abzuschließen. Bei Hetzner schließt du genau einen AV-Vertrag. Deine Daten verlassen keinen EU-Server.
Auf n8n Cloud laufen deine Workflow-Daten durch n8n’s Server. Bei Self-Hosting liegt alles auf deinem Server – und nirgendwo sonst.
Kostenvergleich über 12 Monate
| Hetzner Self-Hosted | n8n Cloud Starter | n8n Cloud Pro | |
|---|---|---|---|
| Monatlich | ~5 € | 20 € | 50 € |
| Jährlich | ~60 € | 240 € | 600 € |
| Ersparnis/Jahr | — | 180 € | 540 € |
| Ausführungen | Unbegrenzt | 2.500/Monat | 10.000/Monat |
Hetzner CX22/CX23 Stand Juni 2026. n8n-Preise: n8n.io/pricing.
Welchen Hetzner-Server brauchst du?
Der CX22 (oder CX23 nach dem Preisanpassung Juni 2026) reicht für die meisten Selbstständigen problemlos aus: 2 vCPU, 4 GB RAM, 40 GB SSD, ab ~5 €/Monat. n8n selbst braucht mindestens 2 GB RAM; mit PostgreSQL-Datenbank und etwas Reserve bist du mit 4 GB auf der sicheren Seite.
Hetzner garantiert 99,9 % monatliche Verfügbarkeit (SLA). In der Praxis habe ich in über einem Jahr keine ungeplanten Ausfälle erlebt.
Server anlegen: Hetzner Cloud Console → „Server erstellen” → Region Nürnberg oder Falkenstein (Deutschland) → Ubuntu 24.04 LTS → CX22 → SSH-Key hinzufügen.
Schritt-für-Schritt: n8n auf Hetzner installieren
Schritt 1: SSH-Verbindung aufbauen
Verbinde dich mit deinem neuen Server. Die IP-Adresse findest du in der Hetzner Cloud Console:
ssh root@DEINE-SERVER-IP
Beim ersten Login bestätigt du den Fingerprint mit „yes”.
Schritt 2: Server vorbereiten und Docker installieren
Pakete aktualisieren und Docker installieren:
apt update && apt upgrade -y
curl -fsSL https://get.docker.com | sh
Firewall einrichten — nur SSH, HTTP und HTTPS zulassen:
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Schritt 3: Verzeichnis und Konfigurationsdateien anlegen
mkdir -p /opt/n8n && cd /opt/n8n
Erstelle die .env-Datei mit deinen Zugangsdaten:
cat > .env << 'EOF'
POSTGRES_USER=n8n
POSTGRES_PASSWORD=SICHERES_PASSWORT_HIER
POSTGRES_DB=n8n
N8N_ENCRYPTION_KEY=$(openssl rand -base64 32)
WEBHOOK_URL=https://n8n.DEINEDOMAIN.AT
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=SICHERES_PASSWORT_HIER
EOF
chmod 600 .env
Ersetze DEINEDOMAIN.AT, SICHERES_PASSWORT_HIER und den Basic-Auth-User mit deinen Werten. Die .env-Datei enthält Passwörter – chmod 600 macht sie nur für root lesbar.
Schritt 4: docker-compose.yml erstellen
cat > docker-compose.yml << 'EOF'
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
env_file: .env
volumes:
- ./postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
env_file: .env
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: ${POSTGRES_DB}
DB_POSTGRESDB_USER: ${POSTGRES_USER}
DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- ./data:/home/node/.n8n
expose:
- "5678"
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy/data:/data
- ./caddy/config:/config
EOF
Schritt 5: Caddyfile für SSL erstellen
Caddy holt automatisch ein Let’s Encrypt SSL-Zertifikat – du musst nichts konfigurieren:
cat > Caddyfile << 'EOF'
n8n.DEINEDOMAIN.AT {
reverse_proxy n8n:5678
encode gzip
}
EOF
Ersetze n8n.DEINEDOMAIN.AT mit deiner echten Subdomain.
Schritt 6: DNS-Eintrag setzen
In deinem Domain-Verwaltungspanel: einen A-Record für n8n.DEINEDOMAIN.AT anlegen, der auf die IP-Adresse deines Hetzner-Servers zeigt. DNS-Änderungen brauchen bis zu 30 Minuten bis sie weltweit wirksam sind.
Schritt 7: n8n starten
docker compose up -d
Nach ca. 30 Sekunden ist n8n unter https://n8n.DEINEDOMAIN.AT erreichbar. Beim ersten Aufruf richtest du deinen Admin-Account ein.
Wie sicherst du deine n8n-Instanz ab?
Eine laufende Instanz braucht regelmäßige Backups. Der einfachste Weg: tägliches Backup des gesamten /opt/n8n-Verzeichnisses.
# Backup-Script anlegen
cat > /opt/backup-n8n.sh << 'EOF'
#!/bin/bash
DATE=$(date +%Y-%m-%d)
tar -czf /root/n8n-backup-$DATE.tar.gz /opt/n8n
# Backups älter als 14 Tage löschen
find /root -name "n8n-backup-*.tar.gz" -mtime +14 -delete
EOF
chmod +x /opt/backup-n8n.sh
# Täglich um 03:00 Uhr ausführen
echo "0 3 * * * /opt/backup-n8n.sh" | crontab -
Wichtig: Übertrage die Backups zusätzlich auf ein externes System (Hetzner Storage Box, Backblaze B2 o.ä.). Backups auf demselben Server schützen nicht vor Serverausfall.
n8n aktualisieren
Neue n8n-Versionen erscheinen regelmäßig. Update in drei Befehlen:
cd /opt/n8n
docker compose pull
docker compose up -d
Häufige Fehler und wie du sie behebst
n8n startet nicht — “Database connection failed”
Warte 30 Sekunden und prüfe ob PostgreSQL läuft: docker compose ps. Wenn der postgres-Container unhealthy zeigt, stimmt meist das Passwort in der .env nicht.
SSL-Zertifikat wird nicht ausgestellt
Caddy braucht einen erreichbaren Port 80 und 443. Prüfe ob die Firewall korrekt eingerichtet ist: ufw status. Prüfe ob der DNS-Eintrag gesetzt ist: dig n8n.DEINEDOMAIN.AT.
Webhook-URLs funktionieren nicht
Die WEBHOOK_URL in der .env muss exakt mit deiner Domain übereinstimmen, inklusive https://. Nach einer Änderung: docker compose restart n8n.
n8n nicht erreichbar nach Neustart
Prüfe ob Docker beim Systemstart läuft: systemctl enable docker. Die Container haben restart: unless-stopped — sie starten automatisch mit Docker.
Häufige Fragen zu n8n Self-Hosting
Brauche ich Linux-Kenntnisse? Grundkenntnisse reichen. Du musst SSH kennen (Verbindung aufbauen, Befehle ausführen) und verstehen was Copy-Paste im Terminal bedeutet. Alles andere zeigt diese Anleitung.
Kann ich n8n Cloud und Self-Hosted parallel nutzen? Ja. Workflows lassen sich als JSON exportieren und importieren. Du kannst auf Cloud entwickeln und dann auf Self-Hosted migrieren.
Wie lange dauert das Setup? Beim ersten Mal 60–90 Minuten. Beim zweiten Server schaffst du es in 20 Minuten. Die meiste Zeit geht für DNS-Propagation drauf (bis zu 30 Minuten).
Was passiert wenn der Server abstürzt?
Docker startet alle Container automatisch neu wenn der Server wieder läuft (restart: unless-stopped). Workflows die gerade liefen werden beim nächsten Trigger neu gestartet.
Muss ich Backups machen?
Ja — unbedingt. Mit dem Backup-Script aus dieser Anleitung läuft das automatisch. Credentials und Workflow-Daten liegen im /opt/n8n-Verzeichnis; ohne Backup sind sie bei einem Serverfehler verloren.
Nächste Schritte
Nach der Installation empfehle ich als ersten Workflow den n8n Einsteiger-Guide — er führt dich in 30 Minuten durch deinen ersten funktionierenden Workflow. Wenn du noch unentschieden bist ob Self-Hosting das Richtige für dich ist, hilft der Vergleich n8n vs. Zapier vs. Make bei der Entscheidung.
Fragen zum Setup oder brauchst du Hilfe bei der Einrichtung? Meld dich direkt.
Quellen
- Hetzner: Cloud Pricing – abgerufen 2026-06-30
- Hetzner: Price Adjustment Juni 2026 – abgerufen 2026-06-30
- Hetzner: Data Privacy FAQ – abgerufen 2026-06-30
- Hetzner: Cloud SLA 99,9 % – abgerufen 2026-06-30
- n8n.io: Pricing – abgerufen 2026-06-30
- n8n.io: Privacy & Security Docs – abgerufen 2026-06-30
- Docker Hub: n8nio/n8n – abgerufen 2026-06-30
- sliplane.io: n8n Pricing Cloud vs. Self-Hosted 2026 – abgerufen 2026-06-30
Über den Autor
Ich bin Chris Schweigler, Automatisierungsexperte aus Österreich. Ich betreibe meine eigene n8n-Instanz auf Hetzner und entwickle Workflows für selbstständige Onlineunternehmer. Fragen zur Einrichtung oder zum Betrieb? Schreib mir.
Du willst das in deinem Business umsetzen?
Ich zeige dir, welche Automationen für dich am meisten Zeit und Geld sparen – in einem kostenlosen Erstgespräch.