7.6 KiB
7.6 KiB
v2-Docker Projekt Journal
Projektübersicht
Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker-basierter Architektur.
Technische Anforderungen
- Lokaler Betrieb: Docker mit 4GB RAM und 40GB Speicher
- Internet-Zugriff:
- Admin Panel: https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
- API Server: https://api-software-undso.z5m7q9dk3ah2v1plx6ju.com
- Datenbank: PostgreSQL mit 2 Admin-Usern (rac00n, w@rh@mm3r)
- Ziel: PoC für spätere VPS-Migration
Aktueller Stand (2025-01-06)
✅ Implementiert
-
Docker-Infrastruktur
- docker-compose.yaml mit 3 Services (PostgreSQL, Admin Panel, License Server)
- Interne Bridge-Netzwerkkommunikation
- Resource Limits konfiguriert (2 CPUs, 4GB RAM pro Service)
-
PostgreSQL Datenbank
- Tabellen: customers, licenses
- Init-Script vorhanden
- Persistente Datenspeicherung
-
Admin Panel (Basis)
- 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
❌ Noch nicht implementiert
-
License Server API
- Nur Platzhalter-Container vorhanden
- Keine API-Endpunkte
- Keine Lizenzvalidierung
- Kein Heartbeat/Session-Management
-
Admin Panel Erweiterungen
- Keine Lizenzübersicht
- Keine Bearbeitungs-/Löschfunktionen
- Keine Kundenverwaltung
- Kein UTF-8 Support für deutsche Umlaute
-
Internet-Zugriff
- Kein Reverse Proxy
- Keine gültigen SSL-Zertifikate
- Subdomain-Routing nicht konfiguriert
Offene Aufgaben (Priorität)
🔴 Hoch
- UTF-8 Support für deutsche Sonderzeichen (äöüß)
- Reverse Proxy Setup (Nginx/Traefik) für Subdomain-Routing
- SSL-Zertifikate (Let's Encrypt) für beide Subdomains
- License Server API implementieren
/api/version- Versionscheck/api/validate- Lizenzvalidierung/api/heartbeat- Session-Management
- Admin Panel: Lizenzübersicht
🟡 Mittel
- Admin Panel: Lizenz bearbeiten/löschen
- Admin Panel: Kundenverwaltung
- Session-Tracking (nur eine aktive Session pro Lizenz)
- Logging-System für Audit-Trail
🟢 Niedrig
- Email-Benachrichtigungen
- JWT-Authentifizierung für API
- Backup-Strategie
- VPS-Migrationsdokumentation
Bekannte Probleme
- PostgreSQL Volume-Pfad wurde von absolutem Windows-Pfad auf Docker Volume geändert
- Duplizierte .env Datei in templates/ Ordner
- Credentials im Klartext in .env Dateien
- Selbstsignierte SSL-Zertifikate verursachen Browser-Warnungen
Nächste Schritte
- UTF-8 Support implementieren
- Reverse Proxy mit SSL einrichten
- Admin Panel Funktionalität erweitern
- License Server API entwickeln
Änderungsprotokoll
2025-01-06 - Journal erstellt
- Initialer Projektstand dokumentiert
- Aufgabenliste priorisiert
- Technische Anforderungen festgehalten
2025-01-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"
- Dockerfile mit deutschen Locale-Einstellungen (de_DE.UTF-8)
- PostgreSQL Container mit UTF-8 Initialisierung
- init.sql mit SET client_encoding = 'UTF8'
Geänderte Dateien:
- v2_adminpanel/app.py
- v2_adminpanel/templates/index.html
- v2_adminpanel/init.sql
- v2_adminpanel/Dockerfile
- v2/docker-compose.yaml
Nächster Test:
- Container neu bauen und starten
- Kundennamen mit Umlauten testen (z.B. "Müller GmbH", "Björn Schäfer")
- Email mit Umlauten testen
2025-01-06 - Lizenzübersicht implementiert
- Neue Route
/licensesfür Lizenzübersicht - SQL-Query mit JOIN zwischen licenses und customers
- Status-Berechnung (aktiv, läuft bald ab, abgelaufen)
- Farbcodierung für verschiedene Status
- Navigation zwischen Lizenz erstellen und Übersicht
Neue Features:
- Anzeige aller Lizenzen mit Kundeninformationen
- Status-Anzeige basierend auf Ablaufdatum
- Unterscheidung zwischen Voll- und Testversion
- Responsive Tabelle mit Bootstrap
- Link von Dashboard zur Übersicht und zurück
Geänderte/Neue Dateien:
- v2_adminpanel/app.py (neue Route hinzugefügt)
- v2_adminpanel/templates/licenses.html (neu erstellt)
- v2_adminpanel/templates/index.html (Navigation ergänzt)
Nächster Test:
- Container neu starten
- Mehrere Lizenzen mit verschiedenen Ablaufdaten erstellen
- Lizenzübersicht unter /licenses aufrufen
2025-01-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
- Lösch-Bestätigung per JavaScript confirm()
- Kunde kann nicht geändert werden (nur Lizenzdetails)
Neue Features:
/license/edit/<id>- Bearbeitungsformular/license/delete/<id>- Lizenz löschen (POST)- Aktionen-Spalte in der Lizenzübersicht
- Buttons für Bearbeiten und Löschen
- Checkbox für Aktiv-Status
Geänderte/Neue Dateien:
- v2_adminpanel/app.py (edit_license und delete_license Routen)
- v2_adminpanel/templates/licenses.html (Aktionen-Spalte hinzugefügt)
- v2_adminpanel/templates/edit_license.html (neu erstellt)
Sicherheit:
- Login-Required für alle Aktionen
- POST-only für Löschvorgänge
- Bestätigungsdialog vor dem Löschen
2025-01-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
- Bearbeitungsseite zeigt alle Lizenzen des Kunden
Neue Features:
/customers- Kundenübersicht mit Statistiken/customer/edit/<id>- Kunde bearbeiten (Name, E-Mail)/customer/delete/<id>- Kunde löschen (nur ohne Lizenzen)- Navigation zwischen allen drei Hauptbereichen
- Anzeige der Kundenlizenzen beim Bearbeiten
Geänderte/Neue Dateien:
- v2_adminpanel/app.py (customers, edit_customer, delete_customer Routen)
- v2_adminpanel/templates/customers.html (neu erstellt)
- v2_adminpanel/templates/edit_customer.html (neu erstellt)
- v2_adminpanel/templates/index.html (Navigation erweitert)
- v2_adminpanel/templates/licenses.html (Navigation erweitert)
Besonderheiten:
- Lösch-Button ist deaktiviert, wenn Kunde Lizenzen hat
- Aktive Lizenzen werden separat gezählt (nicht abgelaufen + aktiv)
- UTF-8 Support für Kundennamen mit Umlauten
2025-01-06 - Dashboard mit Statistiken implementiert
- Übersichtliches Dashboard als neue Startseite
- Statistik-Karten mit wichtigen Kennzahlen
- Listen für bald ablaufende und zuletzt erstellte Lizenzen
- Routing angepasst: Dashboard (/) und Lizenz erstellen (/create)
Neue Features:
- Statistik-Karten: Kunden, Lizenzen gesamt, Aktive, Ablaufende
- Aufteilung nach Lizenztypen (Vollversion/Testversion)
- Aufteilung nach Status (Aktiv/Abgelaufen)
- Top 10 bald ablaufende Lizenzen mit Restlaufzeit
- Letzte 5 erstellte Lizenzen mit Status
- Hover-Effekt auf Statistik-Karten
- Einheitliche Navigation mit Dashboard-Link
Geänderte/Neue Dateien:
- v2_adminpanel/app.py (dashboard() komplett überarbeitet, create_license() Route)
- v2_adminpanel/templates/dashboard.html (neu erstellt)
- v2_adminpanel/templates/index.html (Navigation erweitert)
- v2_adminpanel/templates/licenses.html (Navigation angepasst)
- v2_adminpanel/templates/customers.html (Navigation angepasst)
Dashboard-Inhalte:
- 4 Hauptstatistiken als Karten
- Lizenztyp-Verteilung
- Status-Verteilung
- Warnung für bald ablaufende Lizenzen
- Übersicht der neuesten Aktivitäten