Files
customer-installer/REGISTRATION_SETUP_GUIDE.md
Wolfgang 4275a07a9b docs: Registrierungs-Setup und Troubleshooting Guides
Neue Dateien:
- BotKonzept-Customer-Registration-Workflow.json: n8n Workflow für Kundenregistrierung
- BotKonzept-Trial-Management-Workflow.json: n8n Workflow für Trial-Management
- REGISTRATION_SETUP_GUIDE.md: Kompletter Setup-Guide (Datenbank, Credentials, Workflows)
- REGISTRATION_TROUBLESHOOTING.md: Troubleshooting-Guide mit 10 häufigen Problemen

Gelöscht:
- 20250119_Logo_Botkozept.svg: Verschoben nach customer-frontend

Die Workflows enthalten:
- Webhook-Trigger für Registrierung
- Datenbank-Integration (PostgreSQL/Supabase)
- SSH-Integration zu PVE20 für LXC-Erstellung
- E-Mail-Versand (Willkommens-E-Mail)
- Trial-Management mit automatischen E-Mails (Tag 3, 5, 7)

Setup-Guide erklärt:
- Datenbank-Schema einrichten
- n8n Credentials konfigurieren (Supabase, SSH, SMTP)
- Workflows importieren und aktivieren
- Testing und Monitoring

Troubleshooting-Guide behandelt:
- Workflow-Probleme
- Credential-Fehler
- SSH-Verbindungsprobleme
- Datenbank-Fehler
- E-Mail-Versand-Probleme
- JSON-Parsing-Fehler
- Performance-Probleme
- Debugging-Checkliste
2026-01-29 11:30:45 +01:00

9.3 KiB

🚀 BotKonzept - Registrierungs-Setup Guide

📋 Übersicht

Dieser Guide erklärt, wie Sie die Benutzerregistrierung für BotKonzept zum Laufen bringen.


Was bereits vorhanden ist

1. Frontend (customer-frontend)

  • Registrierungsformular (index.html)
  • Formular-Validierung (js/main.js)
  • Webhook-URL: https://n8n.userman.de/webhook/botkonzept-registration

2. Backend (customer-installer)

  • install.sh - Erstellt LXC-Container automatisch
  • setup_nginx_proxy.sh - Konfiguriert Reverse Proxy
  • Datenbank-Schema (sql/botkonzept_schema.sql)

3. n8n Workflows

  • BotKonzept-Customer-Registration-Workflow.json
  • BotKonzept-Trial-Management-Workflow.json

🔧 Setup-Schritte

Schritt 1: Datenbank einrichten

# Auf Ihrem Supabase/PostgreSQL Server
psql -U postgres -d botkonzept < customer-installer/sql/botkonzept_schema.sql

Oder in Supabase Dashboard:

  1. Gehen Sie zu SQL Editor
  2. Kopieren Sie den Inhalt von sql/botkonzept_schema.sql
  3. Führen Sie das SQL aus

Tabellen die erstellt werden:

  • customers - Kundendaten
  • instances - LXC-Instanzen
  • emails_sent - E-Mail-Tracking
  • subscriptions - Abonnements
  • payments - Zahlungen
  • usage_stats - Nutzungsstatistiken
  • audit_log - Audit-Trail

Schritt 2: n8n Credentials einrichten

Sie benötigen folgende Credentials in n8n:

2.1 PostgreSQL/Supabase Credential

Name: Supabase Local Typ: Postgres Konfiguration:

Host: localhost (oder Ihr Supabase Host)
Port: 5432
Database: botkonzept
User: postgres (oder service_role)
Password: [Ihr Passwort]
SSL: Enabled (für Supabase)

2.2 SSH Credential für PVE20

Name: PVE20 Typ: SSH (Private Key) Konfiguration:

Host: 192.168.45.20 (oder Ihre PVE20 IP)
Port: 22
Username: root
Private Key: [Ihr SSH Private Key]

SSH Key generieren (falls noch nicht vorhanden):

# Auf dem n8n Server
ssh-keygen -t ed25519 -C "n8n@botkonzept"

# Public Key auf PVE20 kopieren
ssh-copy-id root@192.168.45.20

2.3 SMTP Credential für E-Mails

Name: Postfix SES Typ: SMTP Konfiguration:

Option A: Amazon SES

