- Landing page with registration form (HTML/CSS/JS) - n8n workflows for customer registration and trial management - PostgreSQL schema for customer/instance/payment management - Automated email system (Day 3, 5, 7 with discounts) - Setup script and deployment checklist - Comprehensive documentation Features: - Automatic LXC instance creation per customer - 7-day trial with automated upgrade offers - Discount system: 30% → 15% → regular price - Supabase integration for customer management - Email automation via Postfix/SES - GDPR compliant (data in Germany) - Stripe/PayPal payment integration ready Components: - botkonzept-website/ - Landing page and registration - BotKonzept-Customer-Registration-Workflow.json - n8n registration workflow - BotKonzept-Trial-Management-Workflow.json - n8n trial management workflow - sql/botkonzept_schema.sql - Complete database schema - setup_botkonzept.sh - Automated setup script - BOTKONZEPT_README.md - Full documentation - DEPLOYMENT_CHECKLIST.md - Deployment guide
7.9 KiB
7.9 KiB
🚀 BotKonzept - Deployment Checkliste
✅ Pre-Deployment
Infrastruktur
- Proxmox VE20 läuft und ist erreichbar
- Supabase PostgreSQL ist konfiguriert
- n8n Instanz ist verfügbar
- OPNsense NGINX Reverse Proxy ist konfiguriert
- Postfix/SES E-Mail-Gateway funktioniert
- DNS für botkonzept.de ist konfiguriert
Datenbank
- PostgreSQL-Verbindung getestet
- Schema
botkonzept_schema.sqlimportiert - Tabellen erstellt (customers, instances, etc.)
- Views erstellt (customer_overview, trials_expiring_soon)
- Row Level Security aktiviert
- Backup-Strategie definiert
n8n Workflows
- Customer Registration Workflow importiert
- Trial Management Workflow importiert
- SSH-Credentials (PVE20) konfiguriert
- PostgreSQL-Credentials konfiguriert
- SMTP-Credentials konfiguriert
- Webhooks aktiviert
- Cron-Jobs aktiviert (täglich 9:00 Uhr)
Website
- HTML/CSS/JS-Dateien geprüft
- Logo (20250119_Logo_Botkozept.svg) vorhanden
- Webhook-URL in main.js konfiguriert
- SSL-Zertifikat installiert
- HTTPS erzwungen
- Cookie-Banner implementiert
- Datenschutzerklärung vorhanden
- Impressum vorhanden
- AGB vorhanden
🔧 Deployment Steps
1. Datenbank Setup
# Verbindung testen
psql -h 192.168.45.3 -U customer -d customer -c "SELECT 1"
# Schema importieren
psql -h 192.168.45.3 -U customer -d customer -f sql/botkonzept_schema.sql
# Tabellen verifizieren
psql -h 192.168.45.3 -U customer -d customer -c "\dt"
Erwartetes Ergebnis:
- 7 Tabellen erstellt
- 3 Views erstellt
- Triggers aktiv
2. n8n Workflows
# 1. n8n öffnen
open https://n8n.userman.de
# 2. Workflows importieren
# - BotKonzept-Customer-Registration-Workflow.json
# - BotKonzept-Trial-Management-Workflow.json
# 3. Credentials konfigurieren
# SSH (PVE20): /root/.ssh/id_rsa
# PostgreSQL: 192.168.45.3:5432/customer
# SMTP: Postfix Gateway
Webhook-URLs:
- Registration:
https://n8n.userman.de/webhook/botkonzept-registration - Test:
curl -X POST https://n8n.userman.de/webhook/botkonzept-registration -H "Content-Type: application/json" -d '{"test":true}'
3. Website Deployment
# Setup-Script ausführen
chmod +x setup_botkonzept.sh
./setup_botkonzept.sh
# Oder manuell:
sudo mkdir -p /var/www/botkonzept
sudo cp -r botkonzept-website/* /var/www/botkonzept/
sudo chown -R www-data:www-data /var/www/botkonzept
NGINX-Konfiguration:
server {
listen 80;
server_name botkonzept.de www.botkonzept.de;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name botkonzept.de www.botkonzept.de;
ssl_certificate /etc/letsencrypt/live/botkonzept.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/botkonzept.de/privkey.pem;
root /var/www/botkonzept;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
}
4. SSL-Zertifikat
# Let's Encrypt installieren
sudo apt-get install certbot python3-certbot-nginx
# Zertifikat erstellen
sudo certbot --nginx -d botkonzept.de -d www.botkonzept.de
# Auto-Renewal testen
sudo certbot renew --dry-run
✅ Post-Deployment Tests
1. Datenbank-Tests
-- Kunden-Tabelle testen
INSERT INTO customers (email, first_name, last_name, status)
VALUES ('test@example.com', 'Test', 'User', 'trial')
RETURNING *;
-- View testen
SELECT * FROM customer_overview;
-- Cleanup
DELETE FROM customers WHERE email = 'test@example.com';
2. Workflow-Tests
# Registration Webhook testen
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",
"terms": true
}'
# Erwartete Antwort:
# {"success": true, "message": "Registrierung erfolgreich!"}
3. Website-Tests
- Homepage lädt (https://botkonzept.de)
- Alle Bilder werden angezeigt
- Navigation funktioniert
- Formular wird angezeigt
- Formular-Validierung funktioniert
- Mobile-Ansicht korrekt
- SSL-Zertifikat gültig
- Keine Console-Errors
4. E-Mail-Tests
# Test-E-Mail senden
echo "Test" | mail -s "BotKonzept Test" test@example.com
# Postfix-Logs prüfen
tail -f /var/log/mail.log
5. End-to-End Test
-
Registrierung:
- Formular ausfüllen
- Absenden
- Success-Message erscheint
-
Datenbank:
- Kunde in
customersTabelle - Instanz in
instancesTabelle - E-Mail in
emails_sentTabelle
- Kunde in
-
E-Mail:
- Willkommens-E-Mail erhalten
- Zugangsdaten korrekt
- Links funktionieren
-
Instanz:
- LXC erstellt (pct list)
- n8n erreichbar
- Login funktioniert
📊 Monitoring
Datenbank-Monitoring
-- Aktive Trials
SELECT COUNT(*) FROM customers WHERE status = 'trial';
-- Trials die heute ablaufen
SELECT * FROM trials_expiring_soon WHERE days_remaining < 1;
-- E-Mails der letzten 24h
SELECT email_type, COUNT(*)
FROM emails_sent
WHERE sent_at >= NOW() - INTERVAL '24 hours'
GROUP BY email_type;
-- Revenue heute
SELECT SUM(amount) FROM payments
WHERE status = 'succeeded'
AND paid_at::date = CURRENT_DATE;
n8n-Monitoring
- Workflow-Executions prüfen
- Error-Rate überwachen
- Execution-Time tracken
Server-Monitoring
# LXC-Container zählen
pct list | grep -c "running"
# Disk-Usage
df -h
# Memory-Usage
free -h
# Load Average
uptime
🔒 Security Checklist
- Firewall-Regeln konfiguriert
- SSH nur mit Key-Auth
- PostgreSQL nur intern erreichbar
- n8n hinter Reverse Proxy
- SSL/TLS erzwungen
- Rate-Limiting aktiviert
- CORS korrekt konfiguriert
- Input-Validierung aktiv
- SQL-Injection-Schutz
- XSS-Schutz
- CSRF-Schutz
📝 Backup-Strategie
Datenbank-Backup
# Tägliches Backup
0 2 * * * pg_dump -h 192.168.45.3 -U customer customer > /backup/botkonzept_$(date +\%Y\%m\%d).sql
# Backup-Retention (30 Tage)
find /backup -name "botkonzept_*.sql" -mtime +30 -delete
LXC-Backup
# Proxmox Backup
vzdump --mode snapshot --compress gzip --storage backup-storage
Website-Backup
# Git-Repository
cd /var/www/botkonzept
git init
git add .
git commit -m "Website backup $(date)"
git push origin main
🚨 Rollback-Plan
Bei Problemen mit Workflows
- Workflows deaktivieren
- Alte Version wiederherstellen
- Credentials prüfen
- Neu aktivieren
Bei Datenbank-Problemen
# Backup wiederherstellen
psql -h 192.168.45.3 -U customer customer < /backup/botkonzept_YYYYMMDD.sql
Bei Website-Problemen
# Alte Version wiederherstellen
git checkout HEAD~1
sudo cp -r botkonzept-website/* /var/www/botkonzept/
📞 Support-Kontakte
- Proxmox: admin@userman.de
- n8n: support@userman.de
- DNS: dns@userman.de
- E-Mail: postmaster@userman.de
✅ Go-Live Checklist
- Alle Tests bestanden
- Monitoring aktiv
- Backups konfiguriert
- Team informiert
- Dokumentation aktuell
- Support-Prozesse definiert
- Rollback-Plan getestet
- Performance-Tests durchgeführt
- Security-Audit durchgeführt
- DSGVO-Compliance geprüft
🎉 Post-Launch
- Analytics einrichten (Google Analytics)
- Conversion-Tracking aktivieren
- A/B-Tests planen
- Marketing-Kampagnen starten
- Social Media ankündigen
- Blog-Post veröffentlichen
- Newsletter versenden
Deployment-Datum: _________________
Deployed von: _________________
Version: 1.0.0
Status: ⬜ In Arbeit | ⬜ Bereit | ⬜ Live