Für VPS und migrierte Cloud Server

In diesem Artikel erfahren Sie zunächst, wie Sie das Image Ubuntu 24.04 + n8n auf Ihrem Server installieren. n8n wird im Rahmen der Installation in einem Docker-Container bereitgestellt. Das von IONOS bereitgestellte n8n-Image enthält kein SSL-Zertifikat für die mitgelieferte IP-Adresse, sodass zunächst nur ein Zugriff über das unverschlüsselte HTTP-Protokoll möglich ist. Um über eine verschlüsselte Verbindung auf n8n zugreifen zu können, ist eine manuelle Konfiguration erforderlich. Wie Sie die Konfiguration vorbereiten und n8n konfigurieren, wird im weiteren Verlauf des Artikels erklärt.

Zusammenfassung der erforderlichen Schritte

Im Folgenden sind die erforderlichen Schritte in Kurzform aufgeführt:

  • Image auf dem Server installieren
  • Konfiguration vorbereiten
  • SSH-Verbindung zum Server herstellen
  • n8n für SSL-Verbindung konfigurieren
  • Auf die n8n-Oberfläche zugreifen

Warnung

Wenn Sie auf einem bestehenden Server ein Image neu installieren, werden alle vorhandenen Daten auf dem Server unwiederbringlich gelöscht und durch die Daten des neu installierten Images ersetzt. Dieser Vorgang kann nicht mehr rückgängig gemacht werden. Stellen Sie sicher, dass Sie vor der Installation des Images ein Backup des Servers erstellen. Anderenfalls droht Datenverlust.

Image auf dem Server installieren

Um das Image Ubuntu 24.04 + n8n zu installieren, gehen Sie wie folgt vor:

  • Melden Sie sich in Ihrem IONOS Konto an.
  • Klicken Sie in der Titelleiste auf Menü > Server & Cloud.
    Optional: Wählen Sie den gewünschten Server & Cloud-Vertrag aus.

  • Klicken Sie im Bereich Infrastruktur > Server auf den gewünschten Server.
  • Klicken Sie auf Aktionen.
  • Klicken Sie auf Image neu installieren. Der Bereich Image neu installieren wird angezeigt.
Screenshot: Der Bereich Infrastruktur > Server wird im Cloud Panel angezeigt. In diesem Bereich ist im Menü Aktionen der Menüpunkt Image neu installieren hervorgehoben.
Abbildung: Aktionsmenü mit dem Menüpunkt Image neu installieren im Bereich Infrastruktur > Server
  • Klicken Sie in der Kachel Ubuntu auf den nach unten zeigenden Pfeil.
  • Wählen Sie das Image Ubuntu 24.04 + n8n aus.
  • Klicken Sie auf Image neu installieren. Das Image wird installiert. Dieser Vorgang kann einige Minuten dauern.
  • Notieren Sie die IP-Adresse des Servers. Diese wird im weiteren Verlauf benötigt, um Ihre Domain zu verbinden.

Konfiguration vorbereiten

Um eine verschlüsselte Verbindung zu n8n herzustellen, wird eine Domain benötigt, auf die zugegriffen werden kann. Darüber hinaus ist hierfür ein SSL-Zertifikat notwendig, das für die Domain ausgestellt wird. 

Domain bestellen

Wenn Sie bisher noch keine Domain für Ihren Server bestellt haben, können Sie diese jederzeit hinzubestellen. Eine Anleitung finden Sie im folgenden Artikel: Domain bestellen als IONOS Kunde

Subdomain erstellen

Erstellen Sie eine Subdomain im folgenden Format: n8n.example.com

Ersetzen Sie hierbei den Platzhalter example.com durch die von Ihnen gewählte Domain. Wie Sie in Ihrem IONOS Konto eine Subdomain erstellen, wird im folgenden Artikel erklärt: Subdomain erstellen

Domain mit der statischen IP-Adresse des Servers verbinden

Eine Anleitung, wie Sie Ihre Domain mit der statischen IP-Adresse Ihres Servers verbinden, finden Sie im folgenden Artikel: Ändern der IPv4/IPv6-Adresse einer Domain (A/AAAA-Record)

Firewall konfigurieren

Stellen Sie sicher, dass in der Firewall-Richtlinie folgende Ports freigeschaltet sind:

Port 80
Port 443
Port 5678

Eine Anleitung finden Sie im folgenden Artikel: Firewall-Richtlinie bearbeiten (VPS und migrierte Cloud Server)

SSH-Verbindung zum Server herstellen

Stellen Sie im nächsten Schritt eine SSH-Verbindung zu Ihrem Server her. Loggen Sie sich hierbei als root ein. Entsprechende Anleitungen finden Sie in den folgenden Artikeln:

Auf einem Computer mit Microsoft Windows eine SSH-Verbindung zu Ihrem Linux-Server aufbauen

Auf einem Linux-Computer eine SSH-Verbindung zu Ihrem Linux-Server aufbauen

n8n für SSL-Verbindung konfigurieren

Achtung

Mit diesen Schritten wird die installierte, ungesicherte Instanz deaktiviert und eine neue, mit einem SSL-Zertifikat von Let's Encrypt  gesicherte n8n-Instanz installiert. Wenn Sie diese Schritte ausführen, nachdem Sie bereits einige Zeit mit der ungesicherten Instanz gearbeitet haben, empfehlen wir Ihnen, eventuell erstellte Workflows und andere Inhalte zunächst zu exportieren, damit Sie diese in die neue Instanz importieren können. Wie das funktioniert, erfahren Sie hier in der n8n-Dokumentation: Exporting and importing workflows | n8n Docs

  • Um auf Ihrem Server ein neues Verzeichnis namens n8n-compose zu erstellen, geben Sie den folgenden Befehl ein:

    root@ubuntu:~# mkdir n8n-compose

  • Um im neu erstellten Verzeichnis weiterzuarbeiten, wechseln Sie in das neue Verzeichnis:

    root@ubuntu:~# cd n8n-compose

  • Erstellen Sie in diesem Verzeichnis mit dem Editor vi eine Datei mit der Dateiendung .env.  Diese Datei wird verwendet, um Umgebungsvariablen zu definieren, die in der Docker Compose-Datei verwendet werden.

    root@ubuntu:~/n8n-compose# vi .env

Hinweise

Der Editor vi verfügt über einen Einfügemodus und einen Befehls- oder Kommandomodus. Den Einfügemodus können Sie mit der Taste [i] aufrufen. In diesem Modus werden die eingegebenen Zeichen sofort in den Text eingefügt.  Um den Einfügemodus zu verlassen und den Befehlsmodus aufzurufen, drücken Sie anschließend [ESC]. Wenn Sie den Befehlsmodus nutzen, werden Ihre Tastatureingaben als Befehl interpretiert.

  • Fügen Sie in die Datei .env die unten stehenden Informationen ein und ersetzen Sie die Platzhalter example.com sowie den Platzhalter für die Zeitzone. Diese Variablen werden in einem späteren Schritt in der compose.yaml-Datei referenziert und dienen dazu, Domäneneinstellungen, den gewünschten Zeitzonenstandard und die E-Mail-Adresse für SSL-Zertifikate festzulegen.

    # DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from
    # The top level domain to serve from
    DOMAIN_NAME=example.com

    # The subdomain to serve from
    SUBDOMAIN=n8n

    # The above example serves n8n at: https://n8n.example.com

    # Optional timezone to set which gets used by Cron and other scheduling nodes
    # New York is the default value if not set
    GENERIC_TIMEZONE=Europe/Berlin 

    # The email address to use for the TLS/SSL certificate creation
    SSL_EMAIL=user@example.com

  • Ersetzen Sie den Platzhalter user@example.com in der Zeile SSL_EMAIL.
  • Drücken Sie die Taste [ESC].
  • Um vi zu beenden und die Datei zu speichern, geben Sie den folgenden Befehl ein und drücken Sie anschließend die Eingabetaste:

    root@ubuntu:~# :wq

  • Erstellen Sie ein Verzeichnis mit dem Namen local-files. Dieses wird als Bind-Mount genutzt, um den Zugriff auf Dateien aus dem Container heraus zu ermöglichen. Geben Sie hierzu den folgenden Befehl ein:

    root@ubuntu:~/n8n-compose# mkdir local-files

  • Um die erforderliche Docker-Compose-Datei zu erstellen, geben Sie den folgenden Befehl ein:

    root@ubuntu:~/n8n-compose# vi compose.yaml

  • Fügen Sie nun die unten stehenden Informationen ein:

    services:
      traefik:
        image: "traefik"
        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: docker.n8n.io/n8nio/n8n
        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.SSLRedirect=true
          - 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.SSLHost=${DOMAIN_NAME}
          - 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_RUNNERS_ENABLED=true
          - NODE_ENV=production
          - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
          - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
          - TZ=${GENERIC_TIMEZONE}
        volumes:
          - n8n_data:/home/node/.n8n
          - ./local-files:/files

    volumes:
      n8n_data:
      traefik_data:

Hinweis

Der Eintrag  - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json" muss in einer Zeile stehen.

  • Drücken Sie die Taste [ESC].
  • Um vi zu beenden und die Datei zu speichern, geben Sie den folgenden Befehl ein und drücken Sie anschließend die Eingabetaste:

    :wq

  • Um herauszufinden, welcher Prozess Port 5678 verwendet, geben Sie den folgenden Befehl ein:

    root@ubuntu:~/n8n-compose# sudo lsof -i :5678

  • Um einen Prozess zu beenden passen Sie den folgenden Befehl an und geben Sie diesen ein:

    root@ubuntu:~/n8n-compose# sudo kill PID_HIER_EINSETZEN

  • Nach der Anpassung geben Sie den folgenden Befehl ein, um die alten Container zu stoppen:

    root@ubuntu:~/n8n-compose# docker compose down

  •  
  • Um die im compose.yaml definierten Container als Daemons im Hintergrund zu starten, geben Sie den unten stehenden Befehl ein. Durch diesen Befehl werden die Traefik- und n8n-Instanzen gestartet und konfiguriert.

    root@ubuntu:~/n8n-compose# docker compose up -d

  • Um zu prüfen, ob die Container laufen, geben Sie den folgenden Befehl ein:

    root@ubuntu:~/n8n-compose# docker ps

  • Stellen Sie sicher, dass die folgenden 2 Container laufen und deren Status “UP” lautet. Geben Sie hierzu die folgenden Befehle ein.

    root@ubuntu:~/n8n-compose# n8n-compose-traefik-1
    root@ubuntu:~/n8n-compose# n8n-compose-n8n-1

Auf die n8n-Oberfläche zugreifen

Nachdem die Docker-Dienste (Container) erfolgreich gestartet wurden, wird der Zugriff auf n8n durch den Traefik-Proxy verwaltet. Traefik sorgt für die SSL-Verschlüsselung und leitet Anfragen an Ihre n8n-Instanz weiter. Der Zugriff erfolgt nun ausschließlich über die Domain, die Sie zuvor in der .env-Datei konfiguriert haben.

Hinweis

Der direkte Zugriff über http://SERVER-IP:5678 ist nicht mehr möglich. Die Konfiguration in der compose.yaml (unter ports: - "127.0.0.1:5678:5678") sorgt dafür, dass n8n nur "intern" (für Traefik) erreichbar ist, aber nicht öffentlich über die Server-IP.

  • Öffnen Sie Ihren Browser.
  • Geben Sie die vollständige, gesicherte URL ein, die sich aus den Variablen SUBDOMAIN und DOMAIN_NAME Ihrer .env-Datei zusammensetzt. Beispiel: https://n8n.example.com
  • Beim ersten Aufruf wird das Fenster Set up owner account angezeigt. Geben Sie im Feld E-Mail-Adresse die gewünschte E-Mail-Adresse ein.
  • Geben Sie im Feld First Name und Last Name den gewünschten Vor- und Nachnamen ein.
  • Geben Sie im Feld Password ein Passwort ein.
  • Klicken Sie auf Next. Das Fenster Customize n8n to you öffnet sich.
Screenshot: Das Fenster Setup owner account wird angezeigt. In diesem Fenster ist die Schaltfläche Next hervorgehoben.
Abbildung: Schaltfläche Next im Fenster Setup owner account
  • Beantworten Sie die Fragen im Fenster Customize n8n to you und klicken Sie auf Get started. Anschließend können Sie n8n nutzen. 
Screenshot: Das Fenster Customize n8n to you wird angezeigt. In diesem Fenster ist die Schaltfläche Get started hervorgehoben.
Abbildung: Schaltfläche Get started im Fenster Customize n8n to you