Host: email-smtp.eu-central-1.amazonaws.com
Port: 587
User: [Ihr SMTP Username]
Password: [Ihr SMTP Password]
From Email: noreply@botkonzept.de

Option B: Postfix (lokal)

Host: localhost
Port: 25
From Email: noreply@botkonzept.de

Option C: Gmail (für Tests)

Host: smtp.gmail.com
Port: 587
User: your-email@gmail.com
Password: [App-spezifisches Passwort]
From Email: your-email@gmail.com

Schritt 3: n8n Workflows importieren

3.1 Customer Registration Workflow

  1. Öffnen Sie n8n: https://n8n.userman.de
  2. Klicken Sie auf "+""Import from File"
  3. Wählen Sie BotKonzept-Customer-Registration-Workflow.json
  4. Wichtig: Passen Sie folgende Nodes an:

Node: "Create Customer in DB"

  • Credential: Supabase Local auswählen
  • Query anpassen falls nötig

Node: "Create Customer Instance"

  • Credential: PVE20 auswählen
  • Command prüfen:
/root/customer-installer/install.sh \
  --storage local-zfs \
  --bridge vmbr0 \
  --ip dhcp \
  --vlan 90 \
  --apt-proxy http://192.168.45.2:3142 \
  --n8n-owner-email {{ $json.email }} \
  --n8n-owner-pass "{{ $('Generate Password & Trial Date').item.json.password }}"

Node: "Send Welcome Email"

  • Credential: Postfix SES auswählen
  • From Email anpassen: noreply@botkonzept.de
  1. Klicken Sie auf "Save"
  2. Klicken Sie auf "Activate" (oben rechts)

3.2 Trial Management Workflow

  1. Importieren Sie BotKonzept-Trial-Management-Workflow.json
  2. Passen Sie die Credentials an
  3. Aktivieren Sie den Workflow

Schritt 4: Webhook-URL testen

4.1 Webhook-URL ermitteln

Nach dem Import sollte die Webhook-URL sein:

https://n8n.userman.de/webhook/botkonzept-registration

Prüfen Sie die URL:

  1. Öffnen Sie den Workflow
  2. Klicken Sie auf den Node "Registration Webhook"
  3. Kopieren Sie die "Production URL"

4.2 Test mit curl

curl -X POST https://n8n.userman.de/webhook/botkonzept-registration \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "Max",
    "lastName": "Mustermann",
    "email": "test@example.com",
    "company": "Test GmbH",
    "website": "https://example.com",
    "newsletter": true
  }'

Erwartete Antwort:

{
  "success": true,
  "message": "Registrierung erfolgreich! Sie erhalten in Kürze eine E-Mail mit Ihren Zugangsdaten.",
  "customerId": "uuid-hier",
  "instanceUrl": "https://sb-XXXXX.userman.de"
}

🐛 Häufige Probleme & Lösungen

Problem 1: "Credential not found"

Lösung:

  • Stellen Sie sicher, dass alle Credentials in n8n angelegt sind
  • Namen müssen exakt übereinstimmen: Supabase Local, PVE20, Postfix SES

Problem 2: SSH-Verbindung schlägt fehl

Lösung:

# Auf n8n Server
ssh root@192.168.45.20

# Falls Fehler:
# 1. SSH Key generieren
ssh-keygen -t ed25519 -C "n8n@botkonzept"

# 2. Public Key kopieren
ssh-copy-id root@192.168.45.20

# 3. Testen
ssh root@192.168.45.20 "ls /root/customer-installer/"

Problem 3: install.sh nicht gefunden

Lösung:

# Auf PVE20
cd /root
git clone https://backoffice.userman.de/MediaMetz/customer-installer.git

# Oder Pfad im Workflow anpassen

Problem 4: Datenbank-Fehler

Lösung:

# Prüfen ob Tabellen existieren
psql -U postgres -d botkonzept -c "\dt"

# Falls nicht, Schema erneut ausführen
psql -U postgres -d botkonzept < sql/botkonzept_schema.sql

Problem 5: E-Mail wird nicht versendet

Lösung:

Für Amazon SES:

  1. Verifizieren Sie die Absender-E-Mail in AWS SES
  2. Prüfen Sie SMTP-Credentials
  3. Stellen Sie sicher, dass Sie aus dem Sandbox-Modus raus sind

