↓ Zum Hauptinhalt springen
  1. Anleitungen/

n8n installieren: Workflows auf dem eigenen Server automatisieren

Patrick Adams
Autor
Patrick Adams
Linux-Administrator und IT-Specialist. Ich schreibe über Server, Self-Hosting und Open-Source-Software, praxisnah und selbst getestet. Mehr über mich →
Inhaltsverzeichnis
Mit n8n verbindest du Dienste, Datenbanken und APIs zu automatischen Abläufen, ähnlich wie Zapier oder Make. Der Unterschied: Alles läuft auf deinem eigenen Server, und deine Daten verlassen ihn nur, wenn du es willst.
Systemvoraussetzungen: 2 CPU-Kerne, 4 GB RAM, 20 GB Speicher und Debian mit Root-Zugriff. Für Webhooks von außen brauchst du außerdem eine Domain und einen Reverse Proxy mit HTTPS.

Docker installieren
#

System aktualisieren
#

apt update && apt upgrade -y && apt install ca-certificates curl -y

Docker-Paketquelle einrichten
#

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list

Docker und Docker Compose installieren
#

apt update && apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Dockge installieren
#

Dockge einrichten
#

Dockge ist eine Weboberfläche, mit der du Docker-Compose-Stacks bequem im Browser verwaltest. Dieser Befehl legt die Verzeichnisse an und startet Dockge:

mkdir -p /opt/stacks /opt/dockge && cd /opt/dockge && curl -fsSL https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml -o compose.yaml && docker compose up -d

Dockge öffnen
#

Öffne Dockge im Browser und lege direkt dein Admin-Konto an:

http://IP-deines-Servers:5001
Lege das Admin-Konto in Dockge sofort an. Bis dahin kann jeder, der die Adresse aufruft, das Konto für sich anlegen.

n8n einrichten
#

Stack anlegen
#

Klicke in Dockge auf + Compose und gib unter „Allgemein“ den Stack-Namen n8n ein.

compose.yaml einfügen
#

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    depends_on:
      n8n-db:
        condition: service_healthy
    ports:
      - 127.0.0.1:5678:5678
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=n8n-db
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - N8N_HOST=${N8N_DOMAIN}
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://${N8N_DOMAIN}/
      - GENERIC_TIMEZONE=Europe/Berlin
      - TZ=Europe/Berlin
    volumes:
      - ./data/n8n:/home/node/.n8n
    networks:
      - internal
      - default

  n8n-db:
    image: postgres:17
    container_name: n8n-db
    restart: unless-stopped
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - internal

networks:
  internal:

n8n ist damit nur auf dem Server selbst erreichbar. Von außen kommst du über einen Reverse Proxy mit HTTPS darauf, mehr dazu weiter unten.

Umgebungsvariablen in der .env festlegen
#

Trag unten rechts im Feld für die .env diese Werte ein:

N8N_DOMAIN=n8n.deine-domain.de
N8N_ENCRYPTION_KEY=hier-ein-langer-zufallswert
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=dein-datenbank-passwort

Sichere Zufallswerte erzeugst du so:

openssl rand -hex 32
Sichere den N8N_ENCRYPTION_KEY gut, zum Beispiel in deinem Passwortmanager. Mit ihm verschlüsselt n8n alle gespeicherten Zugangsdaten. Geht er verloren, kannst du sie nach einem Umzug oder einer Wiederherstellung nicht mehr nutzen.

Stack starten
#

Klicke auf Speichern und dann auf Deploy.

n8n erreichbar machen
#

Über einen Reverse Proxy mit HTTPS
#

Leite deine Domain n8n.deine-domain.de über einen Reverse Proxy mit HTTPS auf http://127.0.0.1:5678 weiter, zum Beispiel mit CloudPanel, dem Nginx Proxy Manager oder Traefik. Das ist der empfohlene Weg, denn Webhooks von außen funktionieren nur so.

Zum Testen per SSH-Tunnel
#

Willst du n8n erst einmal ausprobieren, geht es auch ohne Domain. Bau von deinem Rechner aus einen SSH-Tunnel auf:

ssh -L 5678:localhost:5678 root@IP-deines-Servers

Solange die Verbindung offen ist, erreichst du n8n unter http://localhost:5678.

Erste Anmeldung
#

Beim ersten Aufruf legst du direkt dein Owner-Konto an, also den Hauptbenutzer mit allen Rechten. Danach kannst du deinen ersten Workflow erstellen.

Leg das Owner-Konto sofort nach dem ersten Start an. Bis dahin kann jeder, der n8n erreicht, das Konto für sich anlegen.

n8n aktualisieren
#

cd /opt/stacks/n8n && docker compose pull && docker compose up -d

Schau vor größeren Updates kurz in die Versionshinweise von n8n. Bei neuen Hauptversionen ändern sich manchmal Einstellungen.

Verwandte Artikel