n8n selbst hosten: Komplette Anleitung für Docker und VPS

n8n ist die Open-Source-Alternative zu Zapier und Make.com – mit einem entscheidenden Vorteil: Sie können die Software auf Ihrem eigenen Server betreiben. Für deutsche Unternehmen bedeutet das volle DSGVO-Kontrolle, keine Daten bei US-Anbietern, und langfristig niedrigere Kosten.

In dieser Anleitung zeige ich Ihnen, wie Sie n8n mit Docker auf einem eigenen VPS installieren.

Warum n8n selbst hosten?

Vorteile gegenüber Cloud-Lösungen

AspektSelf-HostedCloud (Zapier/Make)
Datenkontrolle✅ 100% bei Ihnen❌ US-Server
DSGVO✅ Volle Kontrolle⚠️ AVV erforderlich
Kosten✅ ~5-20€/Monat (VPS)❌ 20-100€+/Monat
Workflows✅ Unbegrenzt❌ Plan-abhängig
Executions✅ Unbegrenzt❌ Plan-abhängig
Customizing✅ Voller Zugriff❌ Eingeschränkt

Wann ist Self-Hosting sinnvoll?

Empfohlen bei:

  • Verarbeitung personenbezogener Daten
  • Hohem Workflow-Volumen (>1.000 Executions/Monat)
  • Sensiblen Geschäftsdaten
  • Langfristiger Kostenoptimierung

Nicht empfohlen bei:

  • Keine technischen Grundkenntnisse
  • Sehr kleinem Volumen (<100 Executions/Monat)
  • Fehlenden Ressourcen für Wartung

Voraussetzungen

Bevor wir starten, benötigen Sie:

1. Einen VPS (Virtual Private Server)

Empfohlene deutsche Anbieter:

AnbieterMinimum-ConfigPreis/Monat
HetznerCX21 (2 vCPU, 4GB RAM)~5€
netcupVPS 1000 G10~8€
IONOSVPS M~6€

Mindestanforderungen:

  • 2 vCPU
  • 4 GB RAM
  • 40 GB SSD
  • Ubuntu 22.04 oder Debian 12

2. Eine Domain (optional, aber empfohlen)

Für HTTPS-Zugang benötigen Sie eine Domain, z.B. n8n.ihre-firma.de

3. Grundlegende Terminal-Kenntnisse

Sie sollten wissen, wie man:

  • Per SSH auf einen Server verbindet
  • Grundlegende Linux-Befehle ausführt

Schritt 1: Server vorbereiten

Verbinden Sie sich per SSH mit Ihrem Server:

ssh root@ihre-server-ip

System aktualisieren

apt update && apt upgrade -y

Docker installieren

# Docker-Repository hinzufügen
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

# Docker Compose installieren
apt install docker-compose-plugin -y

# Docker-Dienst starten
systemctl enable docker
systemctl start docker

Installation prüfen

docker --version
docker compose version

Die Ausgabe sollte die Docker-Version (z.B. 24.x oder höher) anzeigen.

Schritt 2: n8n-Verzeichnis erstellen

# Verzeichnis anlegen
mkdir -p /opt/n8n
cd /opt/n8n

# Unterverzeichnisse für Daten
mkdir -p data

Schritt 3: Docker Compose Konfiguration

Erstellen Sie die Docker Compose Datei:

nano docker-compose.yml

Fügen Sie folgende Konfiguration ein:

version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.ihre-domain.de
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.ihre-domain.de/
      - GENERIC_TIMEZONE=Europe/Berlin
      - TZ=Europe/Berlin
      # Sicherheit
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=IhrSicheresPasswort123!
    volumes:
      - ./data:/home/node/.n8n
    networks:
      - n8n-network

networks:
  n8n-network:
    driver: bridge

Wichtig: Ersetzen Sie:

  • n8n.ihre-domain.de mit Ihrer tatsächlichen Domain
  • IhrSicheresPasswort123! mit einem sicheren Passwort

Speichern Sie mit Ctrl+X, dann Y, dann Enter.

Schritt 4: Reverse Proxy mit Caddy (HTTPS)

Für automatisches HTTPS verwenden wir Caddy als Reverse Proxy.

Caddy installieren

apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy -y

Caddyfile konfigurieren

nano /etc/caddy/Caddyfile

Inhalt:

n8n.ihre-domain.de {
    reverse_proxy localhost:5678
}

Caddy neu starten

systemctl restart caddy

Schritt 5: DNS konfigurieren

Bei Ihrem Domain-Anbieter erstellen Sie einen A-Record:

TypNameWert
An8nIhre-Server-IP

Beispiel: n8n.ihre-domain.de123.45.67.89

Die DNS-Propagation kann bis zu 24 Stunden dauern, meist ist es jedoch innerhalb von Minuten aktiv.

Schritt 6: n8n starten

cd /opt/n8n
docker compose up -d

Status prüfen

