Skip to content
BotServBotServ
n8nSelf-HostingProductionReverse ProxyHTTPS

n8n Self-Hosting

n8n self-hosten. Production-Setup, Reverse Proxy, HTTPS, Datenbank, Backup, Monitoring und Praxisbeispiele.

S

schutzgeist

5 min read
n8n Self-Hosting

n8n Self-Hosting

Was dieser Artikel über n8n Self-Hosting behandelt

  • Wie Du n8n für Produktion einrichtest.
  • Wie Du HTTPS, Reverse Proxy und Datenbank konfigurierst.
  • Wie Du Backup, Monitoring und Updates einrichtest.
  • Wie Du n8n für mehrere Benutzer und Teams vorbereitest.
  • Best Practices für Sicherheit, Verfügbarkeit und Wartung.

Einleitung: n8n Self-Hosting verständlich erklärt

n8n zu installieren ist einfach. n8n für Produktion einzurichten ist mehr: HTTPS, Reverse Proxy, Datenbank, Backup, Monitoring, Benutzerverwaltung. Dieser Artikel zeigt, wie Du n8n nicht nur zum Laufen bringst, sondern zuverlässig betreibst.

Dieser Artikel richtet sich an Anwender, die n8n in Produktion betreiben wollen. Du solltest n8n bereits installiert haben. Siehe n8n installieren für die Basis-Installation.

Warum brauche ich n8n Self-Hosting?

Stell Dir vor, Du hast n8n lokal installiert und ein paar Workflows gebaut. Jetzt willst Du es für Dein Team nutzen, mit HTTPS, mehreren Benutzern, Backups und Monitoring. Die lokale Installation reicht nicht: Du brauchst ein Production-Setup.

n8n Self-Hosting kurz erklärt

n8n Self-Hosting bedeutet, n8n auf Deinem Server zu betreiben: mit HTTPS, Reverse Proxy, Datenbank, Backup und Monitoring. Nicht nur zum Ausprobieren, sondern für den täglichen Betrieb.

Der Kerngedanke lautet: n8n nicht nur installieren, sondern zuverlässig betreiben.

Für wen ist dieser Artikel gedacht?

  • Systemadministratoren, die n8n produktiv betreiben.
  • Teams, die n8n für mehrere Benutzer einrichten.
  • Self-Hoster, die n8n professionell betreiben.
  • Entscheiderinnen und Entscheider, die n8n für ihr Unternehmen evaluieren.

Vorkenntnisse in Docker, n8n und Linux sind erforderlich.

Wichtige Begriffe

  • n8n - Workflow-Automatisierung. Wann nützlich: das Tool selbst.
  • Reverse Proxy - Vermittler vor n8n. Wann nützlich: für HTTPS und Routing.
  • Docker - Container-Plattform. Wann nützlich: für Betrieb.
  • Docker Compose - Multi-Container. Wann nützlich: für komplexe Setups.
  • PostgreSQL - Datenbank. Wann nützlich: statt SQLite für Produktion.
  • Backup - Datensicherung. Wann nützlich: für Workflows und Credentials.
  • Monitoring - Überwachung. Wann nützlich: für Verfügbarkeit.

Production-Setup

Docker Compose für Produktion

version: "3.8"

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"  # Nur localhost, Reverse Proxy davor
    environment:
      - N8N_HOST=0.0.0.0
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.deine-domain.de/
      - GENERIC_TIMEZONE=Europe/Berlin
      - TZ=Europe/Berlin
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
      - EXECUTIONS_DATA_PRUNE=true
      - EXECUTIONS_DATA_MAX_AGE=30
    volumes:
      - n8n_data:/home/node/.n8n
    networks:
      - n8n-network
    depends_on:
      - postgres

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

volumes:
  n8n_data:
  postgres_data:

networks:
  n8n-network:
    driver: bridge

Reverse Proxy mit Nginx

