Über das Internet erreichbar gemacht
Dieser Commit ist enthalten in:
194
JOURNAL.md
194
JOURNAL.md
@@ -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
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren