Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Failing after 10m24s
- Add N8N_WEBHOOK_URL, N8N_SECRET_TOKEN, N8N_API_KEY to docker-compose.production.yml - Export environment variables in workflow before docker-compose up - Improve error logging in chat API for better debugging - Add better error handling in ChatWidget component - Create setup guide for n8n chat configuration
4.0 KiB
4.0 KiB
🔧 n8n Chat Setup für Production
Problem: AI Chat funktioniert nicht auf Production
Wenn der AI Chat auf Production nicht funktioniert, liegt es meist an fehlenden Environment-Variablen.
✅ Lösung: Environment-Variablen in Gitea setzen
Schritt 1: Gehe zu Gitea Repository Settings
- Öffne:
https://git.dk0.dev/denshooter/portfolio/settings - Klicke auf "Variables" im linken Menü
Schritt 2: Setze die n8n Variables
Variables (öffentlich):
-
Name:
N8N_WEBHOOK_URL -
Value:
https://n8n.dk0.dev -
Protect: ✅ (optional)
-
Name:
N8N_API_KEY(optional, falls dein n8n eine API-Key benötigt) -
Value: Dein n8n API Key
-
Protect: ✅
Secrets (verschlüsselt):
- Name:
N8N_SECRET_TOKEN - Value: Dein n8n Secret Token (falls du einen verwendest)
- Protect: ✅
Schritt 3: Prüfe die n8n Webhook URL
Stelle sicher, dass dein n8n Workflow:
- Aktiv ist (Toggle oben rechts)
- Den Webhook-Pfad
/webhook/chathat - Die vollständige URL ist:
https://n8n.dk0.dev/webhook/chat
Schritt 4: Teste die Webhook-URL direkt
curl -X POST https://n8n.dk0.dev/webhook/chat \
-H "Content-Type: application/json" \
-d '{"message": "Hello"}'
Wenn du einen N8N_SECRET_TOKEN verwendest:
curl -X POST https://n8n.dk0.dev/webhook/chat \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_SECRET_TOKEN" \
-d '{"message": "Hello"}'
Schritt 5: Deploy neu starten
Nach dem Setzen der Variablen:
- Push einen Commit zum
productionBranch - Oder manuell den Workflow in Gitea starten
- Die Variablen werden automatisch an den Container übergeben
🔍 Debugging
Prüfe Container-Logs
docker logs portfolio-app | grep -i n8n
Prüfe Environment-Variablen im Container
docker exec portfolio-app env | grep N8N
Sollte zeigen:
N8N_WEBHOOK_URL=https://n8n.dk0.dev
N8N_SECRET_TOKEN=*** (wenn gesetzt)
N8N_API_KEY=*** (wenn gesetzt)
Prüfe Browser-Konsole
Öffne die Browser-Konsole (F12) und schaue nach Fehlern beim Senden einer Chat-Nachricht.
Prüfe Server-Logs
Die Chat-API loggt jetzt detaillierter:
- Ob
N8N_WEBHOOK_URLgesetzt ist - Die vollständige Webhook-URL (ohne Credentials)
- HTTP-Fehler mit Status-Codes
🐛 Häufige Probleme
Problem 1: "N8N_WEBHOOK_URL not configured"
Lösung: Variable in Gitea setzen (siehe Schritt 2)
Problem 2: "n8n webhook failed: 404"
Lösung:
- Prüfe, ob der n8n Workflow aktiv ist
- Prüfe, ob der Webhook-Pfad
/webhook/chatist - Teste die URL direkt mit curl
Problem 3: "n8n webhook failed: 401/403"
Lösung:
- Prüfe, ob
N8N_SECRET_TOKENin Gitea Secrets gesetzt ist - Prüfe, ob der Token im n8n Workflow korrekt konfiguriert ist
Problem 4: "Connection timeout"
Lösung:
- Prüfe, ob n8n erreichbar ist:
curl https://n8n.dk0.dev - Prüfe Firewall-Regeln
- Prüfe, ob n8n im gleichen Netzwerk ist (Docker Network)
📝 Aktuelle Konfiguration
Die Chat-API verwendet:
- Webhook URL:
${N8N_WEBHOOK_URL}/webhook/chat - Authentication:
Authorization: Bearer ${N8N_SECRET_TOKEN}(wenn gesetzt)X-API-Key: ${N8N_API_KEY}(wenn gesetzt)
- Timeout: 30 Sekunden
- Fallback: Wenn n8n nicht erreichbar ist, werden intelligente Fallback-Antworten verwendet
✅ Checkliste
N8N_WEBHOOK_URLin Gitea Variables gesetztN8N_SECRET_TOKENin Gitea Secrets gesetzt (falls benötigt)N8N_API_KEYin Gitea Variables gesetzt (falls benötigt)- n8n Workflow ist aktiv
- Webhook-Pfad ist
/webhook/chat - Container wurde nach dem Setzen der Variablen neu deployed
- Container-Logs zeigen keine n8n-Fehler
🚀 Nach dem Setup
Nach dem Setzen der Variablen und einem neuen Deployment sollte der Chat funktionieren. Falls nicht:
- Prüfe die Container-Logs:
docker logs portfolio-app - Prüfe die Browser-Konsole für Client-seitige Fehler
- Teste die n8n Webhook-URL direkt mit curl
- Prüfe, ob die Environment-Variablen im Container gesetzt sind