Files
2026-02-25 22:47:22 +01:00

4.7 KiB

n8n Customer Provisioning System

Status: Phase 1-4 Complete


Implementierte Features

Phase 1: n8n API Funktionen (libsupabase.sh)

  • n8n_api_login() - Login mit emailOrLdapLoginId (nicht email)
  • n8n_api_create_postgres_credential() - PostgreSQL Credential erstellen
  • n8n_api_create_ollama_credential() - Ollama Credential erstellen
  • n8n_api_import_workflow() - Workflow importieren
  • n8n_api_activate_workflow() - Workflow aktivieren mit versionId
  • n8n_generate_rag_workflow_json() - Built-in Workflow Template
  • n8n_setup_rag_workflow() - Hauptfunktion für komplettes Setup

Phase 2: install.sh - Workflow Import

  • Login durchführen
  • PostgreSQL Credential erstellen und ID speichern
  • Ollama Credential erstellen und ID speichern
  • Workflow JSON mit korrekten Credential-IDs generieren
  • Workflow importieren
  • Workflow aktivieren mit POST /rest/workflows/{id}/activate + versionId

Phase 3: Externe Workflow-Datei Support

  • --workflow-file <path> Option hinzugefügt (default: RAGKI-BotPGVector.json)
  • --ollama-model <model> Option hinzugefügt (default: ministral-3:3b)
  • --embedding-model <model> Option hinzugefügt (default: nomic-embed-text:latest)
  • Python-Script für dynamische Credential-ID-Ersetzung
  • Entfernung von id, versionId, meta, tags, active, pinData beim Import
  • RAGKI-BotPGVector.json als Standard-Workflow-Template

Phase 4: Tests & Git

  • Container sb-1769174647 - Workflow aktiviert
  • Container sb-1769180683 - Externe Workflow-Datei
  • Git Commits gepusht

Verwendung

Standard-Installation (mit Default-Workflow)

bash install.sh --debug

Mit benutzerdefiniertem Workflow

bash install.sh --debug \
  --workflow-file /path/to/custom-workflow.json \
  --ollama-model "llama3.2:3b" \
  --embedding-model "nomic-embed-text:v1.5"

Verfügbare Optionen

Option Default Beschreibung
--workflow-file RAGKI-BotPGVector.json Pfad zur n8n Workflow JSON-Datei
--ollama-model ministral-3:3b Ollama Chat-Modell
--embedding-model nomic-embed-text:latest Ollama Embedding-Modell

Technische Details

n8n REST API Endpoints

Endpoint Methode Beschreibung
/rest/login POST Login (Feld: emailOrLdapLoginId, nicht email)
/rest/credentials POST Credential erstellen
/rest/workflows POST Workflow importieren
/rest/workflows/{id}/activate POST Workflow aktivieren (benötigt versionId)

Credential Types

  • postgres - PostgreSQL Datenbank
  • ollamaApi - Ollama API

Workflow-Verarbeitung

Das Python-Script /tmp/process_workflow.py im Container:

  1. Liest die Workflow-Template-Datei
  2. Entfernt Felder: id, versionId, meta, tags, active, pinData
  3. Ersetzt alle postgres Credential-IDs mit der neuen ID
  4. Ersetzt alle ollamaApi Credential-IDs mit der neuen ID
  5. Schreibt die verarbeitete Workflow-Datei

Git Commits

  1. ff1526c - feat: Auto-import n8n RAG workflow with credentials
  2. f663708 - fix: Workflow activation with versionId
  3. 26f5a73 - feat: External workflow file support with dynamic credential replacement

Phase 5: Workflow Auto-Reload bei LXC-Neustart

  • Systemd-Service für automatisches Workflow-Reload
  • Reload-Script mit vollständigem Logging
  • Workflow-Template persistent speichern
  • Integration in install.sh
  • Hilfsfunktionen in libsupabase.sh
  • Dokumentation (WORKFLOW_RELOAD_README.md)

Details

Der Workflow wird jetzt bei jedem LXC-Neustart automatisch neu geladen:

  1. Systemd-Service: /etc/systemd/system/n8n-workflow-reload.service
  2. Reload-Script: /opt/customer-stack/reload-workflow.sh
  3. Workflow-Template: /opt/customer-stack/workflow-template.json
  4. Logs: /opt/customer-stack/logs/workflow-reload.log

Funktionsweise:

  • Beim LXC-Start wird der Systemd-Service ausgeführt
  • Service wartet auf Docker und n8n-Container
  • Reload-Script löscht alten Workflow
  • Importiert Workflow aus Template
  • Aktiviert Workflow
  • Loggt alle Aktionen

Siehe: WORKFLOW_RELOAD_README.md für vollständige Dokumentation


Nächste Schritte (Optional)

  • Workflow-Validierung vor Import
  • Mehrere Workflows unterstützen
  • Workflow-Update bei bestehenden Containern
  • Backup/Export von Workflows
  • Tests für Auto-Reload-Feature durchführen