n8n auf Ubuntu 24.04 mit Docker und Nginx installieren und einrichten
n8n ist eine Open-Source-Automatisierungsplattform, mit der du unterschiedliche Dienste miteinander verknüpfen und wiederkehrende Aufgaben über eine intuitive, node-basierte visuelle Oberfläche automatisieren kannst. Das Tool bietet viele Integrationen und verbindet No-Code- mit Low-Code-Funktionen, um auch komplexe Workflow-Strukturen aufzubauen.
Diese Anleitung führt dich durch die Installation und Konfiguration von n8n auf Ubuntu 24.04 per Docker, das Einrichten von Nginx als Reverse Proxy sowie das Absichern des Zugriffs mit TLS-Zertifikaten.
Voraussetzungen
Bevor du startest, stelle sicher, dass Folgendes vorhanden ist:
- Zugriff auf einen Ubuntu-24.04-Server über einen Nicht-Root-Benutzer mit sudo-Rechten.
- Ein eingerichteter DNS-A-Record, der auf die öffentliche IP deines Servers zeigt, zum Beispiel n8n.example.com.
Docker und Docker Compose installieren
Aktualisiere zuerst die Paketlisten deines Systems.
Konsole
$ sudo apt update
Installiere anschließend die benötigten Pakete für die Verwaltung des Docker-Repositories.
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Füge den offiziellen GPG-Schlüssel von Docker hinzu.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Registriere das Docker-Repository in deiner Ubuntu-Installation.
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Aktualisiere danach erneut den Paketindex.
$ sudo apt update
Installiere die Docker Engine, die Docker-CLI sowie das Docker-Compose-Plugin.
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
Füge deinen Benutzer zur docker-Gruppe hinzu, damit du Docker-Befehle ohne sudo ausführen kannst.
$ sudo usermod -aG docker $USER
Aktiviere die neue Gruppenmitgliedschaft in der aktuellen Sitzung.
$ newgrp docker
Prüfe, ob Docker korrekt läuft.
$ docker --version
Verzeichnisstruktur für n8n anlegen
Im nächsten Schritt richtest du eine eigene Ordnerstruktur für die n8n-Konfiguration und dauerhafte Daten ein.
Erstelle das Hauptverzeichnis für n8n.
$ mkdir ~/n8n
Wechsle in den neu erstellten Ordner.
$ cd ~/n8n
Lege einen Unterordner für persistente n8n-Daten an.
$ mkdir n8n-data
Erstelle außerdem einen Ordner für lokale Dateien, die in Workflows genutzt werden sollen.
$ mkdir local-files
Da der n8n-Container unter UID 1000 arbeitet, passe die Besitzrechte entsprechend an.
$ sudo chown -R 1000:1000 n8n-data local-files
Docker Compose für n8n konfigurieren
Jetzt erstellst du die Docker-Compose-Datei zum Starten von n8n.
Lege die Datei docker-compose.yml an.
$ nano docker-compose.yml
Füge folgende Konfiguration ein und ersetze n8n.example.com durch deine Domain.
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.example.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.example.com
- N8N_EDITOR_BASE_URL=https://n8n.example.com
- GENERIC_TIMEZONE=UTC
- N8N_USER_FOLDER=/home/node/.n8n
volumes:
- ./n8n-data:/home/node/.n8n
- ./local-files:/files
networks:
- n8n-network
networks:
n8n-network:
driver: bridge
Speichere die Datei und schließe den Editor.
Mit dieser Definition startest du einen n8n-Container mit dauerhaftem Speicher, Webhook-Unterstützung und allen relevanten HTTPS-Variablen.
Nginx installieren und einrichten
Nginx fungiert als Reverse Proxy, beendet HTTPS und leitet die Anfragen an den n8n-Container weiter.
Installiere Nginx über den Paketmanager.
$ sudo apt install nginx -y
Erstelle einen neuen Server-Block in Nginx und ersetze die Domain durch deine eigene.
$ sudo nano /etc/nginx/sites-available/n8n.example.com
Trage danach diese Konfiguration ein und passe den Domainnamen an.
server {
listen 80;
server_name n8n.example.com;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
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;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_buffering off;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
}
Diese Einstellungen unterstützen WebSockets und setzen längere Timeouts, was für n8n-Workflows sinnvoll ist.
Aktiviere die Site über einen symbolischen Link.
$ sudo ln -s /etc/nginx/sites-available/n8n.example.com /etc/nginx/sites-enabled/
Überprüfe die Nginx-Konfiguration auf Fehler.
$ sudo nginx -t
Lade Nginx neu, um die Änderungen zu übernehmen.
$ sudo systemctl reload nginx
Firewall-Regeln konfigurieren
Richte nun die Firewall so ein, dass der notwendige Netzwerkverkehr erlaubt wird.
Erlaube vorübergehend HTTP-Traffic (für die Zertifikatsvalidierung erforderlich).
$ sudo ufw allow 80/tcp
Aktiviere HTTPS, damit sichere Verbindungen möglich sind.
$ sudo ufw allow 443/tcp
Certbot installieren und TLS-Zertifikate anwenden
Certbot übernimmt die Ausstellung und automatische Erneuerung von TLS-Zertifikaten über Let’s Encrypt.
Installiere Certbot sowie das Nginx-Plugin.
$ sudo apt install certbot python3-certbot-nginx -y
Fordere ein Zertifikat für deine Domain an und passe Domain sowie E-Mail-Adresse bei Bedarf an.
$ sudo certbot --nginx -d n8n.example.com --email admin@example.com --agree-tos --non-interactive
Certbot ergänzt deine Nginx-Konfiguration automatisch um TLS-Einstellungen und richtet die Zertifikatserneuerung ein.
Teste anschließend den Erneuerungsmodus.
$ sudo certbot renew --dry-run
Wenn der Testlauf ohne Fehler durchläuft, ist die automatische Verlängerung korrekt eingerichtet.
n8n starten
Hier erfährst du, wie du n8n per Docker Compose startest und prüfst, ob alles funktioniert.
Wechsle in das n8n-Verzeichnis.
$ cd ~/n8n
Starte n8n im Hintergrund.
$ docker compose up -d
Kontrolliere, ob der Container korrekt läuft.
$ docker compose ps
Sieh dir die Logs an, um eine erfolgreiche Initialisierung zu bestätigen.
$ docker logs n8n
Beispielausgabe:
…
n8n ready on https://n8n.example.com
n8n aufrufen und konfigurieren
Schließe die Einrichtung ab, indem du ein Admin-Konto anlegst und die ersten Einstellungen vornimmst.
Öffne deinen Browser und rufe folgende Adresse auf:
https://n8n.example.com
Erstelle dein Administrator-Profil, indem du Namen, E-Mail und Passwort eingibst.
Nach dem Login kannst du den n8n-Workflow-Editor nutzen, um Automatisierungen aufzubauen.
Sieh dir vorhandene Vorlagen an oder entwirf deine eigenen Workflow-Agenten.
n8n-Container verwalten
Mit den folgenden Befehlen steuerst du deine laufende n8n-Umgebung.
Logs anzeigen
Beobachte die Logs in Echtzeit.
$ docker logs -f n8n
n8n stoppen
Beende den Container sauber.
$ docker compose down
n8n neu starten
Starte den n8n-Container erneut.
$ docker compose restart
n8n aktualisieren
Wechsle auf die aktuellste n8n-Version.
$ docker compose pull
$ docker compose up -d
Fazit
Du hast n8n auf Ubuntu 24.04 mit Docker installiert, einen Nginx-Reverse-Proxy eingerichtet und TLS-Verschlüsselung aktiviert. Damit ist deine n8n-Instanz bereit, Automatisierungen zu erstellen. Durch das Container-Setup werden Updates, Wartung und Skalierung deutlich einfacher, während deine Automatisierungsanforderungen wachsen. Für weitere Informationen kannst du die offizielle n8n-Dokumentation nutzen.


