Kurzantwort: Ja, n8n lässt sich selbst hosten: Die Community Edition kostet 0,00 € Lizenzgebühr, ab n8n 3.0 läuft sie aber nur noch mit Docker, denn npm und npx n8n fallen weg. Drei Wege führen hin: lokal mit Docker Desktop zum Testen, ein gemieteter Server (VPS) mit Vorlage bei Hostinger oder von Hand bei Hetzner, oder ein Managed-Dienst wie Sliplane, Elestio oder Railway.

Diese Seite richtet sich an Unternehmen und Selbstständige; alle Preise sind Anbieterangaben mit Stand-Datum. Der Preisstand dieser Seite ist der 07.11.2026.

Grundlage sind die n8n-Dokumentation und Anbieterseiten, abgerufen am 09.11.2026 (Quellenliste). Wir haben nichts davon getestet oder gemessen. Wie wir vergleichen, steht unter So bewerten wir. Hostinger und n8n Cloud sind als Anzeige gekennzeichnet, alle anderen Anbieter verlinken wir ohne Provision (Werbung und Finanzierung).

Welcher Weg passt zu dir?

Die Wege unterscheiden sich darin, wie viel Betrieb bei dir bleibt. n8n Cloud steht als Vergleichsspalte daneben, falls kein Weg zu deinem Team passt. Die Abwägung Cloud gegen Server steht in n8n Cloud vs. Self-Hosted, den Anbietervergleich liefert n8n Hosting.

Die drei Wege zum eigenen n8n und n8n Cloud im Vergleich
Lokal mit Docker Desktop VPS mit Vorlage (Hostinger KVM 2) VPS von Hand (Hetzner CPX22) Managed (Sliplane, Elestio, Railway) n8n Cloud (zum Vergleich)
Aufwand (eigene Einschätzung) Gering: ein Skript oder eine Compose-Datei.Mittel: Vorlage bringt Docker und n8n mit, Domain, Updates und Backups bleiben bei dir.Hoch: leerer Server, Docker, DNS, Reverse Proxy und n8n richtest du selbst ein.Gering bis mittel: Preset oder Vorlage, Betrieb der Plattform beim Anbieter.Minimal: Konto anlegen.
Kosten Lizenz 0,00 €. Rechner und Strom nicht eingerechnet.7,79 € im Monat bei 24 Monaten Vorauszahlung (186,96 €), danach 14,99 € im Monat; die Verlängerung bucht erneut 359,76 € für 24 Monate im Voraus. Netto.19,99 € im Monat mit IPv4, mit Backup 23,89 €. Netto.Sliplane Starter 9,00 € (monatliche Abrechnung, Voreinstellung der Preisseite), Elestio ab 11,00 USD, Railway Hobby 5,00 USD Mindestbetrag einschließlich 5,00 USD Nutzung, zusätzlich nur darüber hinausgehender Verbrauch.Starter 20,00 € im Monat bei Jahreszahlung (240,00 € im Jahr), 24,00 € monatlich.
Verantwortung Du. Der Rechner muss laufen, damit Workflows laufen.Du, für n8n, Server, Updates und Absicherung.Du, für alles vom Betriebssystem bis n8n.Der Anbieter für die Plattform. Wer n8n aktualisiert, klären.n8n betreibt die Instanz, Daten laut Preisseite in Frankfurt.
Für wen Ausprobieren und Workflows von Hand starten.Dauerbetrieb mit Linux-Grundwissen und Vorlage als Abkürzung.Dauerbetrieb mit Linux-Erfahrung, eigene Wahl von Standort und Aufbau.Betrieb abgeben, ohne die Cloud von n8n zu nehmen.Niemand betreut einen Server, Volumen innerhalb eines Tarifs.
Zum Anbieter Docker Desktop ansehen (öffnet in neuem Tab) kein Partnerlink AnzeigeHostinger ansehen (öffnet in neuem Tab) Hetzner ansehen (öffnet in neuem Tab) kein Partnerlink Sliplane ansehen (öffnet in neuem Tab) kein Partnerlink Anzeigen8n Cloud ansehen (öffnet in neuem Tab)
Quelle: n8n-Dokumentation und Anbieterseiten (Q2, Q5, Q24 bis Q33). Preise laut Anbieterseite, Stand 07.11.2026; Anbieter weisen Umsatzsteuer unterschiedlich aus, für Verbraucher kann sie hinzukommen — maßgeblich ist der Endpreis im Checkout.

Hostinger verlangt 24 Monate im Voraus, der Einstiegspreis ist ein Aktionspreis, und danach steigt der Preis auf das 1,92-Fache. Elestio nennt nur einen Startpreis, Railway rechnet nach Verbrauch ab. Hostinger und Hetzner nennen Netto-Preise, die n8n-Preisseite macht keine MwSt-Angabe. Für Verbraucher kann Umsatzsteuer hinzukommen, maßgeblich ist der Endpreis im Checkout.

Voraussetzungen: Wissen, Server, Domain

n8n beschreibt die Hürde selbst deutlich: Self-Hosting verlangt Kenntnisse in der Einrichtung von Servern und Containern, in Ressourcenverwaltung, Absicherung und n8n-Konfiguration. Fehler können laut n8n zu Datenverlust, Sicherheitslücken und Ausfällen führen; wer das nicht kann, soll die Cloud nehmen (Q5). Konkret brauchst du:

  • Docker Engine und Docker Compose v2, prüfbar mit docker compose version (Q3). Unter Windows empfiehlt die Anleitung WSL.
  • Für den Dauerbetrieb einen Linux-Server mit SSH-Zugang, zum Ausprobieren einen Rechner mit Docker Desktop (Q6).
  • Eine Subdomain mit A-Record auf die Server-IP und offene Ports 80 und 443 (Q4, Q5).
  • Zeit für Updates, Backups und Überwachung.