Für Postfix:

# Auf dem Server
systemctl status postfix
journalctl -u postfix -f

# Test-E-Mail senden
echo "Test" | mail -s "Test" test@example.com

Problem 6: Workflow wird nicht ausgeführt

Lösung:

  1. Prüfen Sie ob Workflow aktiviert ist (grüner Toggle oben rechts)
  2. Schauen Sie in die Execution History (linke Sidebar → Executions)
  3. Prüfen Sie die Logs jedes Nodes

📊 Workflow-Ablauf im Detail

Registration Workflow

1. Webhook empfängt POST-Request
   ↓
2. Validierung (E-Mail, Name, etc.)
   ↓
3. Passwort generieren (16 Zeichen)
   ↓
4. Kunde in DB anlegen (customers Tabelle)
   ↓
5. SSH zu PVE20 → install.sh ausführen
   ↓
6. JSON-Output parsen (CTID, URLs, Credentials)
   ↓
7. Instanz in DB speichern (instances Tabelle)
   ↓
8. Willkommens-E-Mail senden
   ↓
9. E-Mail-Versand loggen (emails_sent Tabelle)
   ↓
10. Success-Response an Frontend

Dauer: Ca. 2-5 Minuten (abhängig von LXC-Erstellung)

Trial Management Workflow

1. Cron-Trigger (täglich 9:00 Uhr)
   ↓
2. Alle Trial-Kunden abrufen (0-8 Tage alt)
   ↓
3. Für jeden Kunden:
   - Tag 3? → 30% Rabatt-E-Mail
   - Tag 5? → 15% Rabatt-E-Mail
   - Tag 7? → Letzte Chance-E-Mail
   - Tag 8? → Instanz löschen + Goodbye-E-Mail
   ↓
4. E-Mail-Versand loggen

🧪 Testing-Checkliste

Frontend-Test

  • Formular öffnen: http://192.168.0.20:8000
  • Alle Felder ausfüllen
  • Absenden klicken
  • Erfolgsmeldung erscheint

Backend-Test

  • n8n Execution History prüfen
  • Datenbank prüfen: SELECT * FROM customers ORDER BY created_at DESC LIMIT 1;
  • PVE20 prüfen: pct list | grep sb-
  • E-Mail erhalten?

End-to-End-Test

  • Registrierung durchführen
  • E-Mail mit Zugangsdaten erhalten
  • In n8n Dashboard einloggen
  • PDF hochladen
  • Chatbot testen

📈 Monitoring

n8n Executions überwachen

# In n8n UI
Sidebar → Executions → Filter: "Failed"

Datenbank-Queries

-- Neue Registrierungen heute
SELECT COUNT(*) FROM customers WHERE DATE(created_at) = CURRENT_DATE;

-- Aktive Trials
SELECT COUNT(*) FROM customers WHERE status = 'trial';

-- Versendete E-Mails heute
SELECT email_type, COUNT(*) 
FROM emails_sent 
WHERE DATE(sent_at) = CURRENT_DATE 
GROUP BY email_type;

-- Trials die bald ablaufen
SELECT * FROM trials_expiring_soon;

Logs prüfen

# n8n Logs
docker logs -f n8n

# install.sh Logs
ls -lh /root/customer-installer/logs/

# Postfix Logs
journalctl -u postfix -f

🔐 Sicherheit

Wichtige Punkte

  1. Credentials verschlüsseln

    • n8n verschlüsselt Credentials automatisch
    • Encryption Key sichern: N8N_ENCRYPTION_KEY
  2. SSH Keys schützen

    chmod 600 ~/.ssh/id_ed25519
    
  3. Datenbank-Zugriff

    • Verwenden Sie service_role Key für n8n
    • Niemals anon Key für Backend-Operationen
  4. E-Mail-Sicherheit

    • SPF, DKIM, DMARC konfigurieren
    • Absender-Domain verifizieren

📚 Weitere Ressourcen


🆘 Support

Bei Problemen:

  1. Logs prüfen (siehe Monitoring-Sektion)
  2. n8n Execution History ansehen
  3. Datenbank-Queries ausführen
  4. Workflow Schritt für Schritt testen

Kontakt:


Version: 1.0.0
Letzte Aktualisierung: 26.01.2025
Autor: MediaMetz