# n8n – Installation und Einrichtung

n8n – Installation und Einrichtung – Self-Hosting Anleitung auf deinem NexoraHost Server.

n8n ist ein kostenloses Open-Source-Tool zur Workflow-Automatisierung mit einer visuellen Oberfläche. Es verbindet Apps und Dienste miteinander – ähnlich wie Zapier oder Make, aber auf deinem eigenen Server. Mit n8n auf deinem NexoraHost VPS oder Rootserver sparst du teure Abo-Gebühren und behältst die volle Kontrolle über deine Daten.

**Hinweis:** Detaillierte Unterseiten zu ersten Workflows und komplexen Automatisierungen findest du in der linken Navigation.

## Warum n8n selbst hosten?

    - Keine monatlichen Kosten – der Self-Hosted-Plan ist komplett kostenlos und unbegrenzt
- Unbegrenzt viele Workflows, Benutzer und Ausführungen
- Volle Kontrolle über deine Daten – ideal für DSGVO-konforme Automatisierungen
- Über 400 Integrationen: Google, Slack, Discord, Telegram, Datenbanken, E-Mail und vieles mehr
- Extrem erweiterbar durch eigene Nodes und benutzerdefinierten JavaScript/TypeScript-Code

## Voraussetzungen

    - Einen VPS oder Rootserver mit Ubuntu 22.04/24.04 (andere Linux-Distributionen funktionieren ähnlich)
- SSH-Zugang mit root-Rechten
- Mindestens 2 GB RAM (4 GB empfohlen für komplexe Workflows)
- Eine eigene Domain mit SSL (dringend empfohlen für sicheren Zugriff)
- Docker und Docker-Compose (installieren wir in Schritt 1)

## Schritt 1: Docker installieren

Docker ist die sauberste Methode, da alle Abhängigkeiten im Container isoliert sind:

`# Docker installieren (Ubuntu/Debian)
sudo apt update
sudo apt install docker.io docker-compose -y

# Docker beim Systemstart aktivieren
sudo systemctl enable --now docker

# Aktuellen Benutzer zur Docker-Gruppe hinzufügen (erspart sudo bei jedem Befehl)
sudo usermod -aG docker $USER`
Nach dem Hinzufügen zur Gruppe einmal ab- und wieder anmelden, damit die Änderung wirksam wird.

## Schritt 2: Ordnerstruktur vorbereiten

`# Hauptverzeichnis für n8n
mkdir -p ~/n8n && cd ~/n8n

# Unterordner für Daten und Backups
mkdir -p {n8n_data,backup}`

## Schritt 3: n8n mit Docker-Compose starten

Erstelle die docker-compose.yml:

`nano ~/n8n/docker-compose.yml`
Füge folgenden Inhalt ein:

`version: '3.8'
services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=dein-sicheres-passwort
      - NODE_ENV=production
      - N8N_HOST=n8n.deine-domain.de
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.deine-domain.de
      - N8N_ENCRYPTION_KEY=dein-zufalls-generierter-key
      - N8N_USER_MANAGEMENT_DISABLED=false
      - N8N_DIAGNOSTICS_ENABLED=false
      - GENERIC_TIMEZONE=Europe/Berlin
      - TZ=Europe/Berlin
    ports:
      - 5678:5678
    volumes:
      - ./n8n_data:/home/node/.n8n
    restart: unless-stopped`

**Wichtige Umgebungsvariablen erklärt:**

    - **N8N_BASIC_AUTH_ACTIVE / _USER / _PASSWORD:** Aktiviert den Login-Schutz. Ohne diese Einstellung kann jeder auf dein n8n zugreifen
- **N8N_HOST / N8N_PROTOCOL:** Deine Domain – wichtig für korrekte Weiterleitungen
- **WEBHOOK_URL:** Die Basis-URL für eingehende Webhooks. Ohne diese funktionieren Webhooks von externen Diensten nicht
- **N8N_ENCRYPTION_KEY:** Verschlüsselt Anmeldedaten in der Datenbank. Generiere einen zufälligen Key (z.B. mit `openssl rand -hex 32`)
- **N8N_USER_MANAGEMENT_DISABLED:** false = Mehrbenutzer-Modus aktiv (jeder braucht einen Account)

Starte den Container:

`cd ~/n8n
docker-compose up -d`

## Schritt 4: n8n im Browser einrichten

    - Rufe `http://deine-server-ip:5678` im Browser auf
- Melde dich mit den in der docker-compose.yml festgelegten Zugangsdaten an (admin / dein-sicheres-passwort)
- Der Einrichtungsassistent führt dich durch die ersten Schritte:
        
            - Bestätige deine E-Mail-Adresse (optional, aber empfohlen für Benachrichtigungen)
- Wähle ob du Diagnosedaten teilen möchtest (empfohlen: Nein)

    

## Schritt 5: Ersten Workflow erstellen

