Über das Internet erreichbar gemacht

Dieser Commit ist enthalten in:
2025-06-07 19:08:14 +02:00
Ursprung a37d68838a
Commit 94148f10a8
21 geänderte Dateien mit 933 neuen und 55 gelöschten Zeilen

Datei anzeigen

@@ -13,69 +13,118 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
---
## Aktueller Stand (2025-01-06)
## Aktueller Stand (2025-06-07)
### ✅ Implementiert
1. **Docker-Infrastruktur**
- docker-compose.yaml mit 3 Services (PostgreSQL, Admin Panel, License Server)
- docker-compose.yaml mit 4 Services (PostgreSQL, Admin Panel, License Server, Nginx)
- Interne Bridge-Netzwerkkommunikation
- Resource Limits konfiguriert (2 CPUs, 4GB RAM pro Service)
- Nginx Reverse Proxy für SSL-Termination
2. **PostgreSQL Datenbank**
- Tabellen: customers, licenses
- Init-Script vorhanden
- Tabellen: customers, licenses, sessions, audit_log, backup_history
- UTF-8 Support mit deutscher Locale (de_DE.UTF-8)
- Init-Script mit vollständigem Schema
- Persistente Datenspeicherung
3. **Admin Panel (Basis)**
3. **Admin Panel (Vollständig)**
- Flask-Anwendung mit Session-Management
- Login-Funktionalität für 2 Admin-User
- Lizenz-Erstellungsformular
- Automatische Kundenerstellung
- Läuft auf Port 443 mit selbstsigniertem SSL
- Login-Funktionalität für 2 Admin-User (rac00n, w@rh@mm3r)
- Dashboard mit Statistiken und Widgets
- Lizenz-CRUD (Create, Read, Update, Delete)
- Kunden-CRUD mit Lizenzzuordnung
- Session-Tracking und -Verwaltung
- Audit-Log für alle Aktionen
- Export-Funktion (CSV/Excel)
- Backup-System mit Verschlüsselung
- UTF-8 Support für deutsche Umlaute
- Suche und Filter mit Pagination
4. **Internet-Zugriff**
- Nginx Reverse Proxy mit SSL-Termination
- IONOS SSL-Zertifikate mit vollständiger Certificate Chain
- Subdomain-Routing funktioniert (admin-panel-undso, api-software-undso)
- DynDNS und Port-Forwarding konfiguriert
- Feste IP-Adresse (192.168.178.88)
### ❌ Noch nicht implementiert
1. **License Server API**
- Nur Platzhalter-Container vorhanden
- Keine API-Endpunkte
- Keine API-Endpunkte (/api/version, /api/validate, /api/heartbeat)
- Keine Lizenzvalidierung
- Kein Heartbeat/Session-Management
2. **Admin Panel Erweiterungen**
- Keine Lizenzübersicht
- Keine Bearbeitungs-/Löschfunktionen
- Keine Kundenverwaltung
- Kein UTF-8 Support für deutsche Umlaute
3. **Internet-Zugriff**
- Kein Reverse Proxy
- Keine gültigen SSL-Zertifikate
- Subdomain-Routing nicht konfiguriert
- Kein aktives Session-Management
---
## Offene Aufgaben (Priorität)
### 🔴 Hoch
1. **UTF-8 Support** für deutsche Sonderzeichen (äöüß)
2. **Reverse Proxy Setup** (Nginx/Traefik) für Subdomain-Routing
3. **SSL-Zertifikate** (Let's Encrypt) für beide Subdomains
4. **License Server API implementieren**
### 🔴 Hoch (Basis-Funktionalität)
1. **License Server API implementieren**
- `/api/version` - Versionscheck
- `/api/validate` - Lizenzvalidierung
- `/api/heartbeat` - Session-Management
5. **Admin Panel: Lizenzübersicht**
2. **Reverse Proxy Setup** (Nginx/Traefik) für Subdomain-Routing
3. **SSL-Zertifikate** (Let's Encrypt) für beide Subdomains
4. **Session-Management** (nur eine aktive Session pro Lizenz)
### 🟡 Mittel
1. **Admin Panel: Lizenz bearbeiten/löschen**
2. **Admin Panel: Kundenverwaltung**
3. **Session-Tracking** (nur eine aktive Session pro Lizenz)
4. **Logging-System** für Audit-Trail
### 🟡 Mittel (Erweiterte Features)
1. **Erweiterte Sicherheit**
- Rate-Limiting für Login-Versuche (Brute-Force-Schutz)
- 2-Faktor-Authentifizierung (2FA)
- Session-Timeout konfigurierbar
- IP-Whitelist für Admin-Zugriff
- Passwort-Richtlinien (Komplexität, Ablauf)
### 🟢 Niedrig
1. **Email-Benachrichtigungen**
2. **JWT-Authentifizierung für API**
3. **Backup-Strategie**
4. **VPS-Migrationsdokumentation**
2. **Lizenz-Verwaltung Erweiterungen**
- Bulk-Import von Lizenzen (CSV/Excel Upload)
- Lizenz-Templates für schnelle Erstellung
- Lizenz-Verlängerung mit einem Klick
- Lizenz-Historie (wer hatte welche Lizenz wann)
- Lizenz-Gruppen/Pakete
- Automatische Lizenzverlängerung
3. **Benachrichtigungen**
- E-Mail bei ablaufenden Lizenzen (Struktur bereits vorbereitet)
- Dashboard-Benachrichtigungen (Toast/Pop-ups)
- Webhook-Support für externe Systeme
- SMS-Benachrichtigungen
- Slack/Teams Integration
4. **API für Automatisierung**
- REST API für Admin-Funktionen
- API-Keys für programmatischen Zugriff
- Swagger/OpenAPI Dokumentation
- Rate Limiting für API
- Webhook Events
### 🟢 Niedrig (Nice-to-have)
1. **Benutzeroberfläche**
- Dark Mode Toggle
- Mobile-optimierte Ansicht (Responsive)
- Mehrsprachigkeit (Deutsch/Englisch)
- Anpassbare Dashboard-Widgets
- Drag & Drop Dashboard
- Keyboard Shortcuts
2. **Erweiterte Statistiken**
- Grafische Auswertungen (Chart.js/D3.js)
- Umsatz-Statistiken
- Nutzungsstatistiken pro Kunde
- Lizenz-Verlaufsdiagramme
- Geografische Verteilung
- Vorhersage-Analysen
3. **Weitere Features**
- Rechnungserstellung
- Mehrmandantenfähigkeit
- Benutzerverwaltung (verschiedene Admin-Rollen)
- Lizenz-Aktivierung per E-Mail
- QR-Code für Lizenzschlüssel
- Dokumentenverwaltung pro Kunde
- JWT-Authentifizierung für API
- Docker Resource-Optimierung
- VPS-Migrationsdokumentation
---
@@ -97,12 +146,12 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
## Änderungsprotokoll
### 2025-01-06 - Journal erstellt
### 2025-06-06 - Journal erstellt
- Initialer Projektstand dokumentiert
- Aufgabenliste priorisiert
- Technische Anforderungen festgehalten
### 2025-01-06 - UTF-8 Support implementiert
### 2025-06-06 - UTF-8 Support implementiert
- Flask App Konfiguration für UTF-8 hinzugefügt (JSON_AS_ASCII=False)
- PostgreSQL Verbindung mit UTF-8 client_encoding
- HTML Forms mit accept-charset="UTF-8"
@@ -122,7 +171,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
- Kundennamen mit Umlauten testen (z.B. "Müller GmbH", "Björn Schäfer")
- Email mit Umlauten testen
### 2025-01-06 - Lizenzübersicht implementiert
### 2025-06-06 - Lizenzübersicht implementiert
- Neue Route `/licenses` für Lizenzübersicht
- SQL-Query mit JOIN zwischen licenses und customers
- Status-Berechnung (aktiv, läuft bald ab, abgelaufen)
@@ -146,7 +195,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
- Mehrere Lizenzen mit verschiedenen Ablaufdaten erstellen
- Lizenzübersicht unter /licenses aufrufen
### 2025-01-06 - Lizenz bearbeiten/löschen implementiert
### 2025-06-06 - Lizenz bearbeiten/löschen implementiert
- Neue Routen für Bearbeiten und Löschen von Lizenzen
- Bearbeitungsformular mit vorausgefüllten Werten
- Aktiv/Inaktiv-Status kann geändert werden
@@ -170,7 +219,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
- POST-only für Löschvorgänge
- Bestätigungsdialog vor dem Löschen
### 2025-01-06 - Kundenverwaltung implementiert
### 2025-06-06 - Kundenverwaltung implementiert
- Komplette CRUD-Funktionalität für Kunden
- Übersicht zeigt Anzahl aktiver/gesamter Lizenzen pro Kunde
- Kunden können nur gelöscht werden, wenn sie keine Lizenzen haben
@@ -195,7 +244,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
- Aktive Lizenzen werden separat gezählt (nicht abgelaufen + aktiv)
- UTF-8 Support für Kundennamen mit Umlauten
### 2025-01-06 - Dashboard mit Statistiken implementiert
### 2025-06-06 - Dashboard mit Statistiken implementiert
- Übersichtliches Dashboard als neue Startseite
- Statistik-Karten mit wichtigen Kennzahlen
- Listen für bald ablaufende und zuletzt erstellte Lizenzen
@@ -224,7 +273,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
- Warnung für bald ablaufende Lizenzen
- Übersicht der neuesten Aktivitäten
### 2025-01-06 - Suchfunktion implementiert
### 2025-06-06 - Suchfunktion implementiert
- Volltextsuche für Lizenzen und Kunden
- Case-insensitive Suche mit LIKE-Operator
- Suchergebnisse mit Hervorhebung des Suchbegriffs
@@ -248,7 +297,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
- Wildcards (%) für Teilstring-Suche
- UTF-8 kompatibel für deutsche Umlaute
### 2025-01-06 - Filter und Pagination implementiert
### 2025-06-06 - Filter und Pagination implementiert
- Erweiterte Filteroptionen für Lizenzübersicht
- Pagination für große Datenmengen (20 Einträge pro Seite)
- Filter bleiben bei Seitenwechsel erhalten
@@ -276,7 +325,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
- URL-Parameter bleiben bei Navigation erhalten
- Responsive Bootstrap-Komponenten
### 2025-01-06 - Session-Tracking implementiert
### 2025-06-06 - Session-Tracking implementiert
- Neue Tabelle für Session-Verwaltung
- Anzeige aktiver und beendeter Sessions
- Manuelles Beenden von Sessions möglich
@@ -305,7 +354,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
**Hinweis:**
Die Session-Daten werden erst gefüllt, wenn der License Server API implementiert ist und Clients sich verbinden.
### 2025-01-06 - Export-Funktion implementiert
### 2025-06-06 - Export-Funktion implementiert
- CSV und Excel Export für Lizenzen und Kunden
- Formatierte Ausgabe mit deutschen Datumsformaten
- UTF-8 Unterstützung für Sonderzeichen
@@ -331,7 +380,7 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
- Automatische Spaltenbreite in Excel
- BOM für UTF-8 CSV (Excel-Kompatibilität)
### 2025-01-06 - Audit-Log implementiert
### 2025-06-06 - Audit-Log implementiert
- Vollständiges Änderungsprotokoll für alle Aktionen
- Filterbare Übersicht mit Pagination
- Detaillierte Anzeige von Änderungen
@@ -357,7 +406,7 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
- 50 Einträge pro Seite mit Pagination
- IP-Adresse und User-Agent Tracking
### 2025-01-06 - PostgreSQL UTF-8 Locale konfiguriert
### 2025-06-06 - PostgreSQL UTF-8 Locale konfiguriert
- Eigenes PostgreSQL Dockerfile für deutsche Locale
- Sicherstellung der UTF-8 Unterstützung auf Datenbankebene
@@ -378,7 +427,7 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
- locale-gen für de_DE.UTF-8
- Vollständige UTF-8 Unterstützung für deutsche Sonderzeichen
### 2025-01-07 - Backup-Funktionalität implementiert
### 2025-06-07 - Backup-Funktionalität implementiert
- Verschlüsselte Backups mit manueller und automatischer Ausführung
- Backup-Historie mit Download und Wiederherstellung
- Dashboard-Integration für Backup-Status
@@ -409,4 +458,45 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
- APScheduler für automatische Backups
- pg_dump/psql für Datenbank-Operationen
- Audit-Log für alle Backup-Aktionen
- Sicherheitsabfrage bei Wiederherstellung
- Sicherheitsabfrage bei Wiederherstellung
### 2025-06-07 - HTTPS/SSL und Internet-Zugriff implementiert
- Nginx Reverse Proxy für externe Erreichbarkeit eingerichtet
- SSL-Zertifikate von IONOS mit vollständiger Certificate Chain integriert
- Netzwerkkonfiguration für feste IP-Adresse
- DynDNS und Port-Forwarding konfiguriert
**Neue Features:**
- **Nginx Reverse Proxy**: Leitet HTTPS-Anfragen an Container weiter
- **SSL-Zertifikate**: Wildcard-Zertifikat von IONOS für *.z5m7q9dk3ah2v1plx6ju.com
- **Certificate Chain**: Server-, Intermediate- und Root-Zertifikate kombiniert
- **Subdomain-Routing**: admin-panel-undso und api-software-undso
- **Port-Forwarding**: FRITZ!Box 443 → 192.168.178.88
- **Feste IP**: Windows-PC auf 192.168.178.88 konfiguriert
**Neue/Geänderte Dateien:**
- v2_nginx/nginx.conf (Reverse Proxy Konfiguration)
- v2_nginx/Dockerfile (Nginx Container mit SSL)
- v2_nginx/ssl/fullchain.pem (Certificate Chain)
- v2_nginx/ssl/privkey.pem (Private Key)
- v2/docker-compose.yaml (nginx Service hinzugefügt)
- set-static-ip.ps1 (PowerShell Script für feste IP)
- reset-to-dhcp.ps1 (PowerShell Script für DHCP)
**Technische Details:**
- SSL-Termination am Nginx Reverse Proxy
- Backend-Kommunikation über Docker-internes Netzwerk
- Admin-Panel nur noch über Nginx erreichbar (Port 443 nicht mehr exposed)
- License-Server behält externen Port 8443 für direkte API-Zugriffe
- Intermediate Certificates aus ZIP extrahiert und korrekt verkettet
**Zugangsdaten:**
- Admin-Panel: https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
- Benutzer 1: rac00n / 1248163264
- Benutzer 2: w@rh@mm3r / Warhammer123!
**Status:**
- ✅ Admin-Panel extern erreichbar ohne SSL-Warnungen
- ✅ Reverse Proxy funktioniert
- ✅ SSL-Zertifikate korrekt konfiguriert
- ✅ Netzwerk-Setup abgeschlossen