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

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.

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.

Prüfe, ob Docker korrekt läuft.

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.

Wechsle in den neu erstellten Ordner.

Lege einen Unterordner für persistente n8n-Daten an.

Erstelle außerdem einen Ordner für lokale Dateien, die in Workflows genutzt werden sollen.

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.

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.

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).

Aktiviere HTTPS, damit sichere Verbindungen möglich sind.

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.

Starte n8n im Hintergrund.

Kontrolliere, ob der Container korrekt läuft.

Sieh dir die Logs an, um eine erfolgreiche Initialisierung zu bestätigen.

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.

n8n stoppen

Beende den Container sauber.

n8n neu starten

Starte den n8n-Container erneut.

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.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: