Zum Hauptinhalt springen
Zurück zur Kategorie

n8n Installation: Self-Hosted Workflow-Automatisierung

n8n Docker-Installation, Webhook-Integrationen, Workflow-Erstellung, 400+ App-Verbindungen, geplante Aufgaben, Credentials-Verwaltung und Production-Deployment.

Lesezeit: 15 Min Self-Hosting
n8nautomatisierungworkflowself-hostingdockerwebhookintegration

Inhaltsverzeichnis

n8n Installation: Self-Hosted Workflow-Automatisierung

n8n ist eine Open-Source-Workflow-Automatisierungsplattform mit visueller Oberfläche, die 400+ Anwendungen und Dienste verbinden kann. Sie können es als self-hosted Alternative zu Diensten wie Zapier und Make (Integromat) auf Ihrem eigenen Server betreiben. Sie können komplexe Automatisierungen ohne Code erstellen oder benutzerdefinierte Logik mit JavaScript/Python hinzufügen.

Was ist n8n?

n8n (Kurzform für "nodemation") ermöglicht die Erstellung von Workflows mit knotenbasierter visueller Programmierung. Hauptmerkmale:

  • 400+ Integrationen: Slack, GitHub, Google Sheets, Notion, Airtable und mehr
  • Webhook-Unterstützung: HTTP-Anfragen als Trigger verwenden
  • Geplante Aufgaben: Cron-basierte Planung
  • Code-Unterstützung: JavaScript- und Python-Knoten
  • Fehlerbehandlung: Retry-Mechanismus und Fehlerflüsse
  • Verschlüsselte Credentials: API-Schlüssel sicher gespeichert

Systemanforderungen

  • Server mit Docker und Docker Compose
  • Mindestens 1 GB RAM (2 GB empfohlen)
  • PostgreSQL (für Production empfohlen) oder SQLite

Grundlegende Docker-Installation

Schnellstart mit SQLite

hljs yaml
version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    environment:
      - N8N_HOST=n8n.example.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.example.com/
      - GENERIC_TIMEZONE=Europe/Berlin
      - N8N_ENCRYPTION_KEY=starker-verschluesselungsschluessel
    volumes:
      - ./n8n-data:/home/node/.n8n
    ports:
      - "127.0.0.1:5678:5678"
hljs bash
# Container starten
docker compose up -d

# Logs prüfen
docker logs n8n -f

N8N_ENCRYPTION_KEY wird zur Verschlüsselung von Credentials verwendet. Wenn Sie diesen Wert verlieren, werden alle Ihre Credentials unzugänglich. Bewahren Sie ihn an einem sicheren Ort auf.

Production-Setup mit PostgreSQL

hljs yaml
version: '3.8'

services:
  postgres:
    image: postgres:15
    container_name: n8n-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: n8n
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: starkes-passwort
    volumes:
      - postgres-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U n8n"]
      interval: 5s
      timeout: 5s
      retries: 10

  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=starkes-passwort
      - N8N_HOST=n8n.example.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.example.com/
      - GENERIC_TIMEZONE=Europe/Berlin
      - N8N_ENCRYPTION_KEY=starker-verschluesselungsschluessel
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=admin-passwort
    volumes:
      - ./n8n-data:/home/node/.n8n
    ports:
      - "127.0.0.1:5678:5678"

volumes:
  postgres-data:

Nginx Reverse Proxy

hljs nginx
server {
    listen 80;
    server_name n8n.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name n8n.example.com;

    ssl_certificate /etc/letsencrypt/live/n8n.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/n8n.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1: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_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 3600;
    }
}

Grundlegende Workflows erstellen

Erster Workflow: Webhook → Slack-Benachrichtigung

  1. Auf New Workflow klicken
  2. Knoten mit + hinzufügen → Webhook auswählen
    • HTTP Method: POST
    • Path: /slack-notify
  3. Neuen Knoten mit +Slack auswählen
    • Operation: Send Message
    • Channel: #allgemein
    • Message: {{ $json.message }}
  4. Speichern und Aktivieren
hljs bash
# Webhook testen
curl -X POST https://n8n.example.com/webhook/slack-notify \
  -H "Content-Type: application/json" \
  -d '{"message": "Hallo n8n!"}'

Trigger-Typen

Cron (Zeitplan) Trigger

# Cron-Ausdrücke
0 9 * * 1-5    # Werktags um 09:00
*/15 * * * *   # Alle 15 Minuten
0 0 * * *      # Jeden Mitternacht
0 8 * * 1      # Jeden Montag um 08:00

Credentials-Verwaltung

Einstellungen → Credentials → Credential hinzufügen

Beispiel: GitHub API
- Credential-Typ: GitHub API
- Access Token: ghp_xxxxxxxxxxxx
- Verbindung testen

Beliebte Workflow-Beispiele

GitHub → Slack-Benachrichtigung

GitHub Trigger (Push-Event)
  → IF (branch == 'main')
    → Slack ("Neues Deployment: {{ $json.commits[0].message }}")
    → E-Mail (Team benachrichtigen)

Täglicher Bericht

Cron Trigger (jeden Morgen um 09:00)
  → PostgreSQL (gestrige Verkäufe abrufen)
  → Code (Daten formatieren)
  → Google Sheets (zum Bericht hinzufügen)
  → Slack (Zusammenfassung senden)

Queue-Modus (Hohe Last)

hljs yaml
environment:
  - EXECUTIONS_MODE=queue
  - QUEUE_BULL_REDIS_HOST=redis
  - QUEUE_BULL_REDIS_PORT=6379

redis:
  image: redis:7-alpine
  container_name: n8n-redis
  restart: unless-stopped

Backup

hljs bash
# n8n-Daten sichern
tar -czf n8n-backup-$(date +%Y%m%d).tar.gz ./n8n-data/

# PostgreSQL-Backup
docker exec n8n-postgres pg_dump -U n8n n8n > n8n-db-$(date +%Y%m%d).sql

Mit n8n auf REXE VPS-Servern können Sie alle Ihre Geschäftsprozesse automatisieren. Mit 2 GB RAM können Sie Hunderte von Workflows ausführen.