AI-gestützter Self-Hosted Speiseplaner mit n8n & Kubernetes
Projektüberblick
Dieses Projekt automatisiert die wöchentliche Speiseplanung mithilfe eines selbst gehosteten n8n-Workflows, der auf unserem privaten Kubernetes-Cluster betrieben wird.
Über die Tandoor Recipes API werden Rezepte abgefragt, an eine strukturierte Prompt in ChatGPT übergeben und als vollständiger Wochenplan generiert.
Das System ist bis auf das LLM lokal betrieben und zeigt, wie KI-Automatisierung, API-Integration und Workflow-Orchestrierung in einer privaten Cloud-Umgebung zusammenspielen.
Ich habe das Projekt gemeinsam mit meinem Mann Florian Weinzettl (Senior SysAdmin & DevOps Engineer) umgesetzt. Er war der Systemarchitekt und mein technischer Sparringspartner.
Der Workflow wird derzeit im Creator Portal von n8n reviewt. Nach der Freischaltung sollte er hier abrufbar sein.

Abbildung des kompletten Workflows in n8n
Aufbau & Funktionsweise
✔ API-Integration
Der Workflow holt Rezepte aus Tandoor Recipes, unserer selbst gehosteten Rezeptverwaltung.
✔ Strukturierte Prompt-Generierung
Die Daten werden an eine definierte ChatGPT-Prompt übergeben, in der ich Parameter festlege wie:
– Anzahl der Mahlzeiten und für wie viele Tage der Speiseplan erstellt werden soll
– Ernährungswünsche der Kinder
– Zeitrestriktionen
– bevorzugte Zutaten
– welche Eigenschaften die Rezepte an bestimmten Wochentagen oder zu bestimmten Tageszeiten haben sollen (z. B. Dienstag Abend Low Carb)
✔ Automatisch generierter Wochenplan
ChatGPT liefert daraufhin einen vollständigen, strukturierten Speiseplan für die Woche, trägt diesen gleich in den Meal Planner von Tandoor Recipes ein. Die Zutaten für die Rezepte landen automatisch auf der Einkaufsliste. Zusätzlich werden Mails mit dem Ergebnis der Prompt per E-Mail an uns versendet.
Technische Herausforderungen und Lösungen
🔧 Interaktive Feedback-Schleifen
Anfangs war geplant, dass der Speiseplan über Telegram an uns verschickt wird und wir über Telegram zurückschreiben um unsere Änderungswünsche an die Prompt zu übergeben.
Telegram eignete sich aber nicht für Rückkanäle — Nutzer:innen können keine Änderungswünsche an den Workflow zurücksenden.
Die Lösung:
Das Ergebnis wird nur gleich über die Meal Planner API als JSON Array zurück gegeben und dort eingetragen. Falls Nachbearbeitung nötig ist, machen wir das manuell und direkt im Meal Planner von Tandoor.
🔧 Lange Ausführungszeit
Die Generierung dauerte anfangs viel zu lange.
Wir haben folgende Bottlenecks identifiziert:
- Ein Workflow mit allen Rezepten und einer langen Prompt für die Erwachsenen Mittag- und Abendessen mit speziellen Wünschen zur Filterung inkl. zusätzlicher Kinder essen verlangsamte die Performance und ist auch nicht gut wartbar
- Wir hatten GPT5 als Sprachmodell ausgewählt. Dieses war unnötig mächtig und braucht folglich auch länger zur Ausführung. Wir nutzen nun GPT4 mini.
🔧 Modularisierung
Der Workflow wurde schließlich in vier Sub-Workflows geteilt:
- Kinder-Mittagessen
- Kinder-Abendessen
- Mittagessen
- Abendessen
Jeder Workflow hat seine eigene Prompt, seinen eigenen Speicher für das Ergebnis. Außerdem konnte gezielter durch die Mitgabe von Parametern (z. B. gewisse Tags bei den Rezepten) gefiltert werden.
Insgesamt ist die neue Lösung mit den 4 Subworkflows nicht nur performanter, sondern auch übersichtlicher und leichter wartbar.
🔧 Unerwartetes Prompt Caching durch Simple Memory
Im n8n-Node Simple Memory wurden frühere Prompts mitgespeichert und beim nächsten Lauf wieder “mitgenommen” – dadurch wurde nicht nur die aktuelle Prompt ausgeführt, sondern auch vorherige, was zu Mehrfachausführungen und doppelten Einträgen im Meal Plan führte.
Die Lösung:
Wir haben der Prompt pro Run ein eindeutiges Kontext-Merkmal (aktuelles Datum/Zeitraum) mitgegeben, sodass Simple Memory die Anfrage klar neu zuordnet bzw. alte Prompt-Kontexte verwirft und nur die aktuelle Prompt verarbeitet wird.
Technischer Stack
- n8n, selbst gehostet auf unserem
- Kubernetes-Cluster (privat)
- Tandoor Recipes API
- OpenAI / ChatGPT API
- Simple Memory als Zwischenspeicher für das Prompt Ergebnis
Geplante Weiterentwicklung
Derzeit ist nur eine Zusammenfassung der einzelnen Mails aus den 4 Workflows mittels KI als Reduzierung auf eine einzelne e-Mail geplant.
Lerneffekte dieses Projekts
🎯 Praktische Automatisierung in einer realen Self-Hosted Umgebung
- n8n-Workflow-Orchestrierung
- API-Integrationen
- Error-Handling & Datenverarbeitung
🎯 KI sinnvoll in Workflows einbinden
- Prompt-Design mit Fokus auf Wiederholbarkeit
- Aufteilungsstrategien für große KI-Aufgaben
- Umgang mit Token-Limitierungen und Latenzen
🎯 Architekturdenken & iterative Verbesserung
- Engpässe erkennen
- Workflows modularisieren
- Self-Hosted Automationen robust betreiben
🎯 Bewusster Umgang mit KI State & Memory
Ich habe gelernt, dass persistente KI-Memory-Mechanismen (wie Simple Memory in n8n) impliziten State erzeugen können, der über mehrere Workflow-Runs hinweg wirkt. Ohne eindeutige Kontext-Abgrenzung werden frühere Prompts erneut berücksichtigt, was zu nicht-deterministischem Verhalten führt. Durch das explizite Setzen eines eindeutigen Lauf-Kontexts (z. B. Datum/Zeitraum) wurde der Workflow wieder reproduzierbar und kontrollierbar.
🎯 Einfluss von Modellwahl auf Performance
Ich habe gelernt, dass leistungsstärkere KI-Modelle nicht automatisch die bessere Wahl für Automations-Workflows sind. Der Einsatz eines sehr mächtigen Modells (GPT-5) führte in unserem Fall zu unnötig langen Antwortzeiten, ohne einen qualitativen Mehrwert für die Aufgabe zu bringen. Durch den Wechsel auf ein leichteres Modell (GPT-4 mini) wurde der Workflow deutlich schneller, stabiler und effizienter – bei gleichbleibender Ergebnisqualität.
🎯 Teamarbeit
Die Zusammenarbeit mit Florian stärkte meine Fähigkeiten in:
- technischer Kommunikation
- gemeinsamen Architekturentscheidungen
- Workflow-Debugging wechselweise alleine und im Pair-Modus
