Wie führt man n8n mit Docker aus?

Die Ausführung von n8n mit Docker ist eine effiziente Möglichkeit, dieses Tool zur Automatisierung von Arbeitsabläufen selbst zu hosten. Im Gegensatz zur Installation von n8n direkt auf Ihrem Virtual Private Server (VPS) bietet Docker eine containerisierte Umgebung, die n8n von Ihrem Hauptsystem isoliert.
Dies macht es einfach, Ihre n8n-Versionen zu aktualisieren oder herunterzustufen, Ihre Einrichtung zu skalieren, um mehr Arbeitsabläufe unterzubringen, und sogar Ihre n8n-Instanz auf einen anderen Server zu migrieren.
In diesem Artikel erfahren Sie, wie Sie n8n mit Docker und Docker Compose ausführen können. Mit dieser Methode können Sie den n8n-Dienst, Umgebungsvariablen und Abhängigkeiten – wie z. B. eine Datenbank – in einer einzigen YAML-Datei definieren.
Lesen Sie weiter, um eine schrittweise Anleitung zur Installation, Konfiguration, Sicherung und Aktualisierung Ihrer n8n-Instanz mit Docker zu erhalten.
Inhaltsverzeichnis
Wie man n8n mit Docker selbst hosten kann
Um n8n mit Docker selbst zu hosten, müssen Sie zunächst Docker und Docker Compose auf Ihrem VPS installieren. Als nächstes müssen Sie eine Docker Compose-Datei erstellen, um Ihren n8n-Dienst zu konfigurieren. Schließlich müssen Sie den n8n-Container mit dem Befehl docker compose up -d starten.
Anschließend können Sie Ihr n8n-Setup mit SSL und einem Reverse-Proxy sichern, Umgebungsvariablen nach Bedarf ändern und n8n aktualisieren, wenn neue Versionen veröffentlicht werden.
In den folgenden Abschnitten wird jeder Schritt näher erläutert.
1. Installieren Sie Docker und Docker Compose
Stellen Sie zunächst sicher, dass Docker auf Ihrem Server eingerichtet ist. Ab Docker v20.10.0 ist Docker Compose standardmäßig als Plugin enthalten, sodass Sie es nicht separat installieren müssen.
Wenn Sie Hostingers Docker-VPS-Hosting nutzen, haben Sie Glück – Docker ist bereits vorinstalliert, so dass Sie diesen Schritt komplett überspringen können.
Benutzer mit regulären Hostinger VPS-Tarifen können Docker entweder über eine vorkonfigurierte Vorlage oder manuell über die Kommandozeile installieren.
Wenn Sie Letzteres wählen, überprüfen Sie die Installation, indem Sie den folgenden Linux-Befehl in Ihrem Terminal ausführen:
docker -v
Dadurch wird die installierte Docker-Version angezeigt, etwa so:
2. Bereiten Sie das n8n-Datenverzeichnis vor
Als Nächstes erstellen Sie Verzeichnisse, in denen die Daten und Konfigurationsdateien von n8n gespeichert werden. Führen Sie den folgenden Befehl aus, um das Hauptverzeichnis für n8n zu erstellen und dorthin zu navigieren:
mkdir ~/n8n && cd ~/n8n
Erstellen Sie innerhalb des neu erstellten Verzeichnisses ein Unterverzeichnis mit dem Namen n8n_data, um die dauerhaften Daten von n8n zu speichern:
mkdir n8n_data
Legen Sie die korrekten Eigentumsverhältnisse für die persistenten Daten fest, was wichtig ist, wenn n8n mit Docker ausgeführt wird:
sudo chown -R 1000:1000 n8n_data

3. Erstellen Sie eine Docker Compose-Datei für n8n
Nachdem Sie die Verzeichnisse für n8n vorbereitet haben, erstellen Sie eine neue Docker Compose-Datei, um die Einstellungen von n8n zu konfigurieren, Umgebungsvariablen zu definieren und die erforderlichen Volumes anzugeben.
Dazu können Sie den Texteditor nano verwenden:
sudo nano docker-compose.yml
Fügen Sie den folgenden Inhalt ein und ersetzen Sie yourUser und yourPassword durch Ihre bevorzugten Anmeldedaten:
services: n8n: image: n8nio/n8n ports: - "5678:5678" environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=yourUser - N8N_BASIC_AUTH_PASSWORD=yourPassword volumes: - ./n8n_data:/home/node/.n8n

Wenn Sie fertig sind, speichern Sie Ihre Änderungen und beenden Sie nano durch Drücken von Strg + X → Y → Enter.
4. Starten Sie den n8n-Container
Starten Sie nun den n8n-Container mit diesem Befehl:
docker compose up -d
Sie werden sehen, dass der Container gestartet wird. Sobald das abgeschlossen ist, werden Zeilen wie Created und Started angezeigt, ähnlich wie in der Abbildung unten:
Um zu überprüfen, ob Ihr n8n-Container gestartet wurde, öffnen Sie die folgende Adresse in Ihrem Browser und ersetzen Sie your_vps_ip durch die IP-Adresse Ihres eigenen VPS:
http://your_vps_ip:5678
Hostinger VPS-Kunden finden die IP ihres Servers im hPanel unter VPS → Verwalten → Übersicht → VPS-Details.
Wenn Sie beim Besuch der Adresse eine Fehlerwarnung für sichere Cookies wie in der Abbildung unten sehen, machen Sie sich keine Sorgen. Ihre n8n-Instanz wird tatsächlich ausgeführt. Der Fehler tritt auf, weil das SSL nicht für sichere Verbindungen eingerichtet wurde, aber das werden Sie im nächsten Schritt beheben.
5. Sichern Sie n8n mit SSL und einem NGINX-Reverse-Proxy
Um einen sicheren Zugriff auf Ihre n8n-Instanz über HTTPS zu ermöglichen, müssen Sie ein SSL-Zertifikat ausstellen und einen Reverse-Proxy konfigurieren.
Installieren Sie zunächst den NGINX-Webserver auf Ihrem VPS:
sudo apt install nginx -y
Halten Sie den NGINX-Dienst sofort vorübergehend an:
sudo systemctl stop nginx
Als nächstes installieren Sie Certbot, um Ihr SSL-Zertifikat zu erhalten:
sudo apt install certbot -y
Besorgen Sie sich eine eigenständige SSL-Zertifikatsversion von Certbot. Ersetzen Sie yourdomain.tld durch Ihren tatsächlichen Domainnamen, wenn Sie ihn auf Ihren VPS gerichtet haben. Ansonsten stellen Sie ein SSL-Zertifikat für Ihren Hostnamen aus:
sudo certbot certonly --standalone -d yourdomain.tld
Sie werden aufgefordert, eine gültige E-Mail-Adresse einzugeben, die Nutzungsbedingungen zu akzeptieren und sich optional für den Erhalt von Werbe-E-Mails anzumelden.
Starten Sie anschließend NGINX erneut:
sudo systemctl start nginx
Danach erstellen Sie eine Konfigurationsdatei, um den Reverse-Proxy mit NGINX einzurichten:
sudo nano /etc/nginx/sites-available/n8n
Fügen Sie die nachstehenden Konfigurationsdaten in die Datei ein. Ersetzen Sie yourdomain.tld mit Ihrer eigenen Domain oder Ihrem Hostnamen.
server { listen 443 ssl; server_name yourdomain.tld; ssl_certificate /etc/letsencrypt/live/yourdomain.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.tld/privkey.pem; location / { proxy_pass http://localhost:5678; 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; } } server { listen 80; server_name yourdomain.tld; return 301 https://$host$request_uri; }
Nachdem Sie die Datei gespeichert und den Editor beendet haben, führen Sie folgenden Befehl aus, um die Konfiguration zu aktivieren:
sudo ln -sf /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/n8n
Testen Sie die NGINX-Konfiguration auf Fehler:
sudo nginx -t
Laden Sie den NGINX-Dienst neu, um die Änderungen zu übernehmen:
sudo systemctl reload nginx
6. Greifen Sie auf Ihre n8n-Instanz zu
Rufen Sie nun Ihre n8n-Instanz mit der Domain oder dem Hostnamen auf, die Sie zuvor konfiguriert haben. Sie sehen die Registrierungsseite für das n8n-Besitzerkonto, auf der Sie sich mit Ihren bevorzugten Anmeldedaten anmelden können.
Danach öffnen Sie das n8n-Dashboard, um mit der Erstellung von Automatisierungsworkflows zu beginnen.
7. Ändern Sie die n8n-Umgebungsvariablen
Bei der Verwaltung Ihrer n8n-Instanz müssen Sie möglicherweise Umgebungsvariablen ändern, um Datenbankverbindungen einzurichten, die Authentifizierung zu aktivieren, Drittanbieterdienste zu integrieren oder um die Sicherheit zu verbessern.
Kehren Sie dazu zu Ihrem Terminal zurück und bearbeiten Sie Ihre Docker Compose-Datei:
sudo nano docker-compose.yml
- Im Abschnitt environment können Sie Konfigurationseinstellungen für Ihren n8n-Container hinzufügen oder ändern. Hier sind einige der am häufigsten verwendeten Variablen:
- N8N_ENCRYPTION_KEY – verschlüsselt die Anmeldedaten in der Datenbank für zusätzliche Sicherheit.
- N8N_ENCRYPTION_KEY=yourStrongRandomString
- N8N_HOST, N8N_PORT, N8N_PROTOCOL – stellt sicher, dass n8n korrekte URLs generiert, insbesondere hinter einem Reverse-Proxy oder bei der Verwendung von SSL.
- N8N_HOST=yourdomain.tld - N8N_PORT=5678 - N8N_PROTOCOL=https
- WEBHOOK_URL – legt die öffentliche URL für Webhooks fest, was wichtig ist, wenn Sie HTTPS oder eine benutzerdefinierte Domain verwenden.
- WEBHOOK_URL=https://youdomain.tld
- DB_TYPE, DB_POSTGRESDB – ermöglicht die Verwendung von PostgreSQL anstelle des Standard-SQLite für bessere Leistung und Skalierbarkeit.
- DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=your_postgres_host - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=your_database_name - DB_POSTGRESDB_USER=your_db_user - DB_POSTGRESDB_PASSWORD=your_db_password
- TZ – legt die Zeitzone für n8n fest.
- TZ=UTC
Speichern Sie die Datei, nachdem Sie die notwendigen Änderungen vorgenommen haben.
Führen Sie anschließend den folgenden Docker-Befehl aus, um den n8n-Container zu beenden:
docker compose down
Starten Sie den Container wieder mit den aktualisierten Umgebungsvariablen:
docker compose up -d
💡 Experten-Tipp
Wenn Sie nur Ihren n8n-Docker-Container neu starten möchten, ohne die Compose-Datei zu ändern, verwenden Sie stattdessen den Befehl docker compose restart.
8. Aktualisieren Sie n8n auf die neueste Version
Sie sollten n8n regelmäßig auf die neueste Version aktualisieren, um Sicherheitsrisiken zu minimieren und von neuen Funktionen und Verbesserungen zu profitieren.
Zum Aktualisieren holen Sie sich zunächst das neueste n8n-Image von Docker Hub:
docker pull n8nio/n8n
Starten Sie dann den n8n-Container mit dem aktualisierten Image neu:
docker compose up -d

Was sind die bewährten Verfahren für die Verwaltung von n8n mit Docker?
Hier sind einige bewährte Verfahren für die Verwaltung von n8n mit Docker, einschließlich einiger, die bereits in diesem Tutorial gezeigt wurden:
- Docker-Volumes einhängen. Hängen („mount”) Sie ein Host-Verzeichnis wie ./n8n_data:/home/node/.n8n ein, um Workflows, Anmeldeinformationen und Ausführungsdaten außerhalb des Containers zu speichern. Dadurch wird sichergestellt, dass Ihre Daten Aktualisierungen, Neustarts oder die Wiederherstellung des Containers überstehen.
- Konfigurieren Sie die Umgebungsvariablen. Legen Sie in docker-compose.yml API-Schlüssel, Webhook-Geheimnisse, Datenbankanmeldeinformationen und andere sensible Daten als Umgebungsvariablen fest. Dadurch werden Geheimnisse aus Workflows und Quellcode herausgehalten, was die Sicherheit erhöht und die Schlüsselrotation vereinfacht.
- Sicherer Zugriff. Aktivieren Sie immer die grundlegende Authentifizierung (N8N_BASIC_AUTH_ACTIVE=true) und verwenden Sie sichere Benutzernamen und Passwörter. Für eine sichere Kommunikation platzieren Sie n8n hinter einem Reverse-Proxy wie NGINX mit SSL, damit alle Daten, einschließlich der Anmeldedaten, verschlüsselt und nicht im Klartext gesendet werden.
- Führen Sie regelmäßig Backups durch. Sichern Sie regelmäßig den Host-Ordner, der auf /home/node/.n8n abgebildet ist, nicht den internen Pfad des Containers. Für einen laufenden Container verwenden Sie den folgenden Befehl:
docker cp n8n:/home/node/.n8n /path/to/backup/folder
- Legen Sie Ressourcenlimits fest. Legen Sie in Ihrer docker-compose.yml-Datei CPU- und Speicherlimits fest, um zu verhindern, dass n8n Ihre VPS-Ressourcen übermäßig nutzt. Zum Beispiel:
deploy: resources: limits: cpus: '1' memory: 1G
- Überwachen Sie Protokolle und Leistung. Führen Sie docker compose logs n8n aus, um Protokolle zu überprüfen und Probleme zu beheben. Für die laufende Überwachung sollten Sie die Integration mit einem System wie dem LGTM-Stack in Betracht ziehen, um Warnungen zu erhalten, wenn n8n ausfällt oder sich falsch verhält.
Warum ist Hostinger die beste Weise, um Ihr n8n-Docker-Setup zu hosten?
Docker macht das Selbsthosten von n8n einfach und flexibel, indem es eine portable, konsistente Umgebung für verschiedene Systeme bereitstellt. Aber um es zuverlässig rund um die Uhr laufen zu lassen, können Sie sich nicht auf Ihren persönlichen Rechner verlassen – Sie brauchen einen VPS.
Ein VPS läuft kontinuierlich, sodass Ihre Arbeitsabläufe auch dann aktiv bleiben, wenn Ihr Computer ausgeschaltet oder nicht angeschlossen ist. Außerdem können Sie sicher von überall auf n8n zugreifen und es verwalten, nicht nur von Ihrem lokalen Netzwerk aus.
Der Docker-VPS von Hostinger ist eine ausgezeichnete Wahl für das Selbsthosten von containerisierten Anwendungen wie n8n. Docker und alle erforderlichen Komponenten sind bereits vorinstalliert, sodass Sie n8n schnell und ohne zusätzliche Einrichtung einsetzen können.
Wir bieten mehrere Rechenzentren in verschiedenen Regionen an, sodass Sie einen Server in Ihrer Nähe wählen können, um die Latenzzeiten zu minimieren. Und mit der 99,9%igen Uptime-Garantie von Hostinger bleiben Ihre Automatisierungsworkflows rund um die Uhr zuverlässig online.
Ab 4,99 $/Monat beinhalten unsere Docker VPS-Tarife bis zu 8 vCPU-Kerne, 32 GB RAM und 400 GB NVMe-Speicher. Sie können klein anfangen und mit wenigen Klicks auf einen höheren Tarif aufrüsten, wenn Ihre Automatisierungsanforderungen steigen.
Sicherheit hat Priorität: Automatische Backups, fortschrittlicher DDoS-Schutz und ein Malware-Scanner schützen Ihre Daten, blockieren Angriffe und verhindern Unterbrechungen Ihrer n8n-Einrichtung.

Was kommt nach dem Selbsthosten von n8n mit Docker als Nächstes?
Das Selbsthosten von n8n mit Docker gibt Ihnen volle Kontrolle, Flexibilität und Skalierbarkeit für Ihre Workflow-Automatisierung. So können Sie ein leistungsstarkes Automatisierungstool zu Ihren eigenen Bedingungen betreiben – sicher, zuverlässig und mit Raum für Wachstum.
Wenn Sie mit dem Aufbau und der Verwaltung Ihrer n8n-Einrichtung fortfahren, finden Sie hier die nächsten Schritte:
- Erkunden Sie Ideen zur Automatisierung. Entdecken Sie, was Sie mit n8n automatisieren können, um sich inspirieren zu lassen und um sich wiederholende Aufgaben zu rationalisieren.
- Skalieren Sie Ihre n8n-Einrichtung. Setzen Sie einen Docker-Stack ein, um n8n über mehrere Server zu skalieren und Dienste in einem Swarm-Cluster zu verwalten.
- Sichern Sie Ihren Server. Befolgen Sie die Bewährten Verfahren für VPS-Sicherheit, wie das Ändern des SSH-Ports, das Deaktivieren des Root-Logins und das Einrichten einer Firewall, um Ihre n8n-Instanz zu schützen.
- Verwenden Sie n8n mit MCP. Machen Sie Ihre Arbeitsabläufe für KI-Agenten zugänglich und ermöglichen Sie eine kontextbezogene Automatisierung durch die Integration von n8n mit dem Model Context Protocol (MCP).
Wenn Sie noch Fragen zur Ausführung und Verwaltung von n8n mit Docker haben, können Sie gerne unten einen Kommentar hinterlassen.