4.7 KiB
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 mitemailOrLdapLoginId(nichtemail)n8n_api_create_postgres_credential()- PostgreSQL Credential erstellenn8n_api_create_ollama_credential()- Ollama Credential erstellenn8n_api_import_workflow()- Workflow importierenn8n_api_activate_workflow()- Workflow aktivieren mitversionIdn8n_generate_rag_workflow_json()- Built-in Workflow Templaten8n_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,pinDatabeim Import RAGKI-BotPGVector.jsonals 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 DatenbankollamaApi- Ollama API
Workflow-Verarbeitung
Das Python-Script /tmp/process_workflow.py im Container:
- Liest die Workflow-Template-Datei
- Entfernt Felder:
id,versionId,meta,tags,active,pinData - Ersetzt alle
postgresCredential-IDs mit der neuen ID - Ersetzt alle
ollamaApiCredential-IDs mit der neuen ID - Schreibt die verarbeitete Workflow-Datei
Git Commits
ff1526c- feat: Auto-import n8n RAG workflow with credentialsf663708- fix: Workflow activation with versionId26f5a73- 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:
- Systemd-Service:
/etc/systemd/system/n8n-workflow-reload.service - Reload-Script:
/opt/customer-stack/reload-workflow.sh - Workflow-Template:
/opt/customer-stack/workflow-template.json - 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