Wähle einen Artikel
n8n Docker Installation

0. Überblick

Flexibel, leistungsstark und sofort einsatzbereit – dein dogado vServer

Der dogado vServer/VPS bietet dir volle Kontrolle, hohe Performance und flexible Ressourcen. Ideal für Websites, Shops und Anwendungen – sofort einsatzbereit, sicher gehostet in deutschen Rechenzentren.

Server-Racks mit blauer Beleuchtung, Frontpaneele mit Laufwerkschächten, Lüftungsgitter und Netzwerkausrüstung.

n8n installieren

1.1 Einleitung

In der Welt der Automatisierungstools hat sich n8n schnell von einem Geheimtipp zu einer der leistungsfähigsten Plattformen entwickelt. Im Gegensatz zu geschlossenen Systemen verfolgt n8n einen "Fair-Code"-Ansatz. Das bedeutet: Der Quellcode ist verfügbar, und das Tool kann entweder in der Cloud genutzt oder – was für Datenschutz und Flexibilität entscheidend ist – auf dem eigenen Server selbst gehostet werden. 

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 12 Betriebssystem. n8n werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um n8n neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu findet ihr hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren 

1.3.1 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von n8n abspeichen. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/n8n

Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von n8n beginnen. Dazu öffnet ihr folgende Datei:

nano /opt/containers/n8n/docker-compose.yml

Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren n8n Container.

services:
  n8n-postgres:
    image: postgres:16
    restart: unless-stopped
    env_file:
      - ./.env
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_NON_ROOT_USER=${POSTGRES_NON_ROOT_USER}
      - POSTGRES_NON_ROOT_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
    volumes:
      - db_storage:/var/lib/postgresql/data
      - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
      interval: 5s
      timeout: 5s
      retries: 10
    networks:
      - default
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: unless-stopped
    env_file:
      - ./.env
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=n8n-postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
    links:
      - n8n-postgres
    volumes:
      - n8n_storage:/home/node/.n8n
    depends_on:
      n8n-postgres:
        condition: service_healthy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.n8n.entrypoints=http"
      - "traefik.http.routers.n8n.rule=Host(`n8n.euredomain.de`)"
      - "traefik.http.middlewares.n8n-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.n8n.middlewares=n8n-https-redirect"
      - "traefik.http.routers.n8n-secure.entrypoints=https"
      - "traefik.http.routers.n8n-secure.rule=Host(`n8n.euredomain.de`)"
      - "traefik.http.routers.n8n-secure.tls=true"
      - "traefik.http.routers.n8n-secure.tls.certresolver=http"
      - "traefik.http.routers.n8n-secure.service=n8n"
      - "traefik.http.services.n8n.loadbalancer.server.port=5678"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.n8n-secure.middlewares=secHeaders@file"
    networks:
      - proxy
      - default
networks:
  proxy:
    external: true
 
volumes:
  db_storage:
  n8n_storage:

1.3.3 Hostname anpassen

Nun müsst ihr noch den Hostnamen anpassen, über welchen später n8n erreichbar sein soll.

Diese beiden Zeilen müsst ihr anpassen.

    - "traefik.http.routers.n8n.rule= Host(`n8n.euredomain.de`)"
    - "traefik.http.routers.n8n-secure.rule= Host(`n8n.euredomain.de`)"

In meinem Fall also:

    - "traefik.http.routers.n8n.rule= Host(`n8n.testbereich.net`)"
    - "traefik.http.routers.n8n-secure.rule= Host(`n8n.testbereich.net`)"

1.3.4 Konfigurationsdatei anlegen

Nun legen wir noch eine Konfigurationsdatei an, welche wichtige Infos zur Datenbank beinhaltet. Dazu gebt ihr folgendes ein:

nano /opt/containers/n8n/.env

Inhalt:

POSTGRES_USER=changeUser
POSTGRES_PASSWORD=changePassword
POSTGRES_DB=n8n
POSTGRES_NON_ROOT_USER=changeUser
POSTGRES_NON_ROOT_PASSWORD=changePassword

Diese Daten könnt ihr nun beliebig anpassen.

1.3.5 Datenbank Initialisierungsskript erstellen

Jetzt benötigen wir noch ein Skript, welches die Datenbank beim ersten Start für uns initialisiert. Dafür gebt ihr folgendes ein:

nano /opt/containers/n8n/init-data.sh

Inhalt:

#!/bin/bash
set -e;
if [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then
        psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
                CREATE USER ${POSTGRES_NON_ROOT_USER} WITH PASSWORD '${POSTGRES_NON_ROOT_PASSWORD}';
                GRANT ALL PRIVILEGES ON DATABASE ${POSTGRES_DB} TO ${POSTGRES_NON_ROOT_USER};
                GRANT CREATE ON SCHEMA public TO ${POSTGRES_NON_ROOT_USER};
EOSQL
else
        echo "SETUP INFO: No Environment variables given!"
fi

n8n starten

Gebt nun folgendes ein, um euren n8n Container zu starten:

docker compose -f /opt/containers/n8n/docker-compose.yml up -d

Beim ersten Start des Containers wird n8n initialisiert. Dies bedeutet, dass die Datenbank eingerichtet, eure Einstellungen übernommen werden und vieles mehr. Daher dauert es einige Minuten, bis der Container dann über die Webseite (z.B. n8n.testbereich.net) erreichbar ist.

2.1 n8n einrichten

Ihr werdet nun aufgefordert einen Benutzer zu erstellen. Gebt hier eure persönlichen Daten ein.

Bild eines Registrierungsformulars: Titel Set up owner account, Felder Email, Vorname, Nachname, Passwort, Checkbox, Next.

Nun werdet ihr noch einiges über euch gefragt.

Dies könnt ihr überspringen, indem ihr auf „Get started“ klickt. Im letzten Schritt könnt ihr euch nun noch beim Hersteller registrieren, damit ihr zusätzliche Features aktivieren könnt.

Screenshot einer Software-Seite mit Überschrift, drei Feature-Punkte, E-Mail-Eingabefeld und Button.

Diesen Schritt könnt ihr mittels „Skip“ überspringen. Nun ist n8n fertig eingerichtet.

Helles Dashboard: linke vertikale Leiste, zentrale Karte 'Start from scratch' mit Dokument-Symbol, darunter Vorlagenkarten.

Flexibel, leistungsstark und sofort einsatzbereit – dein dogado vServer

Der dogado vServer/VPS bietet dir volle Kontrolle, hohe Performance und flexible Ressourcen. Ideal für Websites, Shops und Anwendungen – sofort einsatzbereit, sicher gehostet in deutschen Rechenzentren.

Server-Racks mit blauer Beleuchtung, Frontpaneele mit Laufwerkschächten, Lüftungsgitter und Netzwerkausrüstung.
Weitere passende Themen