EUR
european

EUR

usa

USD

Ex. VAT Ex. VAT 0%

Installation des n8n AI Starter Kits mit Ollama

Das Self-hosted AI Starter Kit ist eine Docker-Compose-Vorlage des n8n-Teams zum Erstellen von KI-Workflows, die vollständig auf Ihrem eigenen Server laufen. Prompts und Dokumente werden von einem lokalen Sprachmodell verarbeitet und nicht an externe KI-Dienste gesendet.

Das Kit besteht aus vier Komponenten:

  • n8n, die Plattform zur Workflow-Automatisierung mit KI-Nodes;
  • Ollama, das offene Sprachmodelle lokal ausführt;
  • Qdrant, eine Vektordatenbank zum Speichern und Durchsuchen von Dokument-Embeddings;
  • PostgreSQL, die Datenbank für n8n.

Das offizielle Kit wird von seinen Autoren als nur für Testzwecke gedacht gekennzeichnet. Zum Zeitpunkt der Erstellung dieser Anleitung weist es, wenn es wie in seiner README beschrieben ausgeführt wird, auf einem Server mit öffentlicher IP-Adresse mehrere Probleme auf: n8n, Ollama und Qdrant sind aus dem Internet erreichbar, Ollama und Qdrant besitzen keine Authentifizierung, die Secrets in der Konfiguration sind bei jeder Installation identisch, und der Demo-Workflow wird nicht importiert. Diese Anleitung installiert das Kit unverändert und behebt all das mit einer separaten Override-Datei, sodass Sie das Kit weiterhin aus seinem Repository aktualisieren können.

Diese Anleitung wurde für Ubuntu 24.04 LTS, n8n 2.47.3, Ollama 0.40.16, Qdrant 1.20.0, Docker 29 und Docker Compose v5 geschrieben.

Bevor Sie beginnen

Sie benötigen:

  • einen Server mit Ubuntu 24.04 LTS und Root-Zugriff per SSH;
  • mindestens 15 GB freien Speicherplatz: Die Docker-Images belegen etwa 11 GB und das Standardmodell Llama 3.2 etwa 2 GB;
  • eine Domain oder Subdomain für n8n, zum Beispiel n8n.example.com, mit einem A-Record, der auf die IPv4-Adresse des Servers zeigt.

Info

Ohne GPU läuft das Modell auf der CPU und antwortet langsam. Für den regelmäßigen Einsatz wählen Sie einen Server mit NVIDIA-GPU.

Alle folgenden Befehle werden als root ausgeführt. Wenn Sie als normaler Benutzer mit sudo-Rechten arbeiten, stellen Sie jedem Befehl sudo voran.

Docker installieren

Installieren Sie Docker Engine und das Compose-Plugin aus dem offiziellen Docker-Repository:

apt update && apt install -y ca-certificates curl git install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc

Fügen Sie das Repository hinzu:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" > /etc/apt/sources.list.d/docker.list

Installieren Sie die Pakete und prüfen Sie die Versionen:

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

Das Kit herunterladen

Klonen Sie das Repository nach /opt und erstellen Sie die Konfigurationsdatei aus der Beispieldatei:

cd /opt git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git cd self-hosted-ai-starter-kit cp .env.example .env

Die Standard-Secrets ersetzen

Die Beispieldatei enthält feste Werte, etwa password für PostgreSQL und super-secret-key für den Verschlüsselungsschlüssel von n8n. Sie sind in jeder Kopie des Kits gleich, ersetzen Sie sie daher durch zufällige Werte:

sed -i "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$(openssl rand -hex 24)/" .env sed -i "s/^N8N_ENCRYPTION_KEY=.*/N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)/" .env sed -i "s/^N8N_USER_MANAGEMENT_JWT_SECRET=.*/N8N_USER_MANAGEMENT_JWT_SECRET=$(openssl rand -hex 32)/" .env chmod 600 .env

N8N_ENCRYPTION_KEY verschlüsselt die Zugangsdaten (Credentials), die Sie in n8n speichern. N8N_USER_MANAGEMENT_JWT_SECRET signiert Benutzersitzungen.

Warning

Kopieren Sie die Datei .env an einen sicheren Ort außerhalb des Servers, zum Beispiel in einen Passwortmanager. Ohne N8N_ENCRYPTION_KEY lassen sich in n8n gespeicherte Zugangsdaten nach einer Wiederherstellung nicht mehr entschlüsseln.

Ports schließen und HTTPS hinzufügen

In der Datei docker-compose.yml des Kits sind n8n (Port 5678), Ollama (11434) und Qdrant (6333) auf allen Netzwerkschnittstellen veröffentlicht. Docker legt für veröffentlichte Ports eigene Firewall-Regeln an, die UFW umgehen. Auf einem Server mit öffentlicher IP-Adresse bedeutet das: Jeder kann den n8n-Editor über unverschlüsseltes HTTP öffnen und die APIs von Ollama und Qdrant nutzen, die keine Authentifizierung besitzen.

Anstatt docker-compose.yml zu bearbeiten, erstellen Sie daneben die Datei docker-compose.override.yml. Docker Compose liest diese Datei automatisch und wendet sie auf die Hauptdatei an. Die eigenen Dateien des Kits bleiben unverändert, sodass ein Update aus dem Repository Ihre Einstellungen nicht überschreibt.

Erstellen Sie /opt/self-hosted-ai-starter-kit/docker-compose.override.yml und ersetzen Sie n8n.example.com durch Ihre Domain:

services: n8n: ports: !override - "127.0.0.1:5678:5678" environment: - N8N_HOST=n8n.example.com - N8N_PROTOCOL=https - N8N_PROXY_HOPS=1 - N8N_WEBHOOK_URL=https://n8n.example.com/ ollama-cpu: ports: !reset [] ollama-gpu: ports: !reset [] qdrant: ports: !reset [] caddy: image: caddy:2 restart: unless-stopped networks: ['demo'] ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config volumes: caddy_data: caddy_config:

Das ändert diese Datei:

  • n8n lauscht nur auf 127.0.0.1, und Benutzer erreichen es über Caddy per HTTPS;
  • Ollama und Qdrant werden überhaupt nicht veröffentlicht, n8n erreicht sie über das interne Docker-Netzwerk unter den Namen ollama und qdrant;
  • Caddy wird als Reverse-Proxy hinzugefügt, der ein Let's-Encrypt-Zertifikat bezieht und erneuert, sofern die Domain auf den Server zeigt und die Ports 80 und 443 offen sind;
  • die Daten-Volumes für n8n, PostgreSQL, Qdrant und Ollama bleiben so, wie sie in der docker-compose.yml des Kits definiert sind; die Override-Datei ändert sie nicht.

Info

Die Zeile networks: ['demo'] ist erforderlich. Alle Dienste des Kits laufen im Netzwerk demo, und ohne diese Zeile kann Caddy n8n nicht erreichen und gibt den Fehler 502 zurück.

N8N_WEBHOOK_URL legt die Adresse fest, die n8n für Webhooks verwendet, einschließlich des Chat-Fensters im Editor. Die Domain muss von dem Rechner aus, auf dem Sie n8n öffnen, auf Ihren Server aufgelöst werden. Ist das nicht der Fall, zeigt der Chat nur die Meldung „Failed to receive response" an, ohne DNS als Ursache zu nennen.

Erstellen Sie /opt/self-hosted-ai-starter-kit/Caddyfile mit Ihrer Domain:

n8n.example.com { reverse_proxy n8n:5678 }

Prüfen Sie die zusammengeführte Konfiguration:

docker compose --profile cpu config | grep -A4 "ports:"

Aufgelistet sein sollten nur n8n auf 127.0.0.1:5678 und Caddy auf den Ports 80 und 443.

Die Firewall konfigurieren

Die Override-Datei hält die internen Dienste des Kits bereits aus dem Netzwerk heraus. UFW blockiert den gesamten übrigen eingehenden Datenverkehr zum Server, mit Ausnahme von SSH, HTTP und HTTPS. Erlauben Sie diese und aktivieren Sie UFW:

ufw allow OpenSSH ufw allow 80/tcp ufw allow 443/tcp ufw --force enable

Das Kit starten

Starten Sie den Stack im CPU-Modus:

docker compose --profile cpu up -d

Beim ersten Start lädt Docker etwa 11 GB an Images herunter, und ein separater Container lädt das Modell Llama 3.2 herunter. Das dauert je nach Verbindungsgeschwindigkeit eine Weile. Prüfen Sie, ob das Modell vorhanden ist:

docker exec ollama ollama list

Die Liste sollte llama3.2:latest enthalten.

Prüfen Sie, dass auf dem Server nur die erwarteten Ports offen sind:

ss -tlnp

Die Ports 80 und 443 sollten auf allen Schnittstellen offen sein, Port 5678 nur auf 127.0.0.1. Die Ports 11434 und 6333 dürfen nicht in der Liste erscheinen.

Info

Das Kit verwendet PostgreSQL 16. Im n8n-Log kann eine Warnung erscheinen, dass diese Version außerhalb des unterstützten Bereichs liegt. Diese Warnung beeinträchtigt die Funktion von n8n nicht.

Den Demo-Workflow importieren

Das Kit enthält einen Demo-Workflow und zwei Demo-Zugangsdaten. Sie sollten eigentlich beim ersten Start importiert werden, doch zum Zeitpunkt der Erstellung besteht die Importprüfung in der docker-compose.yml des Kits nie, sodass nichts importiert wird. Führen Sie den Import manuell aus:

docker compose --profile cpu run --rm n8n-import -c "n8n import:credentials --separate --input=/demo-data/credentials" docker compose --profile cpu run --rm n8n-import -c "n8n import:workflow --separate --input=/demo-data/workflows"

Die Option -c ist erforderlich: Der Dienst n8n-import startet eine Shell, und ohne -c schlägt der Befehl mit der Fehlermeldung „can't open 'n8n'" fehl.

Das Owner-Konto erstellen