# /etc/nginx/sites-available/n8n
server {
    listen 443 ssl http2;
    server_name n8n.deine-domain.de;

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

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

TLS-Zertifikat mit Let’s Encrypt

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d n8n.deine-domain.de

Siehe TLS-Zertifikate für Details.

Datenbank: SQLite vs. PostgreSQL

SQLitePostgreSQL
Einfach, keine Extra-InstallationRobuster, für Produktion
Für kleine SetupsFür große Setups
Single-UserMulti-User
Weniger performantPerformanter
Backup einfach (Datei)Backup komplexer (pg_dump)

Für Produktion: PostgreSQL empfohlen.

Backup

n8n-Daten sichern

# Volume sichern
docker run --rm \
  -v n8n_data:/data \
  -v $(pwd)/backup:/backup \
  alpine tar czf /backup/n8n-backup.tar.gz -C /data .

# PostgreSQL sichern
docker exec n8n-postgres pg_dump -U n8n n8n > backup/n8n-db.sql

Automatisches Backup

# Cron-Job für tägliches Backup
0 3 * * * docker run --rm -v n8n_data:/data -v /backup:/backup alpine tar czf /backup/n8n-$(date +\%Y\%m\%d).tar.gz -C /data .

Siehe Backup für Details.

Monitoring

Health-Check

# n8n Health-Endpoint
curl http://localhost:5678/healthz

Monitoring mit Prometheus

# docker-compose.yml erweitern
services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

Siehe Monitoring für Details.

Benutzerverwaltung

Mehrere Benutzer

n8n unterstützt mehrere Benutzer mit verschiedenen Rollen:

environment:
  - N8N_USER_MANAGEMENT_DISABLED=false
  - N8N_USER_MANAGEMENT_SMTP_HOST=smtp.example.com
  - N8N_USER_MANAGEMENT_SMTP_PORT=587
  - N8N_USER_MANAGEMENT_SMTP_USER=n8n@example.com
  - N8N_USER_MANAGEMENT_SMTP_PASS=${SMTP_PASSWORD}
  - N8N_USER_MANAGEMENT_SMTP_SENDER=n8n@example.com

Sicherheitshinweise

  • HTTPS erzwingen: N8N_PROTOCOL=https, WEBHOOK_URL=https.
  • Passwort-Policy: Starke Passwörter für alle Benutzer.
  • Zwei-Faktor-Authentifizierung: Aktivieren, wenn verfügbar.
  • Firewall: Nur Port 443 (HTTPS) nach außen offen.
  • Verschlüsselung: N8N_ENCRYPTION_KEY für Credentials.
  • Regelmäßige Updates: n8n aktuell halten. Siehe Docker Updates.
  • Audit Logging: Protokolliere Zugriffe. Siehe Audit Logging.

Praxisbeispiel: n8n für Team

# docker-compose.yml für Team-Setup
services:
  n8n:
    image: n8nio/n8n:latest
    environment:
      - N8N_HOST=0.0.0.0
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.company.de/
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - N8N_USER_MANAGEMENT_DISABLED=false
      - N8N_USER_MANAGEMENT_SMTP_HOST=smtp.company.de
      - EXECUTIONS_DATA_PRUNE=true
      - EXECUTIONS_DATA_MAX_AGE=90
    # ... Rest wie oben

Typische Stolpersteine

  • SQLite für Produktion: SQLite ist für kleine Setups, nicht für Produktion. Nutze PostgreSQL.
  • Kein HTTPS: n8n ohne HTTPS ist unsicher. Aktiviere TLS.
  • Kein Backup: Ohne Backup sind Workflows bei Ausfall weg.
  • Kein Monitoring: Ohne Monitoring merkst Du Ausfälle nicht.
  • Credentials im Klartext: N8N_ENCRYPTION_KEY muss gesetzt sein.
  • Alte Ausführungen: EXECUTIONS_DATA_PRUNE aktivieren, sonst wird die Datenbank voll.

Key Takeaways:

  • n8n Self-Hosting: HTTPS, Reverse Proxy, PostgreSQL, Backup, Monitoring.
  • SQLite für kleine Setups, PostgreSQL für Produktion.
  • Reverse Proxy (Nginx) für HTTPS und Routing.
  • Backup: Volume + Datenbank regelmäßig sichern.
  • Sicherheit: HTTPS, Passwort-Policy, Firewall, Verschlüsselung.

FAQ

Was bedeutet n8n Self-Hosting?

n8n Self-Hosting bedeutet, n8n auf Deinem eigenen Server zu betreiben. Du kontrollierst Daten, Sicherheit und Verfügbarkeit. Nicht nur installieren, sondern zuverlässig betreiben.

SQLite oder PostgreSQL?

SQLite für kleine Setups (1-5 Benutzer), PostgreSQL für Produktion. PostgreSQL ist robuster, performanter und besser für Multi-User.

Brauche ich einen Reverse Proxy?

Ja, für Produktion. Der Reverse Proxy (Nginx, Traefik) kümmert sich um HTTPS, TLS-Zertifikate und Routing. n8n selbst sollte nicht direkt im Internet stehen.

Wie aktiviere ich HTTPS?

Mit einem Reverse Proxy und Let’s Encrypt. Certbot erstellt kostenlose TLS-Zertifikate. Setze N8N_PROTOCOL=https und WEBHOOK_URL=https://…

Wie sichere ich n8n?

Sichere das Volume n8n_data (Workflows, Credentials) und die Datenbank (PostgreSQL mit pg_dump). Automatisiere mit Cron-Job.

Wie überwache ich n8n?

n8n hat einen Health-Endpoint (/healthz). Nutze Prometheus, Grafana oder einfache Health-Checks. Überwache auch CPU, RAM und Disk.

Kann ich mehrere Benutzer haben?

Ja. Aktiviere N8N_USER_MANAGEMENT_DISABLED=false und konfiguriere SMTP für Einladungs-E-Mails. Benutzer können eingeladen werden und haben verschiedene Rollen.

Wie sichere ich n8n ab?

HTTPS erzwingen, starke Passwörter, Firewall (nur 443 offen), N8N_ENCRYPTION_KEY setzen, regelmäßige Updates, Audit Logging.

Wie aktualisiere ich n8n?

docker compose pull && docker compose up -d. Vorher Backup machen. n8n aktualisiert die Datenbank automatisch.

Was kostet n8n Self-Hosting?

n8n ist Open Source, kostenlos. Du zahlst nur Server-Kosten (5-20 Euro/Monat) und optional eine Domain (5-10 Euro/Jahr).

Quellen und weiterführende Literatur

Zurück zum KI Blog
Share:

Ähnliche Beiträge