Dateien
Hetzner-Backup/JOURNAL.md
2025-06-07 13:26:52 +02:00

4.5 KiB

v2-Docker Projekt Journal

Projektübersicht

Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker-basierter Architektur.

Technische Anforderungen


Aktueller Stand (2025-01-06)

Implementiert

  1. 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)
  2. PostgreSQL Datenbank

    • Tabellen: customers, licenses
    • Init-Script vorhanden
    • Persistente Datenspeicherung
  3. 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

  1. License Server API

    • Nur Platzhalter-Container vorhanden
    • Keine API-Endpunkte
    • 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

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
    • /api/version - Versionscheck
    • /api/validate - Lizenzvalidierung
    • /api/heartbeat - Session-Management
  5. Admin Panel: Lizenzübersicht

🟡 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

🟢 Niedrig

  1. Email-Benachrichtigungen
  2. JWT-Authentifizierung für API
  3. Backup-Strategie
  4. VPS-Migrationsdokumentation

Bekannte Probleme

  1. PostgreSQL Volume-Pfad wurde von absolutem Windows-Pfad auf Docker Volume geändert
  2. Duplizierte .env Datei in templates/ Ordner
  3. Credentials im Klartext in .env Dateien
  4. Selbstsignierte SSL-Zertifikate verursachen Browser-Warnungen

Nächste Schritte

  1. UTF-8 Support implementieren
  2. Reverse Proxy mit SSL einrichten
  3. Admin Panel Funktionalität erweitern
  4. 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 /licenses fü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