docker compose ps
docker compose logs -f

Sie sollten sehen, dass der Container „running“ ist.

Schritt 7: Erster Login

Öffnen Sie im Browser: https://n8n.ihre-domain.de

Melden Sie sich mit den in der docker-compose.yml festgelegten Zugangsdaten an:

  • Benutzer: admin
  • Passwort: Das von Ihnen gewählte Passwort

Owner-Account erstellen

Beim ersten Login werden Sie aufgefordert, einen Owner-Account zu erstellen:

  1. E-Mail-Adresse eingeben
  2. Passwort festlegen
  3. Optional: n8n-Newsletter abonnieren

Fertig! Ihre selbst gehostete n8n-Instanz ist einsatzbereit.

Wichtige Nacharbeiten

Firewall konfigurieren

# UFW installieren (falls nicht vorhanden)
apt install ufw -y

# Regeln setzen
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 80
ufw allow 443

# Firewall aktivieren
ufw enable

Automatische Updates

Erstellen Sie ein Update-Script:

nano /opt/n8n/update.sh

Inhalt:

#!/bin/bash
cd /opt/n8n
docker compose pull
docker compose up -d
docker image prune -f

Ausführbar machen:

chmod +x /opt/n8n/update.sh

Backup einrichten

Die n8n-Daten liegen in /opt/n8n/data. Sichern Sie dieses Verzeichnis regelmäßig:

# Manuelles Backup
tar -czvf n8n-backup-$(date +%Y%m%d).tar.gz /opt/n8n/data

Für automatische Backups empfehle ich einen Cronjob oder einen Backup-Dienst wie Restic.

DSGVO-Dokumentation

Bei Self-Hosting sind Sie der Verantwortliche. Dokumentieren Sie:

Technische Maßnahmen

  • Verschlüsselung: HTTPS via Caddy (Let’s Encrypt)
  • Zugriffskontrolle: Basic Auth + Owner-Account
  • Firewall: UFW mit Whitelist
  • Standort: Deutsches Rechenzentrum (z.B. Hetzner Falkenstein/Nürnberg)

Verarbeitungsverzeichnis

Tragen Sie n8n in Ihr Verarbeitungsverzeichnis ein:

  • Zweck: Workflow-Automatisierung
  • Kategorien: Je nach Nutzung (Kundendaten, Bestelldaten, etc.)
  • Speicherort: Eigene Infrastruktur, DE
  • Löschfristen: Nach Ihren Vorgaben konfigurierbar

Häufige Probleme

n8n startet nicht

Prüfen Sie die Logs:

docker compose logs n8n

Häufige Ursachen:

  • Port 5678 bereits belegt
  • Fehlerhafte Umgebungsvariablen
  • Berechtigungsprobleme im data-Verzeichnis

HTTPS funktioniert nicht

Prüfen Sie:

  1. DNS korrekt konfiguriert? (dig n8n.ihre-domain.de)
  2. Ports 80 und 443 offen?
  3. Caddy läuft? (systemctl status caddy)

Webhooks kommen nicht an

Prüfen Sie:

  • WEBHOOK_URL in docker-compose.yml korrekt?
  • Firewall erlaubt eingehende Verbindungen?
  • Externe Dienste können Ihre URL erreichen?

Kosten im Vergleich

Self-Hosted (Hetzner CX21)

PostenMonatlich
VPS4,85 €
Domain~1 €
Gesamt~6 €

Dafür: Unbegrenzte Workflows, unbegrenzte Executions.

n8n Cloud

PlanMonatlichExecutions
Starter20 €2.500
Pro50 €10.000

Make.com (zum Vergleich)

PlanMonatlichOperations
Core9 €10.000
Pro16 €10.000

Fazit: Ab ~5.000 Executions/Monat rechnet sich Self-Hosting schnell.

Nächste Schritte

Nachdem n8n läuft:

  1. Erste Workflows erstellen – Starten Sie mit einfachen Automatisierungen
  2. Credentials sicher speichern – n8n verschlüsselt diese automatisch
  3. Community-Nodes erkunden – Über 400+ Integrationen verfügbar
  4. Monitoring einrichten – Uptime-Überwachung für produktive Systeme

Fazit

n8n selbst zu hosten ist mit Docker überraschend einfach. In etwa 30 Minuten haben Sie eine vollständig funktionsfähige Automatisierungsplattform – mit voller Datenkontrolle und zu einem Bruchteil der Cloud-Kosten.

Die wichtigsten Vorteile:

  • 100% Datenkontrolle – alle Daten auf Ihrem Server
  • DSGVO-konform – deutsches Rechenzentrum, keine US-Transfers
  • Unbegrenzte Workflows und Executions
  • Langfristig günstiger als Cloud-Alternativen

Für Unternehmen, die Wert auf Datenschutz legen und regelmäßig automatisieren, ist Self-Hosting die beste Wahl.


Weiterführende Artikel:

Nach oben scrollen