Ein Workflow ist eine Kette von Aktionen. Hier ein einfaches Beispiel – eine E-Mail-Benachrichtigung bei einem Webhook-Aufruf:

    - Klicke auf **New Workflow**
- Füge einen **Webhook-Node** hinzu (aus der Liste "Trigger")
- Konfiguriere den Webhook:
        
            - **HTTP Method:** POST
- **Path:** /mein-erster-webhook
- **Response Mode:** Last Node

    
- Füge einen **E-Mail-Node** hinzu (aus "Communication")
- Konfiguriere die E-Mail:
        
            - **To:** deine@email.de
- **Subject:** Neuer Webhook-Aufruf!
- **Text:** Der Webhook wurde um {{ $json.timestamp }} aufgerufen

    
- Verbinde die Nodes per Drag-and-Drop
- Klicke auf **Execute Workflow** zum Testen
- Nach erfolgreichem Test: **Active**-Schalter oben rechts umlegen

## Schritt 6: Externen Zugriff mit SSL absichern

Damit du n8n sicher von unterwegs erreichst und Webhooks funktionieren, brauchst du einen Reverse Proxy mit SSL:

`# Nginx installieren
sudo apt install nginx certbot python3-certbot-nginx -y

# Nginx-Konfiguration erstellen
sudo nano /etc/nginx/sites-available/n8n`
`server {
    listen 80;
    server_name n8n.deine-domain.de;

    location / {
        proxy_pass http://localhost:5678;
        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_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 120s;
    }
}`
`# Seite aktivieren
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

# SSL-Zertifikat holen
sudo certbot --nginx -d n8n.deine-domain.de`

## Schritt 7: n8n aktualisieren

n8n erhält regelmäßig Updates mit neuen Nodes und Features. So aktualisierst du sicher:

`# Backup erstellen
cd ~/n8n
tar -czf backup/n8n_$(date +%Y%m%d_%H%M).tar.gz n8n_data

# Neueste Version pullen und Container neustarten
docker-compose pull
docker-compose up -d

# Alte Docker-Images aufräumen
docker image prune -f`

## Schritt 8: Wichtige Einstellungen für den Produktivbetrieb

### E-Mail für Benachrichtigungen konfigurieren

    - Gehe zu **Settings → Email**
- Trage deine SMTP-Daten ein (z.B. von deinem NexoraHost-Webspace)
- Teste die Verbindung mit "Send Test Email"

### Backup der Workflows

Neben dem automatischen Datei-Backup kannst du Workflows auch manuell exportieren:

    - Öffne einen Workflow
- Klicke auf die drei Punkte oben rechts → **Download**
- Die JSON-Datei enthält den kompletten Workflow und kann jederzeit importiert werden

### Benutzerverwaltung

Wenn `N8N_USER_MANAGEMENT_DISABLED=false` gesetzt ist, kannst du weitere Benutzer einladen:

    - Gehe zu **Settings → Users**
- Klicke auf **Invite User**
- Vergib eine E-Mail-Adresse und wähle die Rolle (Member oder Admin)
- Der Benutzer erhält eine Einladungs-E-Mail

## Häufige Probleme und Lösungen

**Webhooks funktionieren nicht von außen:**

    - Prüfe ob die WEBHOOK_URL-Umgebungsvariable korrekt gesetzt ist
- Prüfe ob der Reverse Proxy korrekt läuft: `sudo nginx -t`
- Stelle sicher, dass Port 443 in der Firewall offen ist

**n8n startet nicht oder crasht:**

    - Prüfe die Logs: `docker logs n8n`
- Häufigste Ursache: N8N_ENCRYPTION_KEY wurde nachträglich geändert – dabei gehen alle gespeicherten Zugangsdaten verloren
- Falls der Key verloren ist: Container stoppen, alten Key aus den Logs suchen oder Datenbank zurücksetzen

**Workflow läuft langsam:**

    - Prüfe die Server-Ressourcen mit `htop`
- Komplexe Workflows mit vielen HTTP-Requests können Minuten dauern – erhöhe das Timeout mit `EXECUTIONS_TIMEOUT`
- Erwäge ein Upgrade auf einen größeren VPS mit mehr RAM

## Nützliche Tipps für den Einstieg

    - **Vorlagen nutzen:** n8n bietet hunderte fertige Workflow-Vorlagen. Klicke auf **Templates** in der linken Seitenleiste
- **Cron-Trigger:** Mit dem "Schedule"-Node kannst du Workflows zeitgesteuert ausführen – z.B. täglich um 8 Uhr einen Bericht versenden
- **Fehlerbehandlung:** Jeder Node hat einen "Error"-Ausgang. Verbinde ihn mit einem Benachrichtigungs-Node um über Fehler informiert zu werden
- **Sub-Workflows:** Lagere wiederkehrende Logik in separate Workflows aus und rufe sie per "Execute Workflow"-Node auf

*Ausführliche Anleitungen zu einzelnen Nodes, API-Integrationen und komplexen Automatisierungen findest du in den Artikeln der linken Navigation.*