Was der Server leisten muss

n8n nennt keine allgemeine Mindestausstattung, nur Angaben zu bestimmten Aufbauten. Die Tabelle zeigt sie mit Herkunft.

AngabeWertGilt fürQuelle
n8n-Dokumentation allgemeinkeine Mindestausstattung genanntn8n selbstQ1 bis Q5
Compose-Leitfadenmindestens 4 GB RAM und 2 vCPUStack mit Sandbox für den n8n Assistant (Docker-in-Docker)Q3
Hetzner-AnleitungTyp CPX11 reicht für die meisten Nutzungsstufen; mit n8n Assistant mindestens 4 GB RAM und 2 vCPUAufbau der Anleitung (Docker, Caddy, SQLite)Q5
Hostinger-TutorialMinimum 1 vCPU, 2 GB RAM, 20 GB SSD; empfohlen 2 oder mehr vCPU und 4 oder mehr GB RAMEmpfehlung eines Hosting-Anbieters, keine n8n-AngabeQ27
n8n-BenchmarkInstanz mit 4 GB RAM (c5a.large), Postgres, Webhook-Workflow mit zwei NodesMessung von n8n, keine MindestangabeQ20

Der Typ CPX11 kommt in unseren Preisdaten vom 07.11.2026 nicht vor, die Hetzner-Tarife heißen dort CPX02, CPX12, CPX22 und so weiter. Vergleiche die Ausstattung, nicht den Namen.

Eigene Einschätzung: Eine feste Untergrenze folgt daraus nicht, meist entscheidet der Arbeitsspeicher. Große Datenmengen, der Code-Node und manuelle Ausführungen füllen ihn laut Doku am stärksten; Abhilfe sind kleinere Datenpakete, Sub-Workflows oder mehr RAM (Q19). Mit 4 GB oder mehr liegen in den Preisdaten Hetzner CPX22 (19,99 € mit IPv4), Hostinger KVM 1 und KVM 2. Hostinger rät zum Upgrade, wenn der RAM dauerhaft über 75 bis 80 Prozent liegt (Q27).

Weg 1: Lokal mit Docker Desktop

Zum Ausprobieren genügt ein Rechner. Docker Desktop gibt es für Mac, Windows und Linux und bringt Engine und Compose mit (Q6, Q34). Dazu bietet n8n ein Setup-Skript (Q2). Der Einzeiler curl -fsSL https://get.n8n.io | sh startet n8n sofort, und die Compose-Datei, die das Skript lädt, veröffentlicht Port 5678 ohne Adresse und nennt ihn selbst den einzigen Port, der aus dem Internet erreichbar sein soll (Q44). Laut Docker-Dokumentation ist ein so veröffentlichter Port nicht nur für den Rechner selbst, sondern für die Außenwelt erreichbar; nur mit vorangestellter Adresse 127.0.0.1 greift ausschließlich der Docker-Host darauf zu (Q45). Das Skript läuft hier deshalb mit --no-start: Die Option legt nur die Dateien an und startet n8n nicht (Q2).

curl -fsSL https://get.n8n.io -o get-n8n.sh
less get-n8n.sh
sh get-n8n.sh --no-start

Ändere danach in der erzeugten Datei die Portzeile auf die lokale Adresse, prüfe sie und starte erst dann (eigene Ableitung aus Q44 und Q45, nicht in der n8n-Dokumentation beschrieben):

sed -i.bak "s|'5678:5678'|'127.0.0.1:5678:5678'|" ./n8n/compose.yml
grep -n 5678 ./n8n/compose.yml
docker compose -f ./n8n/compose.yml up -d

Das Skript prüft Docker und legt den Ordner n8n mit compose.yml und .env an (mit erzeugten Geheimnissen); nach dem Start erreichst du n8n unter http://localhost:5678. Der erste up-Befehl lädt die Images und kann dauern. Die Daten liegen in einer SQLite-Datenbank im Docker-Volume. Laut Doku startet der Stack auch Dienste für den n8n Assistant, der erst mit einem KI-Schlüssel aktiv wird. Eigene Einschätzung: Wer kein Skript aus dem Netz ausführen will, nimmt den Compose-Weg unten.

Mit der Bindung an 127.0.0.1 greift laut Docker-Dokumentation nur der Docker-Host auf den Port zu (Q45); Trigger externer Dienste wie GitHub kommen nicht an. Den Tunnel dafür nennt die Doku nur für Entwicklung und Tests, nicht für Produktion (Q6). Der Weg taugt zum Kennenlernen, nicht für Workflows, die rund um die Uhr laufen.

Weg 2: VPS mit Docker Compose

Für den Dauerbetrieb mietest du einen VPS, also einen virtuellen Server. Bei Hostinger bringt die Vorlage „Ubuntu 24.04 mit n8n“ Docker und n8n vorinstalliert mit (Q25); Details stehen in n8n auf Hostinger. Bei Hetzner startet der Server leer, die n8n-Anleitung nutzt „Docker CE“, Docker Compose und den Reverse Proxy Caddy (Q5); beide Anbieter vergleicht Hetzner gegen Hostinger. Die Schritte folgen dem Beispiel der n8n-Dokumentation für einen Linux-Server mit Traefik als Reverse Proxy (Q4), mit den Änderungen, die unter dem Compose-Beispiel stehen. Wir haben sie auf keinem eigenen Server durchgeführt.

Server bestellen und anmelden

Wähle ein Linux-System oder ein Docker-Image und hinterlege einen SSH-Schlüssel; die Hetzner-Anleitung hält SSH für sicherer als Passwörter (Q5). Prüfe nach der Anmeldung die Installation:

docker --version
docker compose version

Fehlt auf dem Hetzner-Image „Docker CE“ das Compose-Plugin, installiert es apt install docker-compose-plugin (Q5).

DNS-Eintrag setzen

Lege bei deinem DNS-Anbieter einen A-Record für n8n (oder eine andere Subdomain) auf die IP-Adresse des Servers an (Q4).

Ordner und .env anlegen

Erstelle ein Projektverzeichnis und darin die Datei .env mit deinen Werten:

mkdir n8n-compose
cd n8n-compose
mkdir local-files
# .env
DOMAIN_NAME=example.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Europe/Berlin
SSL_EMAIL=user@example.com
N8N_VERSION=2.47.3

N8N_VERSION legt die n8n-Version fest. Trage die aktuelle stable-Nummer ein, wenn du startest (Q39).

Das Verzeichnis local-files tauscht Dateien zwischen n8n und dem Server aus; selbst angelegt hat es laut Doku die richtigen Rechte (Q4).

compose.yaml anlegen

Die Datei startet zwei Container: n8n und Traefik. Traefik verwaltet das Zertifikat und leitet Anfragen weiter (Q4):

services:
  traefik:
    image: "traefik:v3.7.17"
    restart: always
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
      - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
      - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - traefik_data:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro

  n8n:
    image: "n8nio/n8n:${N8N_VERSION}"
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
      - traefik.http.routers.n8n.tls=true
      - traefik.http.routers.n8n.entrypoints=web,websecure
      - traefik.http.routers.n8n.tls.certresolver=mytlschallenge
      - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
      - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
      - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
      - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
      - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
      - traefik.http.middlewares.n8n.headers.STSPreload=true
      - traefik.http.routers.n8n.middlewares=n8n@docker
    environment:
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
      - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - N8N_PROXY_HOPS=1
      - NODE_ENV=production
      - N8N_WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
      - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
      - TZ=${GENERIC_TIMEZONE}
      - N8N_RESTRICT_FILE_ACCESS_TO=/files
    volumes:
      - n8n_data:/home/node/.n8n
      - ./local-files:/files

volumes:
  n8n_data:
  traefik_data:

N8N_WEBHOOK_URL gibt es ab n8n 2.30.0; davor heißt die Variable WEBHOOK_URL (Q4).

Owner-Konto anlegen, dann veröffentlichen

Wer die Einrichtung des Owner-Kontos zuerst abschließt, wird Owner (Q17). Starte deshalb zuerst nur n8n ohne Traefik. Der Dienst ist dann nur über 127.0.0.1:5678 auf dem Server erreichbar, nicht aus dem Internet:

sudo docker compose up -d n8n

Öffne auf deinem eigenen Rechner einen SSH-Tunnel zu diesem Port (Q43) und rufe im Browser http://localhost:5678 auf:

ssh -L 5678:127.0.0.1:5678 benutzer@server-ip

Dort zeigt n8n die Einrichtung des Owner-Kontos. Eigene Einschätzung: Meldet der Browser einen Cookie-Fehler, liegt das am Secure-Attribut des n8n-Cookies (N8N_SECURE_COOKIE, Standard true, Q42); probiere dann einen anderen Browser. Lege das Konto an, beende den Tunnel und starte erst jetzt Traefik:

sudo docker compose up -d

Danach läuft n8n unter https://n8n.example.com, laut Doku nur über HTTPS; bei Problemen prüfe Firewall und DNS (Q4).

Das Beispiel weicht in vier Punkten von der Vorlage der Doku ab (Q4), damit es mit Traefik 3 läuft und Updates ein bewusster Schritt bleiben:

  • Traefik mit festem Tag. Die Vorlage zieht traefik ohne Versionsnummer. Das Beispiel nutzt traefik:v3.7.17, den neuesten Patch-Tag der Reihe 3.7 auf Docker Hub am 10.11.2026 (Q38).
  • Entfernte Labels. Traefik 3 hat die Optionen sslRedirect und sslHost der Headers-Middleware entfernt (Q35), die Vorlage setzt sie noch. Die Weiterleitung von HTTP auf HTTPS übernimmt die EntryPoint-Weiterleitung in den command-Zeilen (Q37). Die Sicherheits-Header (STS…, contentTypeNosniff, browserXSSFilter) listet die Headers-Middleware weiter (Q36).
  • n8n mit festem Tag. Das Image trägt die Nummer aus N8N_VERSION, wie im Compose-Leitfaden (Q3). 2.47.3 war am 10.11.2026 der Docker-Hub-Tag stable und das stable-Release auf GitHub; die Versionsangabe auf der Doku-Seite nannte am selben Tag noch 2.46.7 (Q39, Q4).
  • N8N_PROXY_HOPS=1. Hinter einem Reverse Proxy verlangt n8n diese Variable (Q13). Traefik setzt X-Forwarded-For, X-Forwarded-Host und X-Forwarded-Proto standardmäßig (Q36).

Das Beispiel nutzt SQLite, das laut Compose-Leitfaden zum Ausprobieren reicht (Q3). Für mehr als wenige Nutzer oder Workflows rund um die Uhr rät n8n zu Postgres; das setzt dieses Beispiel nicht um. Den Aufbau mit Postgres zeigt n8n auf Hetzner installieren (Compose mit Postgres und Caddy statt Traefik). Nach außen sind nur die Ports 80 und 443 von Traefik offen.

Weg 3: Managed Hosting

Bei einem Managed-Dienst betreibt der Anbieter die Plattform, n8n läuft als Anwendung darauf. Laut Anbieterseiten:

  • Sliplane: 1-Click-Preset „Deploy n8n“, Region Deutschland wählbar, tägliche Volume-Backups, automatische Server-Updates und Wartung. Starter kostet 9,00 € (1 vCPU, 1 GB). Abgerechnet wird stündlich, monatlich (20 Prozent Rabatt) oder jährlich (33 Prozent Rabatt); die Preisseite zeigt die Preise in der Voreinstellung für monatliche Abrechnung (Q29, Q30).
  • Elestio: n8n als verwalteter Dienst ab 11,00 USD im Monat, Backups, SSL, Updates und Monitoring laut Seite inklusive, Abrechnung stündlich je Dienst ohne Bindung (Q31).
  • Railway: Abrechnung nach Verbrauch, Hobby ab 5,00 USD im Monat mit gleich hohem Nutzungsguthaben, n8n über eine Community-Vorlage mit Postgres (Q32, Q33).

Den Vergleich mit offenen Punkten enthält n8n Hosting. Kläre vorab, wer n8n-Updates einspielt, was bei Ausfall passiert und welcher Support im Preis steckt.

Datenbank: SQLite oder Postgres?

n8n speichert standardmäßig in SQLite, die Datei liegt unter ~/.n8n/database.sqlite. Postgres schaltest du mit DB_TYPE=postgresdb und den Variablen DB_POSTGRESDB_* ein (Q10). Der Compose-Leitfaden nennt SQLite passend zum Ausprobieren und rät für Betrieb mit mehr als wenigen Nutzern oder Workflows rund um die Uhr zu Postgres (Q3); das Compose-Beispiel dieser Seite nutzt SQLite, den Aufbau mit Postgres zeigt n8n auf Hetzner installieren. Zum Vergleich: n8n Cloud Starter und Pro laufen laut Doku selbst auf SQLite (Q10).

  • Versionen: n8n unterstützt Postgres 17 und 18 (Stand Juli 2026) und zusätzlich 16 für Kompatibilität. Bei Postgres 18 setzt der Leitfaden PGDATA, sonst startet die Datenbank leer (Q3, Q10).
  • Queue Mode: Den Queue Mode mit SQLite nennt die Doku nicht empfohlen, ein verteiltes System mit mehreren Workern über SQLite nennt sie nicht unterstützt (Q11). Für mehrere Worker brauchst du Postgres.
  • Wechsel: Daten wandern nicht automatisch von SQLite nach Postgres. Der Leitfaden beschreibt den Wechsel für eine frische Instanz, nicht als Migration (Q3). Entscheide also früh.

Pflicht-Variablen und Konfiguration

Die Dokumentation nennt keine einzelne Pflicht-Variable; ohne Angaben gelten die Standardwerte (Host localhost, Protokoll http). Für den Betrieb hinter einer Domain setzen die Doku-Beispiele die Werte aus der Tabelle (Q4, Q13 bis Q16).

VariableStandard laut DokuWofür
N8N_HOSTlocalhostHostname, unter dem n8n erreichbar ist
N8N_PROTOCOLhttphttps hinter TLS
N8N_WEBHOOK_URLnicht gesetztBasis-URL für Webhooks hinter einem Reverse Proxy
N8N_PROXY_HOPS0Anzahl der Reverse Proxys; hinter einem Proxy 1
GENERIC_TIMEZONEAmerica/New_YorkZeitzone für Schedule-Nodes; im Beispiel Europe/Berlin
N8N_ENCRYPTION_KEYzufälliger Schlüssel beim ersten Start, gespeichert in ~/.n8neigener Schlüssel für gespeicherte Zugangsdaten
DB_TYPE und DB_POSTGRESDB_*SQLiteZugang zu Postgres

Hinter einem Reverse Proxy baut n8n die Webhook-Adresse sonst aus Protokoll, Host und Port, und die passt nicht zur öffentlichen Adresse. Die Reverse-Proxy-Seite nennt deshalb N8N_WEBHOOK_URL und N8N_PROXY_HOPS=1 als Pflichtschritte (Q13). Das Compose-Beispiel oben setzt beide. Im Queue Mode muss der Verschlüsselungsschlüssel auf allen Workern gesetzt sein (Q14).

HTTPS und Reverse Proxy

n8n speichert Zugangsdaten zu deinen anderen Diensten und nimmt Webhooks aus dem Internet an, also gehört der Zugriff hinter HTTPS. Die Doku empfiehlt einen Reverse Proxy, einen Dienst vor n8n, der Anfragen annimmt, das Zertifikat verwaltet und an n8n weiterreicht; Traefik oder ein Load Balancer erneuert es laut Doku mit. Alternativ übergibst du Zertifikat und Schlüssel über N8N_SSL_CERT und N8N_SSL_KEY und hältst das Zertifikat selbst aktuell (Q12).

Das Beispiel oben nutzt Traefik mit Let’s Encrypt. Die Hetzner-Anleitung setzt auf Caddy; der Kern ist ein Block in der Caddyfile (Q5):

n8n.<domain>.<suffix> {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Der letzte Proxy auf dem Weg muss die Header X-Forwarded-For, X-Forwarded-Host und X-Forwarded-Proto setzen (Q13); Traefik setzt sie standardmäßig (Q36). Eigene Einschätzung: Öffne neben SSH nur die Ports 80 und 443 und melde dich per SSH-Schlüssel an.

Updates

n8n rät zu häufigen Updates, mindestens einmal im Monat, und zum Blick in die Release Notes auf Breaking Changes. Eine Test-Instanz über Environments hilft laut Doku (Q18), gehört aber nicht zur Community Edition (Q21). Eigene Einschätzung: Auch ohne Environments lässt sich eine zweite, getrennte n8n-Installation mit eigenen Volumes aufsetzen, die du mit der neuen Version startest und mit exportierten Workflows ausprobierst, ohne Zugangsdaten zu Produktivsystemen, damit der Test nichts Echtes auslöst. Das Backup vor jedem Update, das n8n empfiehlt (Q17), bleibt zusätzlich nötig.

Ein Update ist eine bewusste Änderung der festen Tags: Trage zuerst die neue Nummer bei N8N_VERSION in der .env ein, nach einem Blick in die Release Notes. Ohne diese Änderung holt docker compose pull nur das bereits festgelegte Image. Den Traefik-Tag änderst du ebenso bewusst, nach den Migrationshinweisen der Traefik-Doku (Q35). Dann nennt die Doku für Compose diese Befehle (Q6):

docker compose pull
docker compose down
docker compose up -d

Beim einzeiligen Setup hebt curl -fsSL https://get.n8n.io | sh -s -- --upgrade die N8N_VERSION in der .env an (Q2).

Beim Sprung auf 3.0 listet der Migration Report („Settings > Migration Report“) die betroffenen Workflows und Einstellungen (Q8). Zu den Änderungen laut Breaking-Changes-Seite gehören:

  • Docker ist Pflicht, npm und npx n8n entfallen; veraltete Nodes wie Function und Cron sind entfernt.
  • Nicht verifizierte Community-Nodes laden standardmäßig nicht mehr (N8N_UNVERIFIED_PACKAGES_ENABLED).
  • Das Zeitlimit für Code-Tasks sinkt standardmäßig von fünf auf eine Minute (N8N_RUNNERS_TASK_TIMEOUT).
  • Die Schlüsselrotation ist standardmäßig an; die Seite rät zum Datenbank-Backup vorab.

Backups

Eine vollständige Sicherung besteht laut Doku aus dem Ordner .n8n und, bei Postgres, der externen Datenbank (Q17). Der Ordner (standardmäßig ~/.n8n, im Docker-Betrieb das Volume n8n_data) enthält die Datei config mit dem Schlüssel für die Zugangsdaten und bei SQLite die Datenbank selbst. Er gehört auch bei Postgres dazu, weil er den Schlüssel hält. Externer Speicher und Verzeichnisse mit eigenen Nodes kommen hinzu.

Mit SQLite stoppst du n8n vor dem Kopieren oder sicherst die Datei konsistent; ob ein Backup oder Snapshot deines Hosters das erfüllt, beschreibt die Doku nicht. Ohne den Schlüssel, aus der config oder als N8N_ENCRYPTION_KEY, lassen sich wiederhergestellte Zugangsdaten nicht entschlüsseln.

Zusätzlich exportiert die Kommandozeile Workflows und Zugangsdaten als JSON-Dateien, jeweils in ein eigenes Verzeichnis (Q17). Auf dem Docker-Host läuft sie im n8n-Container, die Doku nennt dafür docker exec -u node (Q41). Mit Compose, im Projektverzeichnis n8n-compose:

sudo docker compose exec -u node n8n n8n export:workflow --backup --output=/files/backups/workflows/
sudo docker compose exec -u node n8n n8n export:credentials --backup --output=/files/backups/credentials/

/files ist das Verzeichnis local-files aus dem Compose-Beispiel. Die Dateien liegen deshalb unter local-files/backups/ auf dem Server und überstehen ein Neuanlegen des Containers; ein Verzeichnis im Container wäre nicht persistent (Q17). Der Export läuft als Benutzer node und braucht Schreibrecht auf local-files. Scheitert er an den Rechten, setze den Besitzer des Ordners auf die UID von node; sudo docker compose exec n8n id node zeigt sie. Kopiere local-files/backups/ außerdem vom Server weg, etwa per scp auf deinen Rechner: Eine Sicherung nur auf demselben Server geht mit ihm verloren. Ohne --decrypted bleiben die Zugangsdaten verschlüsselt und lassen sich nur mit dem Schlüssel wiederherstellen (Q17).

Der Export enthält weder Nutzer, Ausführungsverlauf, Variablen noch Instanzeinstellungen samt Schlüssel; er reicht für den Umzug von Workflows, nicht für eine ganze Instanz. Typische Stolperstelle: Das Backup läuft, die Wiederherstellung wurde nie geübt.

Lizenz: Wann ist Self-Hosting erlaubt?

Die Community Edition steht unter der Sustainable Use License 1.0. Du darfst sie für eigene interne Geschäftszwecke oder nicht-kommerziell und privat nutzen und ändern, Weitergabe ist nur kostenlos und nicht-kommerziell erlaubt (Q23). Dateien mit „.ee.“ im Namen brauchen eine Enterprise-Lizenz; Projects, SSO und Git-Versionskontrolle fehlen der Community Edition (Q21).

Zum Agenturfall sagt die License FAQ (Q22): Erlaubt ist, Automationen für Kunden auf der eigenen Instanz zu bauen und Beratung, Einrichtung und Wartung zu berechnen, solange die Kunden Workflows weder erstellen noch bearbeiten können; eine Obergrenze für die Kundenzahl nennt sie nicht. Auf dem Server eines Kunden darfst du n8n einrichten und pflegen, wenn du nicht auch das Hosting anbietest. Nicht erlaubt ist ein Dienst, in dem Kunden selbst Workflows bauen, oder n8n ohne dessen Branding als eigenes Produkt. Im Zweifel nennt die FAQ die Adresse license@n8n.io. Das ist eine Einordnung und keine Rechtsberatung.

Kosten über 12 Monate

Die Rechnung nutzt die Standardwerte des Kostenrechners: 1 Stunde Wartung im Monat zu 60,00 €, ein Planwert und keine Messung. Managed-Dienste fehlen, weil ihre Preise Größe oder Verbrauch offenlassen.

Kosten für 12 Monate: Server oder Cloud
n8n Cloud Starter Hostinger KVM 2 Hetzner CPX22
Preis pro Monat 20,00 € bei Jahreszahlung, 24,00 € monatlich7,79 € bei 24 Monaten Vorauszahlung, danach 14,99 €19,49 € + 0,50 € IPv4 = 19,99 €
Backup Umfang in den Vertragsunterlagen prüfenwöchentlich, laut Hostinger kostenlosoptional + 3,90 € im Monat
Fällig in 12 Monaten ohne Wartung 240,00 € (Jahreszahlung), 288,00 € bei monatlicher Zahlung186,96 € (Vorauszahlung für 24 Monate)286,68 € mit Backup
Wartung in 12 Monaten (1 Std. × 60,00 € im Monat) 0,00 € (n8n betreibt)720,00 €720,00 €
12 Monate mit Wartung 240,00 €906,96 €1.006,68 €
Quelle: Preislisten der Anbieter, Wartung nach Annahme des Kostenrechners (1 Std. × 60,00 € im Monat). Preise laut Anbieterseite, Stand 07.11.2026; Anbieter weisen Umsatzsteuer unterschiedlich aus, für Verbraucher kann sie hinzukommen — maßgeblich ist der Endpreis im Checkout.

Mit diesem Planwert gewinnt Starter, solange 2.500 Executions, also Workflow-Läufe, im Monat reichen. Wie viel Wartung der Hostinger-Server verträgt, bevor Starter günstiger wird, hängt davon ab, wie du die Vorauszahlung rechnest. Im ersten Jahr sind 186,96 € Vorauszahlung gegen 240,00 € Jahrespreis fällig; es bleiben 53,04 €, auf zwölf Monate verteilt rund 4,42 Minuten Wartung im Monat bei 60,00 € je Stunde. Verteilst du die Zahlung stattdessen auf die 24 Monate Laufzeit (7,79 € im Monat), liegt die Grenze bei rund 12,21 Minuten, nach der Verlängerung (14,99 € im Monat) bei rund 5,01 Minuten. Hetzner CPX22 mit Backup (23,89 €) liegt schon ohne Wartung über Starter. Ein Server lohnt sich, wenn Starter nicht reicht: bei mehr als 2.500 Läufen im Monat, längeren Läufen als 5 Minuten oder mehr als 5 parallelen Läufen.

Mit eigenen Werten rechnen diese Links nach, jeweils mit 1.000 Läufen im Monat: Hostinger im Einstieg, Hostinger nach Verlängerung und Hetzner CPX22. Der Rechner setzt Hostinger mit dem Monatspreis statt der Vorauszahlung und Hetzner ohne Backup an. Alle Cloud-Tarife stehen unter n8n Kosten.

Für wen passt was?

Lokal mit Docker Desktop

Passt zu dir, wenn …

  • du n8n kennenlernen und Workflows von Hand starten willst,
  • kein Trigger von außen nötig ist.

Eher nicht, wenn …

  • Workflows rund um die Uhr laufen oder Webhooks empfangen sollen.

VPS mit Docker Compose

Passt zu dir, wenn …

  • jemand Linux und Docker beherrscht und Wartungszeit eingeplant ist,
  • du viele oder lange Läufe hast: Für die Community Edition nennt die Doku kein Ausführungslimit,
  • Standort, Version und Netzwerk in deiner Hand liegen sollen.

Eher nicht, wenn …

  • bei Ausfall oder Update niemand zuständig ist,
  • du Projects, SSO oder Git ohne Business-Lizenz brauchst,
  • Kunden selbst Workflows bauen sollen (Lizenz).

Managed Hosting

Passt zu dir, wenn …

  • jemand die Plattform betreiben soll, du n8n aber selbst steuerst,
  • du ohne lange Bindung abrechnen willst.

Eher nicht, wenn …

  • du einen festen Monatspreis brauchst (Railway rechnet nach Verbrauch),
  • dir klare Zusagen zu Updates, Backups und Support fehlen.

n8n Cloud statt Self-Hosting

Kein Server, keine Updates, Daten laut Preisseite in Frankfurt: Starter kostet 20,00 € im Monat bei Jahreszahlung für 2.500 Executions, der Test dauert 14 Tage ohne Kreditkarte.

Fazit: Empfehlung je Anwendungsfall

Hetzner, Docker, Sliplane, Elestio und Railway verlinken wir ohne Provision: Hetzner Cloud (kein Partnerlink). Für Hostinger und n8n Cloud können wir eine Provision erhalten, wenn du über unsere Links abschließt; für dich ändert sich der Preis nicht.

Häufige Fragen

Kann man n8n selbst hosten?

Ja, mit der Community Edition. Sie kostet 0,00 € Lizenzgebühr und darf für eigene interne Geschäftszwecke sowie nicht-kommerziell und privat genutzt werden. Der Server kostet extra, dazu kommen Zeit für Updates, Backups und Absicherung. n8n rät Anwendern ohne Server-Erfahrung zur Cloud.

Welche Server-Anforderungen hat n8n?

Die n8n-Dokumentation nennt keine allgemeine Mindestausstattung. Der Compose-Leitfaden mit Sandbox-Stack für den n8n Assistant verlangt mindestens 4 GB RAM und 2 vCPU, die Hetzner-Anleitung nennt für die meisten Nutzungsstufen den Typ CPX11. Hostinger nennt als Hosting-Anbieter 1 vCPU, 2 GB RAM und 20 GB SSD als Minimum und empfiehlt 2 oder mehr vCPU und 4 oder mehr GB RAM. Was dein Fall braucht, hängt von Workflows und Datenmengen ab (Abruf 09.11.2026).

Wie kann ich n8n selber hosten? Die Anleitung in Kurzform

Docker und Compose installieren, eine Subdomain per A-Record auf den Server zeigen lassen, .env und compose.yaml anlegen, mit docker compose up -d n8n nur n8n starten, das Owner-Konto über einen SSH-Tunnel anlegen und danach mit docker compose up -d Traefik und damit den öffentlichen Zugang starten. Für einen lokalen Test das Setup-Skript von get.n8n.io mit --no-start laden, in der erzeugten compose.yml die Portzeile auf 127.0.0.1:5678:5678 ändern und erst dann mit docker compose -f ./n8n/compose.yml up -d starten (Docker auf Linux, macOS oder WSL).

Brauche ich Docker, um n8n selbst zu hosten?

Ab n8n 3.0 ja: Laut Breaking-Changes-Seite verlangt self-hosted n8n dann eine Docker-basierte Bereitstellung, npm und npx n8n werden nicht mehr unterstützt. Eine bestehende npm-Installation läuft vorerst weiter, neue Installationen sollten mit Docker beginnen.

Welche Datenbank braucht n8n?

Standard ist SQLite (~/.n8n/database.sqlite), Postgres ist optional (DB_TYPE=postgresdb). Der Compose-Leitfaden rät für mehr als wenige Nutzer oder Workflows rund um die Uhr zu Postgres. Daten wandern nicht automatisch von SQLite zu Postgres.

Darf ich n8n für Kunden selbst hosten?

Laut License FAQ ja, wenn Kunden Workflows weder erstellen noch bearbeiten können und nur Ergebnisse erhalten. Nicht erlaubt ist ein Dienst, in dem Kunden selbst Workflows bauen. Im Zweifel fragt die FAQ unter license@n8n.io nach. Das ist keine Rechtsberatung.

Quellen

Alle Seiten wurden am 09.11.2026 abgerufen, soweit nicht anders vermerkt. Die Preise stammen aus dem Datensatz mit Stand 07.11.2026; Sliplane, Elestio und Railway sowie Hostinger KVM 2 haben wir am 09.11.2026 erneut abgelesen, die Beträge waren unverändert. Preise und Funktionen können sich ändern, Hostinger zeigt Aktionspreise. Maßgeblich ist, was der Anbieter beim Abschluss anzeigt.

  1. n8n-Dokumentation, Host n8n: Installationsmethoden (englischsprachig): docs.n8n.io/deploy/host-n8n. Abruf 09.11.2026.
  2. n8n-Dokumentation, One-line setup: docs.n8n.io/deploy/host-n8n/install-options/one-line-setup. Abruf 09.11.2026.
  3. n8n-Dokumentation, Install using Docker Compose (Voraussetzungen, Postgres, Versionsnummer in der .env): docs.n8n.io/deploy/host-n8n/install-options/install-using-docker-compose. Abruf 09.11.2026.
  4. n8n-Dokumentation, Use Docker Compose: Linux-Server mit Traefik (stable und beta, Beispieldateien): docs.n8n.io/deploy/host-n8n/install-options/use-a-cloud-provider/use-docker-compose. Abruf 09.11.2026.
  5. n8n-Dokumentation, Deploy to Hetzner (Docker CE, Caddy, Ports, Servertyp): docs.n8n.io/deploy/host-n8n/install-options/use-a-cloud-provider/deploy-to-hetzner. Abruf 09.11.2026.
  6. n8n-Dokumentation, Install with Docker (Docker Desktop, Update-Befehle, Tunnel; die Seite trägt den Vermerk „outdated“, die Update-Seite verweist weiter darauf): docs.n8n.io/deploy/host-n8n/install-options/install-with-docker. Abruf 09.11.2026.
  7. n8n-Dokumentation, Install with npm (ab n8n 3.0 veraltet): docs.n8n.io/deploy/host-n8n/install-options/install-with-npm. Abruf 09.11.2026.
  8. n8n-Dokumentation, v3.0 Breaking changes: docs.n8n.io/changelog/v30-breaking-changes. Abruf 09.11.2026.
  9. n8n-Dokumentation, Release notes: docs.n8n.io/changelog/release-notes. Abruf 09.11.2026.
  10. n8n-Dokumentation, Choose n8n’s database: docs.n8n.io/deploy/host-n8n/configure-n8n/choose-n8ns-database. Abruf 09.11.2026.
  11. n8n-Dokumentation, Enable queue mode: docs.n8n.io/deploy/host-n8n/configure-n8n/scaling/enable-queue-mode. Abruf 09.11.2026.
  12. n8n-Dokumentation, Set up SSL: docs.n8n.io/deploy/host-n8n/configure-n8n/security/set-up-ssl. Abruf 09.11.2026.
  13. n8n-Dokumentation, Configure webhook URLs with reverse proxy: docs.n8n.io/deploy/host-n8n/configure-n8n/basic-configuration/configuration-examples/configure-webhook-urls-with-reverse-proxy. Abruf 09.11.2026.
  14. n8n-Dokumentation, Set a custom encryption key: docs.n8n.io/deploy/host-n8n/configure-n8n/basic-configuration/configuration-examples/set-a-custom-encryption-key. Abruf 09.11.2026.
  15. n8n-Dokumentation, Umgebungsvariablen: Deployment: docs.n8n.io/deploy/host-n8n/configure-n8n/basic-configuration/use-environment-variables/deployment. Abruf 09.11.2026.
  16. n8n-Dokumentation, Umgebungsvariablen: Timezone and localization: docs.n8n.io/deploy/host-n8n/configure-n8n/basic-configuration/use-environment-variables/timezone-and-localization. Abruf 09.11.2026.
  17. n8n-Dokumentation, Back up and restore: docs.n8n.io/deploy/host-n8n/keep-n8n-running/backup-and-restore. Abruf 09.11.2026.
  18. n8n-Dokumentation, Update n8n: docs.n8n.io/deploy/host-n8n/keep-n8n-running/update-n8n. Abruf 09.11.2026.
  19. n8n-Dokumentation, Fix memory issues: docs.n8n.io/deploy/host-n8n/configure-n8n/scaling/fix-memory-issues. Abruf 09.11.2026.
  20. n8n-Dokumentation, Measure performance: docs.n8n.io/deploy/host-n8n/configure-n8n/scaling/measure-performance. Abruf 09.11.2026.
  21. n8n-Dokumentation, Compare editions (Funktionen der Community Edition): docs.n8n.io/deploy/host-n8n/community-edition-features. Abruf 09.11.2026.
  22. n8n-Dokumentation, License FAQ: docs.n8n.io/n8n-community-license/community-license/license-faq. Abruf 09.11.2026.
  23. n8n, Lizenztext Sustainable Use License 1.0 (englischsprachig): raw.githubusercontent.com/n8n-io/n8n/master/LICENSE.md. Abruf 09.11.2026.
  24. n8n, Preisseite: Cloud-Tarife und Testzeitraum: n8n.io/pricing/. Abruf 09.11.2026.
  25. Hostinger, n8n-Hosting: VPS-Vorlagen und Tarife: www.hostinger.com/de/n8n-hosting. Abruf 09.11.2026.
  26. Hostinger, VPS-Tarife: Preise, Laufzeit, Verlängerung: www.hostinger.com/de/vps. Preisdaten Stand 07.11.2026, KVM 2 am 09.11.2026 erneut abgelesen und unverändert.
  27. Hostinger-Tutorial, VPS-Anforderungen für n8n (englischsprachig, Hosting-Anbieter, keine n8n-Angabe): www.hostinger.com/tutorials/n8n-vps-requirements/. Abruf 09.11.2026.
  28. Hetzner Cloud, Tarife und Preise: www.hetzner.com/cloud/. Preisdaten Stand 07.11.2026; den Preisunterschied zwischen Nürnberg und Helsinki (CPX22) am 10.11.2026 auf der Preisliste abgelesen.
  29. Sliplane, Preise (Regionen, Backups, Abrechnung): sliplane.io/pricing. Abruf 09.11.2026.
  30. Sliplane, n8n-Hosting: sliplane.io/n8n-hosting. Abruf 09.11.2026.
  31. Elestio, n8n als verwalteter Dienst: elest.io/open-source/n8n. Abruf 09.11.2026.
  32. Railway, Preise: railway.com/pricing. Abruf 09.11.2026.
  33. Railway, Community-Vorlage für n8n: railway.com/deploy/n8n. Abruf 09.11.2026.
  34. Docker, Docker Desktop installieren: docs.docker.com/get-docker/. Abruf 09.11.2026.
  35. Traefik-Dokumentation, Migration von v2 auf v3: entfernte Optionen der Headers-Middleware (englischsprachig): doc.traefik.io/traefik/v3.7/migrate/v2-to-v3-details/. Abruf 10.11.2026.
  36. Traefik-Dokumentation, FAQ (automatisch gesetzte X-Forwarded-Header) und Headers-Middleware (englischsprachig): doc.traefik.io/traefik/v3.7/getting-started/faq/, doc.traefik.io/traefik/v3.7/reference/routing-configuration/http/middlewares/headers/. Abruf 10.11.2026.
  37. Traefik-Dokumentation, EntryPoints (Weiterleitung von HTTP auf HTTPS, englischsprachig): doc.traefik.io/traefik/v3.7/reference/install-configuration/entrypoints/. Abruf 10.11.2026.
  38. Docker Hub, Image-Tags von Traefik: hub.docker.com/_/traefik/tags. Abruf 10.11.2026: v3.7.17 vorhanden; v3.7.18, laut GitHub am selben Tag veröffentlicht, fehlte dort noch.
  39. Docker Hub, Image-Tags von n8n, und GitHub-Releases von n8n: hub.docker.com/r/n8nio/n8n/tags, github.com/n8n-io/n8n/releases. Abruf 10.11.2026: der Tag stable und das GitHub-Release stable zeigen auf 2.47.3, die Versionsangabe auf der Doku-Seite nannte noch 2.46.7.
  40. Railway-Dokumentation, Tarife und enthaltene Nutzung (englischsprachig): docs.railway.com/pricing/plans. Abruf 10.11.2026.
  41. n8n-Dokumentation, Server-CLI (Aufruf unter Docker, Export-Befehle): docs.n8n.io/deploy/host-n8n/configure-n8n/use-the-command-line. Abruf 10.11.2026.
  42. n8n-Dokumentation, Umgebungsvariablen: Security (N8N_SECURE_COOKIE): docs.n8n.io/deploy/host-n8n/configure-n8n/basic-configuration/use-environment-variables/security. Abruf 10.11.2026.
  43. OpenBSD-Handbuchseite zu ssh (Option -L, Port-Weiterleitung, englischsprachig): man.openbsd.org/ssh. Abruf 10.11.2026.
  44. n8n, Compose-Datei des Setup-Skripts (Portfreigabe 5678, englischsprachig): raw.githubusercontent.com/n8n-io/n8n/master/docker/get-n8n-compose.yml. Abruf 10.11.2026.
  45. Docker-Dokumentation, Port-Freigabe: Veröffentlichte Ports und Bindung an 127.0.0.1 (englischsprachig): docs.docker.com/engine/network/port-publishing/. Abruf 10.11.2026.