Öffnen Sie https://n8n.example.com in Ihrem Browser und erstellen Sie das Owner-Konto: Geben Sie Ihre E-Mail-Adresse, Ihren Vor- und Nachnamen sowie ein Passwort mit mindestens 8 Zeichen, mindestens einer Ziffer und mindestens einem Großbuchstaben ein. Nach der ersten Anmeldung zeigt n8n möglicherweise eine kurze Umfrage und das Angebot eines kostenlosen Lizenzschlüssels für einige Funktionen der Community Edition an. Beides ist optional.

Die Übersichtsseite listet den importierten Demo workflow auf.

Die Demo-Zugangsdaten korrigieren

Die Demo-Zugangsdaten wurden mit dem Standardschlüssel aus .env.example verschlüsselt. Nachdem Sie N8N_ENCRYPTION_KEY ersetzt haben, kann n8n sie nicht mehr entschlüsseln, daher müssen beide erneut ausgefüllt werden. Die Einstellungen werden mit Ihrem eigenen Schlüssel verschlüsselt gespeichert.

Öffnen Sie Overview, wechseln Sie zum Tab Credentials und öffnen Sie Local Ollama service. Die Verbindung schlägt fehl, und das Feld Base URL zeigt http://localhost:11434. Innerhalb des n8n-Containers ist localhost n8n selbst, nicht Ollama.

Setzen Sie Base URL auf http://ollama:11434, lassen Sie API Key leer und klicken Sie auf Save. n8n testet die Verbindung und zeigt Connection tested successfully an.

Öffnen Sie Local QdrantApi database. Setzen Sie Qdrant URL auf http://qdrant:6333, lassen Sie API Key leer und klicken Sie auf Save.

Den Demo-Workflow testen

Öffnen Sie Demo workflow. Er enthält drei Nodes: Chat Trigger empfängt eine Nachricht, Basic LLM Chain reicht sie an das Modell weiter, und Ollama Chat Model sendet sie an Llama 3.2 in Ollama.

Klicken Sie unten auf der Arbeitsfläche (Canvas) auf Open chat und senden Sie eine kurze Frage. Die Nodes werden während der Ausführung des Workflows grün, und die Antwort des Modells erscheint im Chat. Die erste Antwort dauert länger, weil Ollama das Modell in den Arbeitsspeicher lädt.

Zeigt der Chat „Failed to receive response" an und startet der Workflow nicht, prüfen Sie, ob die Domain in N8N_WEBHOOK_URL von Ihrem Rechner aus auf Ihren Server aufgelöst wird.

Eine NVIDIA-GPU verwenden

Verfügt der Server über eine NVIDIA-GPU, kann das Kit Ollama darauf ausführen. Dafür benötigt Docker das NVIDIA Container Toolkit. Wenn Sie die GPU auf diesem Server noch nicht mit Docker verwendet haben, installieren Sie es zuerst gemäß der Ollama-Docker-Anleitung.

Starten Sie das Kit anschließend mit dem Profil gpu-nvidia statt cpu:

docker compose --profile gpu-nvidia up -d

Die obige Override-Datei schließt den Ollama-Port für dieses Profil bereits. Verwenden Sie dasselbe Profil in allen weiteren Befehlen. Zum Beispiel den Demo-Import mit dem GPU-Profil:

docker compose --profile gpu-nvidia run --rm n8n-import -c "n8n import:credentials --separate --input=/demo-data/credentials" docker compose --profile gpu-nvidia run --rm n8n-import -c "n8n import:workflow --separate --input=/demo-data/workflows"

Und das Update:

cd /opt/self-hosted-ai-starter-kit git pull docker compose --profile gpu-nvidia pull docker compose --profile gpu-nvidia up -d

Das Kit aktualisieren

Um die Dateien und Images des Kits zu aktualisieren, führen Sie die Befehle mit dem von Ihnen verwendeten Profil aus:

cd /opt/self-hosted-ai-starter-kit git pull docker compose --profile cpu pull docker compose --profile cpu up -d

Ihre Dateien docker-compose.override.yml, Caddyfile und .env sind nicht Teil des Repositorys, daher ändert git pull sie nicht.

Wie geht es weiter?

Das Kit ist bereit für Ihre eigenen KI-Workflows. Von hier aus können Sie:

  • weitere Modelle mit docker exec ollama ollama pull gefolgt vom Modellnamen herunterladen und sie im Node Ollama Chat Model auswählen;
  • Qdrant nutzen, um Ihre eigenen Dokumente mit den Vector-Store-Nodes in n8n zu durchsuchen;
  • Ihre Dienste anbinden und Workflows erstellen, die sie mit dem lokalen Modell kombinieren.

Für eine allgemeine n8n-Installation ohne KI-Komponenten lesen Sie die Anleitung Installation von n8n mit Docker und PostgreSQL. Sie erklärt auch, wie Sie eine n8n-Datenbank sichern und wiederherstellen.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • kingdom
  • germany
  • Español
  • French
  • Hrvatska
  • Italiano
  • Poland
  • Slovenski
  • ukraine
  • Türkçe
  • Русский
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA