n8n AI-Agenten: Dein smartes Home-Lab-Gehirn mit Docker
Servus, liebe Home-Lab-Enthusiasten und Admins! Wer von uns kennt das nicht: Unzählige kleine Aufgaben, die sich im Laufe des Tages ansammeln und die wertvolle Zeit fressen, die wir lieber in spannende Projekte oder einfach nur in ein kühles Feierabendbier investieren würden. Genau hier kommt n8n ins Spiel – und in meiner Welt hat es sich zu einem unverzichtbaren Werkzeug entwickelt, um mein digitales Leben und mein Home Lab zu automatisieren.
In den letzten Monaten habe ich mich intensiv mit den neuen KI-Agenten-Funktionen in n8n auseinandergesetzt. Und was soll ich sagen? Das ist Game Changer! Stell dir vor, du hast eine kleine Armee von digitalen Assistenten, die 24/7 für dich schuften, E-Mails vorsortieren, Termine planen oder dir relevante Infos aus dem Netz ziehen. Klingt nach Zukunftsmusik? Ist es nicht! Ich zeige dir heute, wie du deinen eigenen n8n-Server mit Docker aufsetzt und erste Schritte mit KI-Agenten machst. Das ist kein Hexenwerk, versprochen!
Für smoth.me schreibe ich diesen Guide, weil ich selbst oft über die kleinen Stolpersteine gestolpert bin, die in scheinbar einfachen Setups lauern. Mein Ziel ist es, dir einen praxisnahen Weg zu zeigen, der dich direkt ins Tun bringt und dir die Frustration erspart, die ich manchmal hatte. Also, Ärmel hoch und los geht’s!
Voraussetzungen: Was du mitbringen solltest
Bevor wir uns ins Getümmel stürzen, lass uns kurz klären, was du für dieses Abenteuer brauchst. Keine Sorge, das Meiste davon hast du wahrscheinlich schon in deinem Home Lab am Start:
- Ein Linux-Server: Ob das ein Raspberry Pi, ein alter NUC, ein Proxmox-LXC oder eine VM ist, spielt keine große Rolle. Wichtig ist, dass er stabil läuft und du SSH-Zugriff hast. Für n8n mit KI-Agenten würde ich persönlich mindestens 2 GB RAM und 2 CPU-Kerne empfehlen, gerade wenn du später komplexere Workflows laufen lässt. In meiner Erfahrung ist mehr RAM hier immer besser, besonders wenn du viele Workflows gleichzeitig aktiv hast.
- Docker und Docker Compose: Das ist unsere Basis. Wenn du das noch nicht installiert hast, hol das bitte nach. Eine schnelle Suche nach "Docker installieren Ubuntu" oder "Docker Compose installieren" bringt dich zu den offiziellen Anleitungen, die meistens tadellos funktionieren.
- Grundkenntnisse Linux-Kommandozeile: Du solltest dich auf der Shell einigermaßen wohlfühlen. Dateisystemnavigation, das Bearbeiten von Textdateien mit `nano` oder `vim` und das Ausführen von Befehlen sollten dir geläufig sein.
- Verfügbarer Port 5678: n8n läuft standardmäßig auf diesem Port. Stelle sicher, dass er auf deinem Server nicht von einem anderen Dienst belegt ist.
- (Optional, aber empfohlen) OpenAI API Key: Um die KI-Agenten wirklich nutzen zu können, brauchst du einen Zugang zu einem Large Language Model (LLM). OpenAI ist hier der De-facto-Standard, aber n8n unterstützt auch andere Anbieter. Besorge dir einen API Key und stelle sicher, dass du ein Guthaben hinterlegt hast – die Nutzung kostet Geld, wenn auch meist nur Centbeträge pro Anfrage.
- (Optional, aber empfohlen) Reverse Proxy: Wenn du n8n später über eine eigene Domain erreichbar machen willst (z.B.
n8n.deine-domain.de) und SSL/TLS nutzen möchtest, ist ein Reverse Proxy wie Nginx Proxy Manager oder Traefik eine hervorragende Wahl. Für den Anfang ist es aber nicht zwingend notwendig.
Sind alle Häkchen gesetzt? Perfekt, dann legen wir los!
n8n mit Docker Compose installieren: Dein Home-Lab-Gehirn startet
Die Installation von n8n ist dank Docker Compose ein Kinderspiel. Wir erstellen ein Verzeichnis für unsere n8n-Konfiguration, legen eine docker-compose.yml-Datei an und starten den Container. Ich mache das immer in einem separaten Ordner unter /opt/docker oder ~/docker, um Ordnung zu halten.
1. Verzeichnis anlegen und wechseln
Zuerst erstellen wir ein Verzeichnis für n8n und wechseln hinein. Das hält alles schön sauber und übersichtlich.
mkdir /opt/docker/n8n
cd /opt/docker/n8n
2. Die docker-compose.yml erstellen
Jetzt kommt der wichtigste Teil: die docker-compose.yml. Diese Datei definiert, wie Docker n8n starten soll. Wir nutzen hier ein paar wichtige Umgebungsvariablen, die für den stabilen und sicheren Betrieb unerlässlich sind.
Mein Tipp: Erstelle die Datei mit nano docker-compose.yml und füge den folgenden Inhalt ein. Achte besonders auf die Platzhalter für Passwörter und den Verschlüsselungsschlüssel – die solltest du unbedingt anpassen!
version: '3.8'
services:
n8n:
image: n8n.io/n8n
container_name: n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=localhost # Oder deine Domain, wenn du einen Reverse Proxy nutzt
- N8N_PORT=5678
- N8N_PROTOCOL=http # Oder https, wenn ein Reverse Proxy SSL handhabt
- WEBHOOK_URL=http://localhost:5678/ # Wichtig für Webhooks, anpassen!
- N8N_BASIC_AUTH_USER=dein_benutzername
- N8N_BASIC_AUTH_PASSWORD=dein_sicheres_passwort
- N8N_ENCRYPTION_KEY=dein_super_geheimer_schluessel_mit_mindestens_32_zeichen
- GENERIC_TIMEZONE=Europe/Berlin # Oder deine Zeitzone
- TZ=Europe/Berlin
- N8N_DIAGNOSTICS_ENABLED=false # Ich deaktiviere das immer aus Datenschutzgründen
- N8N_EMAIL_MODE=smtp # Wenn du E-Mails versenden willst
- N8N_SMTP_HOST=smtp.deinprovider.de
- N8N_SMTP_PORT=587
- N8N_SMTP_USER=deine_email@deinprovider.de
- N8N_SMTP_PASSWORD=dein_email_passwort
- N8N_SMTP_SENDER=deine_email@deinprovider.de
- N8N_SMTP_SSL_AUTO=true
- N8N_DEFAULT_EMAIL_SENDER=deine_email@deinprovider.de
# OpenAI API Key für KI-Agenten
- N8N_ENV_OPENAI_API_KEY=sk-DEIN_OPENAI_API_KEY
volumes:
- ./data:/home/node/.n8n
networks:
- n8n_network
networks:
n8n_network:
driver: bridge
Wichtig zu wissen:
N8N_HOSTundWEBHOOK_URL: Wenn du n8n später über eine Domain erreichst (z.B. mit Nginx Proxy Manager), musst dulocalhost:5678durch deine vollständige Domain ersetzen (z.B.https://n8n.deine-domain.de/) undN8N_PROTOCOLaufhttpssetzen. Das ist entscheidend, damit Webhooks und Links in n8n korrekt funktionieren. Wer das zum ersten Mal einrichtet, stolpert oft über falsch konfigurierte Webhook-URLs.N8N_BASIC_AUTH_USERundN8N_BASIC_AUTH_PASSWORD: Das sind die Zugangsdaten für die n8n-Oberfläche. Wähle hier unbedingt sichere Werte!N8N_ENCRYPTION_KEY: Dieser Schlüssel wird verwendet, um sensible Daten in n8n (wie API-Keys für externe Dienste) zu verschlüsseln. Generiere hierfür eine lange, zufällige Zeichenkette (mindestens 32 Zeichen!). Ein einfacherapg -a 1 -m 32 -n 1auf Linux kann dir helfen oder nutze einen Online-Generator. Ändere diesen Schlüssel niemals nachträglich, sonst kannst du deine verschlüsselten Anmeldeinformationen nicht mehr entschlüsseln! Das hat mir schon mal Kopfzerbrechen bereitet.GENERIC_TIMEZONE/TZ: Wichtig für korrekte Zeitstempel in deinen Workflows.N8N_ENV_OPENAI_API_KEY: Hier kommt dein OpenAI API Key rein. Ich setze den Key direkt als Umgebungsvariable im Docker Compose, so ist er für alle AI-Nodes verfügbar. Alternativ kannst du ihn auch später in der n8n-UI als Credential hinterlegen.volumes: - ./data:/home/node/.n8n: Dieser Mountpoint sorgt dafür, dass deine n8n-Daten (Workflows, Credentials, Einstellungen) persistent gespeichert werden. Auch wenn du den Container neu erstellst, bleiben deine Daten erhalten. Das ist Gold wert!
3. n8n starten
Nachdem die docker-compose.yml gespeichert ist, können wir n8n starten. Der -d Parameter sorgt dafür, dass der Container im Hintergrund läuft.
docker compose up -d
Es dauert einen Moment, bis Docker das Image heruntergeladen und den Container gestartet hat. Du kannst den Status mit docker compose ps überprüfen.
docker compose ps
Wenn alles grün ist, ist n8n bereit!
4. Erster Login
Öffne deinen Browser und navigiere zu http://DEINE_SERVER_IP:5678 (oder http://localhost:5678, wenn du direkt auf dem Server arbeitest). Du solltest die Login-Seite von n8n sehen. Gib die Zugangsdaten ein, die du in der docker-compose.yml unter N8N_BASIC_AUTH_USER und N8N_BASIC_AUTH_PASSWORD festgelegt hast.
Herzlichen Glückwunsch! Du bist drin. Die Oberfläche mag auf den ersten Blick etwas überwältigend wirken, aber du wirst dich schnell zurechtfinden.
Dein erster KI-Agent in n8n – Das Workflow-Setup
Jetzt kommen wir zum spannenden Teil: den KI-Agenten. n8n ermöglicht es uns, komplexe Aufgaben an ein LLM zu delegieren und diesem Werkzeuge an die Hand zu geben, um diese Aufgaben zu lösen. Stell dir vor, du hast einen "Hauptagenten", der eine Anfrage erhält und dann entscheidet, ob er einen "E-Mail-Agenten", einen "Kalender-Agenten" oder einen "Internet-Agenten" (also spezifische Tools) nutzen muss, um seine Aufgabe zu erfüllen.
1. Grundlagen der Agenten-Workflows
In n8n baust du solche Agenten, indem du einen "Agent" Node verwendest. Dieser Node ist das Gehirn deines Agenten. Du konfigurierst ihn mit einem LLM (z.B. OpenAI) und gibst ihm eine "System Message" – das ist die Anleitung, wie sich dein Agent verhalten soll. Zusätzlich definierst du die "Tools", die der Agent nutzen kann.
Die Tools sind im Grunde andere n8n-Nodes oder spezialisierte Agent-Nodes, die bestimmte Aktionen ausführen können. Das könnte sein:
- E-Mail senden (mit einem E-Mail-Node)
- Websuche durchführen (mit einem HTTP Request Node oder einem spezialisierten Web Search Node)
- Kalendereintrag erstellen (mit einem Google Calendar Node)
- Datenbankabfragen (mit einem Datenbank-Node)
Das Coole ist: Der Agent entscheidet selbst, wann er welches Tool braucht, basierend auf der Aufgabe, die du ihm stellst!
2. Konkretes Beispiel: Ein einfacher E-Mail-Assistent
Lass uns einen einfachen Workflow bauen, der als E-Mail-Assistent fungiert. Er soll in der Lage sein, E-Mails zu senden und Informationen aus dem Internet zu suchen, um eine E-Mail zu beantworten oder zu verfassen.
a) Neuen Workflow erstellen
Klicke in n8n links oben auf "Workflows" und dann auf "New Workflow".
b) Trigger hinzufügen
Wir starten mit einem einfachen "Manual Trigger" oder einem "Webhook Trigger", wenn du den Agenten von außen ansprechen möchtest. Für den Anfang ist ein "Manual Trigger" super, um alles zu testen.
c) Den "Agent" Node hinzufügen
Füge einen "Agent" Node hinzu und verbinde ihn mit deinem Trigger. Im "Agent" Node konfigurierst du folgendes:
- LLM Provider: Wähle "OpenAI" und deine OpenAI Credential (falls du es nicht über die Umgebungsvariable gesetzt hast, kannst du hier ein neues Credential anlegen und deinen API Key eingeben).
- Model: Wähle ein leistungsstarkes Modell wie "gpt-4o" oder "gpt-4-turbo". Für den Anfang tut es auch "gpt-3.5-turbo", aber die Ergebnisse sind oft besser mit den größeren Modellen.
- System Message: Hier definierst du die Rolle deines Agenten. Sei hier präzise!
Du bist ein hilfsbereiter E-Mail-Assistent. Deine Aufgabe ist es, E-Mails zu verfassen oder zu beantworten. Du kannst das Internet nutzen, um Informationen zu recherchieren, und E-Mails senden. Wenn du eine E-Mail sendest, musst du immer eine Bestätigung zurückgeben, dass die E-Mail gesendet wurde. - Human Input: Hier gibst du die eigentliche Aufgabe an den Agenten. Für den Test kannst du hier einen festen Text eingeben, später kommt das dynamisch aus einem vorherigen Node (z.B. dem Webhook oder einer E-Mail, die du empfangen hast).
Schreibe eine E-Mail an max.mustermann@example.com mit dem Betreff "Anfrage zu Projekt X". Frage, ob der Projektplan für nächste Woche schon fertig ist und ob ich dabei unterstützen kann. Recherchiere vorher kurz die aktuellen Wettervorhersagen für Berlin für nächste Woche und füge diese Information freundlich in die E-Mail ein.
d) Tools definieren: Email Agent und Internet Agent
Jetzt definieren wir die Werkzeuge, die unser Agent nutzen kann. Im "Agent" Node unter dem Tab "Tools" kannst du neue Tools hinzufügen.
Tool 1: E-Mail senden (Email Agent)
- Klicke auf "Add Tool".
- Wähle als "Tool Type" "Custom".
- Tool Name:
sendEmail(Dieser Name ist wichtig, der Agent wird ihn später in seinem "Thought"-Prozess verwenden). - Tool Description:
Sendet eine E-Mail. Benötigt 'to', 'subject' und 'body'.(Diese Beschreibung ist entscheidend für den Agenten, um zu verstehen, wann er dieses Tool einsetzen soll). - Workflow: Hier verlinkst du einen separaten Sub-Workflow, der das Senden der E-Mail übernimmt.
Erstelle dazu einen neuen Workflow namens "Email Sender". Dieser Workflow sollte einen "Webhook" Trigger haben, der auf POST-Anfragen lauscht. Danach einen "Email" Node. Im "Email" Node konfigurierst du die Felder To, Subject und Body so, dass sie die Daten aus dem Webhook-Trigger verwenden (z.B. {{ $json.body.to }}). Aktiviere diesen Workflow. Kopiere die Webhook-URL und füge sie als "URL" in deinem sendEmail Tool im Haupt-Agent-Workflow ein.
Tool 2: Internetsuche (Internet Agent)
- Klicke erneut auf "Add Tool".
- Wähle als "Tool Type" "Custom".
- Tool Name:
webSearch - Tool Description:
Führt eine Websuche durch und gibt die Ergebnisse zurück. Benötigt 'query'. - Workflow: Auch hier verlinkst du einen Sub-Workflow.
Erstelle einen Workflow "Web Searcher". Trigger ist wieder ein "Webhook" (POST). Danach kommt ein "HTTP Request" Node oder ein spezialisierter "SerpApi" Node (wenn du einen SerpApi Key hast). Für den HTTP Request Node könntest du z.B. eine Google Custom Search API oder eine einfache DuckDuckGo-Suche nutzen. Konfiguriere den Query-Parameter so, dass er den Wert aus dem Webhook nutzt ({{ $json.body.query }}). Aktiviere den Workflow und kopiere die Webhook-URL in dein webSearch Tool.
Das Prinzip ist klar: Jeder "Agent" Node kann andere Workflows als "Tools" nutzen. Das macht n8n extrem flexibel!
3. Den Workflow testen
Speichere deinen Haupt-Agent-Workflow und klicke auf "Execute Workflow". Du wirst sehen, wie der Agent "denkt", welche Tools er benötigt, diese aufruft und dann die E-Mail verfasst und sendet. Im Output des Agent Nodes siehst du den gesamten Denkprozess, die Tool-Aufrufe und das finale Ergebnis.
Mein Tipp: Starte klein. Ein "Internet Agent", der nur eine Websuche macht, ist ein guter Anfang. Dann erweitere um den "Email Agent". Schritt für Schritt wirst du die Logik hinter den Agenten verstehen.
Häufige Fehler und Lösungen
Auch ich bin am Anfang über so manche Klippe gesegelt. Hier sind ein paar typische Probleme, die dir begegnen könnten, und wie du sie löst:
1. Portkonflikte bei n8n Start
Fehler: Der n8n-Container startet nicht, oder du siehst Fehlermeldungen wie "Address already in use" oder "Port 5678 is already allocated". Lösung: Ein anderer Dienst auf deinem Server nutzt bereits Port 5678.
- Überprüfe mit
sudo lsof -i :5678, welcher Prozess den Port belegt. - Beende den störenden Dienst oder ändere den Port in deiner
docker-compose.yml(z.B."5679:5678"). Denk daran, dann auchN8N_PORTundWEBHOOK_URLanzupassen!
2. Falsche Umgebungsvariablen (N8N_HOST, WEBHOOK_URL)
Fehler: Workflows mit Webhook-Triggern funktionieren nicht, oder generierte Links in n8n zeigen auf localhost, obwohl du n8n über eine Domain erreichst.
Lösung: Du hast N8N_HOST oder WEBHOOK_URL in der docker-compose.yml nicht korrekt angepasst.
- Wenn du einen Reverse Proxy nutzt, stelle sicher, dass
N8N_HOSTdeine vollständige Domain ist (z.B.n8n.deine-domain.de). N8N_PROTOCOLmuss aufhttpsstehen, wenn dein Reverse Proxy SSL terminiert.WEBHOOK_URLmuss die vollständige URL sein, unter der n8n von außen erreichbar ist (z.B.https://n8n.deine-domain.de/).- Nach Änderungen in der
docker-compose.ymlimmerdocker compose downgefolgt vondocker compose up -dausführen, damit die Änderungen übernommen werden.
3. OpenAI API Key Probleme
Fehler: Der Agent Node gibt Fehler bezüglich der API-Authentifizierung oder "Rate Limit Exceeded" aus. Lösung:
- Überprüfe deinen
N8N_ENV_OPENAI_API_KEYauf Tippfehler. - Stelle sicher, dass dein OpenAI-Konto über ausreichend Guthaben verfügt. Ohne Guthaben funktioniert es nicht.
- "Rate Limit Exceeded" kann bedeuten, dass du zu viele Anfragen in kurzer Zeit stellst. Das passiert seltener bei den Basispaketen, aber es ist gut, es zu wissen. Warte einen Moment und versuche es erneut.
- Für produktive Umgebungen solltest du überlegen, den OpenAI API Key nicht direkt in der
docker-compose.ymlzu hinterlegen, sondern als n8n Credential zu verwalten und dieses dann in den Nodes auszuwählen. Das ist flexibler und sicherer, wenn mehrere Leute auf n8n zugreifen.
Fazit und nächste Schritte
Puh, das war jetzt eine ganze Menge Input! Aber ich hoffe, du hast jetzt ein solides Fundament, um n8n in deinem Home Lab zu installieren und deine ersten KI-Agenten zu bauen. Die Möglichkeiten, die n8n in Kombination mit LLMs bietet, sind schlichtweg phänomenal. Du hast nun ein Werkzeug in der Hand, um Aufgaben zu automatisieren, die bisher manuell oder mit komplexen Skripten gelöst werden mussten.
Für mich persönlich ist n8n zu einem echten Game Changer geworden. Es ist unglaublich befriedigend zu sehen, wie die kleinen digitalen Helferlein im Hintergrund arbeiten und mir den Rücken freihalten. Das hat mir schon viel Zeit gespart, die ich dann in andere spannende Projekte stecken konnte.
Was sind die nächsten Schritte?
- Experimentiere! Spiele mit den "System Messages" der Agenten. Je präziser und klarer deine Anweisungen, desto besser die Ergebnisse.
- Erweitere deine Tools: Füge weitere Tools hinzu, wie z.B. einen Google Calendar Agent, der Termine plant, oder einen "Internet Agent" mit spezifischen Suchfunktionen.
- Integration: Verbinde n8n mit Home Assistant, um auf Smarthome-Events zu reagieren, oder mit deinem E-Mail-Postfach, um eingehende E-Mails automatisch zu verarbeiten.
- Lerne von der Community: Die n8n-Community ist riesig und sehr hilfsbereit. Schau dir Beispiele an, lass dich inspirieren und teile deine eigenen Workflows.
Viel Spaß beim Automatisieren und beim Aufbau deiner eigenen KI-Agenten-Armee! Wenn du Fragen hast oder über deine Erfolge berichten möchtest, lass es mich wissen – wir sind ja eine Community!