Lektion 2 von 6·10 Min Lesezeit

Installation & Konfiguration

n8n lässt sich auf verschiedene Arten installieren. Für den Enterprise-Einsatz empfehlen wir Docker — reproduzierbar, skalierbar und einfach zu warten.

Docker-Setup

Schnellstart mit Docker

docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n:latest

n8n ist nun unter http://localhost:5678 erreichbar. Für Production reicht das aber nicht.

Production-Setup mit Docker Compose

version: '3.8'
services:
  n8n:
    image: n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
      - N8N_ENCRYPTION_KEY=${ENCRYPTION_KEY}
      - WEBHOOK_URL=https://n8n.ihre-domain.de/
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres

  postgres:
    image: postgres:16-alpine
    restart: always
    environment:
      - POSTGRES_DB=n8n
      - POSTGRES_USER=n8n
      - POSTGRES_PASSWORD=${DB_PASSWORD}
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  n8n_data:
  postgres_data:

Wichtige Umgebungsvariablen

VariableBeschreibungEmpfehlung
N8N_ENCRYPTION_KEYVerschlüsselung gespeicherter CredentialsPflicht — sicher generieren und sichern
DB_TYPEDatenbank-Backend (sqlite oder postgresdb)PostgreSQL für Production
WEBHOOK_URLÖffentliche URL für eingehende WebhooksMit HTTPS konfigurieren
N8N_BASIC_AUTH_ACTIVEBasic-Auth für das Web-InterfaceImmer aktivieren
EXECUTIONS_DATA_PRUNEAutomatische Bereinigung alter Ausführungentrue — verhindert Datenbank-Wachstum
EXECUTIONS_DATA_MAX_AGEMaximales Alter von Execution-Daten (Stunden)168 (7 Tage)

Datenbank-Backend

SQLite (Default)

  • Für Entwicklung und kleine Teams geeignet
  • Keine zusätzliche Infrastruktur nötig
  • Nicht empfohlen für Production mit mehreren Nutzern oder hohem Volumen

PostgreSQL (Empfohlen)

  • Skaliert mit Ihrem Unternehmen
  • Unterstützt gleichzeitige Zugriffe
  • Ermöglicht Backups und Replikation
  • Notwendig für Queue-Mode (mehrere Worker)

Production-Deployment mit SSL

Nutzen Sie einen Reverse-Proxy wie Nginx oder Traefik für SSL-Terminierung:

server {
    listen 443 ssl;
    server_name n8n.ihre-domain.de;

    ssl_certificate /etc/letsencrypt/live/n8n.ihre-domain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/n8n.ihre-domain.de/privkey.pem;

    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Praxis-Tipp: Generieren Sie den N8N_ENCRYPTION_KEY mit openssl rand -hex 32 und speichern Sie ihn sicher. Ohne diesen Key können gespeicherte Credentials nicht mehr entschlüsselt werden — ein Verlust bedeutet, alle Credentials neu eingeben zu müssen.