n8n selbst hosten: Anleitung für Ubuntu 24.04 mit Docker und HTTPS
n8n selbst hosten auf einem VPS: Docker, Docker Compose und Caddy mit HTTPS einrichten, Umgebungsvariablen, Updates, Backups und Absicherung.

Um n8n selbst zu hosten, brauchen Sie einen VPS mit Ubuntu 24.04, eine Subdomain wie n8n.ihre-firma.ch, Docker mit Docker Compose und einen Reverse Proxy, der das HTTPS-Zertifikat besorgt. Diese Anleitung folgt der offiziellen n8n-Dokumentation (Stand: Oktober 2026, n8n 2.x) und nutzt Caddy als Reverse Proxy. Mit etwas Linux-Erfahrung ist n8n in rund einer Stunde online – danach sind Updates, Backups und Sicherheit Ihre Aufgabe.
Was ist n8n?
n8n ist ein Werkzeug für Workflow-Automatisierung. Sie verbinden Dienste wie E-Mail, Google Sheets, CRM, Buchhaltung, Webhooks oder KI-Modelle per grafischem Editor zu Abläufen: Ein neues Kontaktformular landet automatisch im CRM, eine Rechnung wird als PDF abgelegt, ein Bericht geht jeden Montag per E-Mail raus. Wo kein fertiger Baustein existiert, helfen HTTP-Requests und eigener JavaScript- oder Python-Code.
Warum n8n selbst hosten?
- Datenkontrolle: Workflows, Zugangsdaten und Ausführungsdaten liegen auf Ihrem Server. Das erleichtert es, Anforderungen aus dem Datenschutzgesetz (DSG) und Kundenverträgen einzuhalten.
- Kosten: Die Community Edition ist kostenlos. Sie bezahlen den Server, nicht die Zahl der Ausführungen.
- Freiheit: Eigene Community-Nodes, beliebige Umgebungsvariablen und direkter Zugriff auf interne Systeme im selben Netz.
- Aber: Sie sind für Betrieb, Updates, Backups und Sicherheit selbst verantwortlich. n8n selbst empfiehlt Self-Hosting ausdrücklich für Personen mit Servererfahrung.
| Kriterium | n8n Cloud | Selbst gehostet (VPS) |
|---|---|---|
| Betrieb und Updates | n8n | Sie |
| Ablage der Daten | Infrastruktur von n8n | Ihr Server |
| Kostenmodell | Abo nach Plan, mit Ausführungslimits | Serverkosten, keine Lizenzkosten in der Community Edition |
| Grenzen | Plan-Limits für Ausführungen und RAM | Leistung Ihres Servers |
| Nötiges Wissen | keines für den Betrieb | Linux, Docker, DNS, Backups |
Voraussetzungen
- Ein VPS mit Ubuntu 24.04 LTS und Root- oder sudo-Zugriff per SSH.
- Arbeitsspeicher: 2 GB RAM und 1 bis 2 vCPU genügen für den Einstieg. Für den n8n Assistant mit Sandbox nennt die Dokumentation mindestens 4 GB RAM und 2 vCPU.
- Speicher: 25 GB reichen für den Start. Ausführungsdaten löscht n8n standardmässig nach 336 Stunden (14 Tage); anpassbar mit der Variable EXECUTIONS_DATA_MAX_AGE.
- Eine Domain, bei der Sie DNS-Einträge setzen können, zum Beispiel für n8n.ihre-firma.ch.
- Eine E-Mail-Adresse für das Let’s-Encrypt-Zertifikat.
Schritt 1: Server vorbereiten und Firewall setzen
Melden Sie sich per SSH an, bringen Sie das System auf den neuesten Stand und legen Sie einen eigenen Benutzer an, damit Sie nicht dauerhaft als root arbeiten:
- sudo apt update && sudo apt upgrade -y
- sudo adduser ihrname
- sudo usermod -aG sudo ihrname
- SSH-Schlüssel für den neuen Benutzer hinterlegen und danach als ihrname neu anmelden.
- sudo ufw allow OpenSSH
- sudo ufw allow 80
- sudo ufw allow 443
- sudo ufw enable
Schritt 2: Docker und Docker Compose installieren
Installieren Sie Docker aus der offiziellen Paketquelle von Docker, nicht das ältere Ubuntu-Paket docker.io. Die Befehle entsprechen der Anleitung auf docs.docker.com für Ubuntu 24.04 (Noble):
- sudo apt install ca-certificates curl git
- sudo install -m 0755 -d /etc/apt/keyrings
- sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
- sudo chmod a+r /etc/apt/keyrings/docker.asc
- Datei /etc/apt/sources.list.d/docker.sources anlegen (sudo nano /etc/apt/sources.list.d/docker.sources) mit diesen fünf Zeilen: Types: deb / URIs: https://download.docker.com/linux/ubuntu / Suites: noble / Components: stable / Signed-By: /etc/apt/keyrings/docker.asc
- sudo apt update
- sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- Prüfen: docker --version und docker compose version, dann sudo docker run hello-world
Schritt 3: DNS-Eintrag setzen
Legen Sie bei Ihrem DNS-Anbieter einen A-Eintrag für die Subdomain an, zum Beispiel n8n.ihre-firma.ch, der auf die IPv4-Adresse Ihres VPS zeigt. Warten Sie, bis der Eintrag aufgelöst wird (Test mit ping n8n.ihre-firma.ch). Erst dann kann Caddy das Zertifikat ausstellen lassen.
Schritt 4: n8n mit Caddy einrichten
n8n stellt ein fertiges Konfigurations-Repository mit Docker Compose und Caddy bereit. Caddy holt und erneuert das Let’s-Encrypt-Zertifikat automatisch.
- cd ~ && git clone https://github.com/n8n-io/n8n-docker-caddy.git
- cd n8n-docker-caddy
- sudo docker volume create caddy_data
- sudo docker volume create n8n_data
- nano .env und die Werte anpassen (siehe unten).
- nano caddy_config/Caddyfile und in der ersten Zeile den Platzhalter durch n8n.ihre-firma.ch ersetzen.
- nano docker-compose.yml und beim Dienst n8n die Port-Zeile 5678:5678 in 127.0.0.1:5678:5678 ändern.
- sudo docker compose up -d
- https://n8n.ihre-firma.ch im Browser öffnen und das Owner-Konto anlegen.
Tipp: Die Änderung auf 127.0.0.1:5678 ist wichtig: Docker veröffentlicht Ports an der UFW-Firewall vorbei. Ohne diese Änderung wäre n8n zusätzlich unverschlüsselt über http://IP-Adresse:5678 erreichbar. Caddy erreicht n8n intern über das Docker-Netz und braucht den Port nicht.
Die wichtigsten Umgebungsvariablen
- DATA_FOLDER=/home/ihrname/n8n-docker-caddy – Pfad zum geklonten Ordner.
- DOMAIN_NAME=ihre-firma.ch und SUBDOMAIN=n8n – ergeben zusammen die Adresse https://n8n.ihre-firma.ch.
- GENERIC_TIMEZONE=Europe/Zurich – Zeitzone für Zeitpläne (Schedule Trigger).
- SSL_EMAIL=it@ihre-firma.ch – Kontaktadresse für das Zertifikat.
- In docker-compose.yml setzt das Repository bereits N8N_HOST, N8N_PROTOCOL=https und WEBHOOK_URL, damit Webhook-Adressen korrekt mit https beginnen.
- Optional unter environment ergänzen: TZ=Europe/Zurich, N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true (wie in der offiziellen Compose-Vorlage) und N8N_DIAGNOSTICS_ENABLED=false, wenn Sie keine Telemetrie an n8n senden möchten.
Updates: n8n und Server aktuell halten
n8n veröffentlicht fast jede Woche eine neue Minor-Version. Das Image ohne Versionsangabe (latest) ist die stabile Version für den Produktivbetrieb; das Tag next ist eine instabile Vorabversion. So aktualisieren Sie:
- Zuerst ein Backup erstellen (siehe nächster Abschnitt).
- cd ~/n8n-docker-caddy
- sudo docker compose pull
- sudo docker compose down
- sudo docker compose up -d
- Workflows kurz testen. Bei grösseren Versionssprüngen vorher die Release Notes und Breaking Changes lesen.
Auch Ubuntu selbst braucht Updates. Installieren Sie Sicherheitsupdates automatisch mit sudo apt install unattended-upgrades und prüfen Sie regelmässig, ob ein Neustart nötig ist.
Backups der n8n-Daten
Alles Wichtige liegt im Docker-Volume n8n_data: die SQLite-Datenbank mit Workflows und Ausführungen sowie der Encryption Key, mit dem n8n Ihre Zugangsdaten verschlüsselt. Ohne diesen Schlüssel sind gesicherte Credentials wertlos. Sichern Sie deshalb zweifach:
- Export als Dateien: sudo docker compose exec -u node n8n n8n export:workflow --backup --output=/files/backup/workflows/
- sudo docker compose exec -u node n8n n8n export:credentials --backup --output=/files/backup/credentials/
- Die Exporte landen auf dem Server im Ordner local_files/backup. Credentials bleiben dabei verschlüsselt.
- Komplettes Volume: sudo docker compose stop, dann sudo docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n_data-$(date +%F).tar.gz -C /data . und danach sudo docker compose start.
- Die Sicherungen per rsync oder scp auf ein anderes System kopieren, nicht nur auf dem VPS liegen lassen.
Tipp: Notieren Sie den Encryption Key zusätzlich in Ihrem Passwortmanager. Er steht in der Datei config im Volume n8n_data (anzeigen mit sudo docker compose exec n8n cat /home/node/.n8n/config).
Sicherheit: Was Sie selbst absichern müssen
- Firewall: nur die Ports 22, 80 und 443 öffnen; Port 5678 nur an 127.0.0.1 binden.
- SSH: Anmeldung nur mit Schlüssel, in /etc/ssh/sshd_config PasswordAuthentication no setzen.
- Basic Auth brauchen Sie nicht: Seit n8n 1.0 schützt die eingebaute Benutzerverwaltung die Oberfläche. Aktivieren Sie in den persönlichen Einstellungen die Zwei-Faktor-Authentifizierung.
- Updates: n8n-Image, Caddy-Image und Ubuntu regelmässig aktualisieren. Sicherheitslücken in n8n werden mit neuen Versionen geschlossen.
- Webhooks: Produktive Webhooks mit Header- oder Token-Prüfung absichern, da sie ohne Anmeldung erreichbar sind.
- Community-Nodes: nur aus vertrauenswürdigen Quellen installieren, denn sie laufen mit den Rechten von n8n.
Welcher VPS passt für n8n?
Für einige Dutzend Workflows reicht ein kleiner Server. Bei HostOn wählen Sie Ubuntu 24.04 direkt bei der Bestellung. VPS CORE 1 (1 vCPU, 2 GB RAM, 25 GB SSD) für CHF 11.90 pro Monat genügt für den Einstieg; mit VPS CORE 2 (2 vCPU, 4 GB RAM, 50 GB SSD) für CHF 19.90 pro Monat haben Sie Reserven für viele Workflows oder den n8n Assistant. Beide sind unmanaged und monatlich kündbar: Installation, Updates und Backups von n8n übernehmen Sie wie oben beschrieben selbst.
Häufige Fragen zum Thema
Ja. Die selbst gehostete Community Edition von n8n läuft ohne Lizenzschlüssel und kostenlos mit fast allen Funktionen. Sie bezahlen nur den Server; einzelne Funktionen für grössere Teams gibt es in den kostenpflichtigen Business- und Enterprise-Editionen.
n8n selbst ist sparsam: Die kleinsten Pläne von n8n Cloud laufen mit 320 MiB RAM. Mit Betriebssystem, Docker und Reverse Proxy sind 2 GB RAM ein vernünftiger Start; für viele parallele Workflows oder den n8n Assistant (die Dokumentation verlangt dafür mindestens 4 GB RAM und 2 vCPU) planen Sie mehr ein.
Nein. Seit n8n 1.0 ist die Benutzerverwaltung fest eingebaut, und Basic Auth wurde entfernt. Beim ersten Aufruf legen Sie ein Owner-Konto an; zusätzlich sollten Sie die Zwei-Faktor-Authentifizierung aktivieren.
Im Projektordner nacheinander docker compose pull, docker compose down und docker compose up -d ausführen. Machen Sie vorher ein Backup und lesen Sie bei grösseren Versionssprüngen die Release Notes.
Dann lassen sich die gespeicherten Zugangsdaten (Credentials) nicht mehr entschlüsseln und müssen neu erfasst werden. Sichern Sie deshalb das Docker-Volume n8n_data oder den Schlüssel selbst an einem sicheren Ort.
Für den Einstieg reicht die eingebaute SQLite-Datenbank. Bei vielen Ausführungen, mehreren Benutzern oder wenn Sie später den Queue-Modus mit mehreren Workern nutzen wollen, ist PostgreSQL die bessere Wahl.



