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
441 lines
9.3 KiB
Markdown
441 lines
9.3 KiB
Markdown
# 🚀 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
|
|
|
|
```bash
|
|
# 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):**
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
/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`
|
|
|
|
5. Klicken Sie auf **"Save"**
|
|
6. 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
|
|
|
|
```bash
|
|
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:**
|
|
```json
|
|
{
|
|
"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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# In n8n UI
|
|
Sidebar → Executions → Filter: "Failed"
|
|
```
|
|
|
|
### Datenbank-Queries
|
|
|
|
```sql
|
|
-- 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
|
|
|
|
```bash
|
|
# 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**
|
|
```bash
|
|
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
|
|
|
|
- **n8n Dokumentation:** https://docs.n8n.io
|
|
- **Supabase Docs:** https://supabase.com/docs
|
|
- **Proxmox Docs:** https://pve.proxmox.com/wiki/Main_Page
|
|
|
|
---
|
|
|
|
## 🆘 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:**
|
|
- E-Mail: support@botkonzept.de
|
|
- Dokumentation: Dieses Dokument
|
|
|
|
---
|
|
|
|
**Version:** 1.0.0
|
|
**Letzte Aktualisierung:** 26.01.2025
|
|
**Autor:** MediaMetz
|