Zum Inhalt springen

[ Anolilab — Artikel / KI ]

n8n selbst hosten: KI-Automatisierung auf dem eigenen Server

So betreibst du n8n mit Docker, Postgres und HTTPS auf einem Server in Deutschland: Schritt für Schritt, mit Serverwahl, Lizenz und den typischen Fehlern.

Artikel von
Daniel Bannert · Gründer · Anolilab

Kurz gesagt

Für die meisten Unternehmen reicht ein Server mit 2 vCPU und 4 GB RAM in einem deutschen Rechenzentrum. n8n läuft dort mit Docker Compose, Postgres und einem Reverse Proxy für HTTPS. Die Einrichtung dauert etwa eine Stunde, die laufenden Kosten liegen im einstelligen bis niedrigen zweistelligen Eurobereich pro Monat (Stand: November 2026).

n8n verbindet deine Werkzeuge per Workflow: neue Anfrage im Kontaktformular, KI fasst sie zusammen, Eintrag im CRM, Nachricht an das Team. Mit den KI-Bausteinen lassen sich auch Agenten bauen, die Dokumente lesen, E-Mails vorsortieren oder Tickets beantworten.

Warum selbst hosten?

  • Daten bleiben in Deutschland: Kundendaten laufen über deinen Server statt über einen US-Dienst. Das vereinfacht die Datenschutzprüfung deutlich.
  • Keine Kosten pro Ausführung: Du zahlst den Server, nicht jeden Workflow-Lauf.
  • Volle Kontrolle: Eigene Erweiterungen, eigene Backups, eigene Updates.

Zur Lizenz: n8n steht unter der „Sustainable Use License“. Für die eigene, interne Nutzung im Unternehmen ist das Selbsthosten kostenlos. Willst du n8n anderen gegen Geld bereitstellen, etwa als gehosteten Dienst, brauchst du eine Vereinbarung mit n8n. Einige Funktionen (Dateien mit .ee im Namen) fallen nicht unter diese Lizenz und brauchen eine Enterprise-Lizenz. Lies die aktuellen Bedingungen in der Lizenzdatei, bevor du n8n Kunden bereitstellst.

Welcher Server?

Für n8n selbst genügt wenig. Mehr Leistung brauchst du erst, wenn du lokale KI-Modelle (etwa über Ollama) auf demselben Server betreiben willst; dann sind 16 GB RAM oder mehr sinnvoll. Drei passende Anbieter stehen am Ende des Artikels; welcher Anbieter wofür taugt, steht im VPS-Anbieter-Vergleich.

Einrichtung mit Docker Compose

Voraussetzungen: ein frischer Server mit Ubuntu 24.04, Docker (Installation) und eine Domain, deren A-Eintrag auf den Server zeigt, zum Beispiel n8n.deine-firma.de. Wie du den Server vorher absicherst (SSH-Login, Firewall und warum Docker die Firewall umgeht), zeigt Docker-App mit HTTPS auf einem eigenen Server.

compose.yaml:

compose.yaml
services:
    postgres:
        image: postgres:16
        restart: unless-stopped
        environment:
            POSTGRES_USER: n8n
            POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
            POSTGRES_DB: n8n
        volumes:
            - postgres_data:/var/lib/postgresql/data

    n8n:
        image: docker.n8n.io/n8nio/n8n
        restart: unless-stopped
        depends_on: [postgres]
        environment:
            DB_TYPE: postgresdb
            DB_POSTGRESDB_HOST: postgres
            DB_POSTGRESDB_USER: n8n
            DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
            DB_POSTGRESDB_DATABASE: n8n
            N8N_HOST: n8n.deine-firma.de
            N8N_PROTOCOL: https
            WEBHOOK_URL: https://n8n.deine-firma.de/
            N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
            GENERIC_TIMEZONE: Europe/Berlin
        volumes:
            - n8n_data:/home/node/.n8n

    caddy:
        image: caddy:2
        restart: unless-stopped
        ports: ["80:80", "443:443"]
        volumes:
            - ./conf:/etc/caddy
            - caddy_data:/data

volumes:
    postgres_data:
    n8n_data:
    caddy_data:

conf/Caddyfile (Caddy holt und erneuert das HTTPS-Zertifikat automatisch; Caddy bekommt den ganzen Ordner, weil das Caddy-Image davon abrät, die Datei einzeln einzubinden):

conf/Caddyfile
n8n.deine-firma.de {
    reverse_proxy n8n:5678
}

.env mit zwei langen Zufallswerten anlegen und starten:

Terminal
printf "POSTGRES_PASSWORD=%s\nN8N_ENCRYPTION_KEY=%s\n" "$(openssl rand -hex 24)" "$(openssl rand -hex 32)" > .env
docker compose up -d

Nach wenigen Sekunden ist n8n unter deiner Domain erreichbar und fragt nach dem ersten Benutzerkonto. Lege es sofort an.

Die typischen Fehler

  • Verschlüsselungsschlüssel verloren: Mit N8N_ENCRYPTION_KEY sind alle gespeicherten Zugangsdaten verschlüsselt. Ohne ihn sind sie nach einem Umzug wertlos. Sichere die .env getrennt vom Server.
  • Webhooks zeigen auf localhost: Ohne WEBHOOK_URL erzeugt n8n falsche Webhook-Adressen, externe Dienste erreichen deine Workflows dann nicht.
  • Keine Backups: Sichere die Postgres-Datenbank täglich, zum Beispiel mit pg_dump, und kopiere die Sicherung auf einen anderen Speicher.
  • Updates vergessen: docker compose pull && docker compose up -d regelmäßig ausführen, vorher sichern.
  • Personenbezogene Daten an KI-Dienste: Wenn ein Workflow Kundendaten an ein Sprachmodell schickt, gilt dafür dasselbe wie für jeden anderen Auftragsverarbeiter. Prüfe Vertrag und Speicherort.

Welcher Anbieter?

Drei Anbieter, die sich für n8n eignen:

[ Anolilab — Blog ]

Mehr Praxis zu KI, Webentwicklung und Infrastruktur.

Weiterlesen.

[ Anolilab — Kontakt ]

Erzähl mir, was du baust. Ich sage dir, wie ich helfen kann.

Lass uns reden.

Schnelle Antwort.
Wenn du bereit bist, gemeinsam etwas zu bauen, freue ich mich, von dir zu hören.
Klare nächste Schritte.
Nach der Beratung erstelle ich dir einen detaillierten Plan.
Alternativ kannst du mir direkt eine E-Mail senden an hello@anolilab.com