Dateien
Hetzner-Backup/THE_ROAD_SO_FAR.md

6.6 KiB

The Road So Far

Stand: 09.06.2025 - 15:39 Uhr

🚀 Aktueller Status

Was bereits läuft

  1. Docker-Infrastruktur

    • 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

    • Alle Tabellen implementiert (customers, licenses, sessions, audit_log, backup_history, resource_pools, etc.)
    • UTF-8 Support mit deutscher Locale (de_DE.UTF-8)
    • Zeitzone Europe/Berlin konfiguriert
    • Persistente Datenspeicherung
  3. Admin Panel (Vollständig implementiert)

    • Flask-Anwendung mit Session-Management
    • Login für 2 Admin-User (rac00n, w@rh@mm3r)
    • Dashboard mit Statistiken (ohne Testdaten)
    • Komplette CRUD-Funktionalität für Lizenzen und Kunden
    • Session-Tracking und -Verwaltung
    • Audit-Log für alle Aktionen
    • Export-Funktion (CSV/Excel)
    • Backup-System mit Verschlüsselung
    • Suche, Filter und Sortierung
    • Live-Filtering ohne Reload
    • Bulk-Operationen
    • Session-Timeout mit Live-Timer (5 Minuten)
    • 2FA (Two-Factor Authentication)
    • Passwort-Änderung
    • Resource Pool Management
    • NEU: Test-Flag System für Lizenzen
  4. Internet-Zugriff

  5. Sicherheit

    • Rate-Limiting (5 Versuche, dann 24h Sperre)
    • CAPTCHA nach 2 Fehlversuchen (vorbereitet)
    • IP-Verwaltung mit manueller Entsperrung
    • Security Headers (HSTS, X-Frame-Options, etc.)
    • Timing-Attack-Schutz
  6. Resource Pool System

    • Verwaltung von Domains, IPv4-Adressen, Telefonnummern
    • 3-Status-System: available, allocated, quarantine
    • UI für Management, Historie, Metriken
    • Integration in Lizenzerstellung (0-10 Ressourcen pro Typ)
  7. Test-Daten Management (ERWEITERT!)

    • is_test Flag für Lizenzen, Kunden und Resource Pools
    • Testdaten werden in allen Statistiken ausgefiltert
    • UI-Kennzeichnung mit 🧪 Badge überall
    • Filter für "Testdaten" und "Live-Daten"
    • Automatische Verknüpfung: Test-Kunde → Test-Lizenz → Test-Ressourcen
    • Konsistente Test/Live-Trennung über alle Ebenen
    • Alle bestehenden Daten als Test markiert (19 Lizenzen, 5 Kunden, 20 Ressourcen)

Was noch fehlt

  1. License Server API (Hauptaufgabe!)
    • Nur Platzhalter-Container vorhanden
    • Keine API-Endpunkte implementiert
    • Keine Lizenzvalidierung
    • Kein Session-Management

🎯 Nächste Schritte (Priorität Hoch)

Admin Panel Änderungen (NEUE PRIORITÄT!)

  1. Kunden ohne Lizenz anlegen

    • Kundenerstellung ohne Lizenzzwang ermöglichen
    • UI-Anpassung im Customer-Form
    • Backend-Validierung anpassen
  2. Audit Log IP-Problem beheben

    • IP-Adressen werden nicht korrekt gespeichert/angezeigt
    • Proxy-Header (X-Forwarded-For) korrekt auslesen
    • Real-IP Ermittlung hinter Nginx
  3. E-Mail Benachrichtigungen für ablaufende Lizenzen

    • IMAP-Einstellungen im Profil (pro Admin-User)
    • Benachrichtigungszeitpunkte: 1 Monat, 3 Wochen, 2 Wochen, 1 Woche, 3 Tage, 1 Tag vor Ablauf
    • Tabelle für IMAP-Settings erstellen
    • Background-Job für E-Mail-Versand
    • Template für Ablauf-E-Mails
  4. Backup-Löschfunktion

    • Delete-Button für Backups hinzufügen
    • Sicherheitsabfrage vor Löschung
    • Audit-Log Eintrag bei Löschung

Weitere geplante Features

  1. Verlängerungs-System im Admin Panel

    • Verlängerungs-Vorlagen (manual, standard, upgrade_path, trial_to_full)
    • Lizenzbasierte Verlängerungseinstellungen (nicht kundenbasiert)
    • Tabelle renewal_templates erstellen
    • licenses Tabelle erweitern (renewal_template, renewal_count)
    • UI für Verlängerungs-Verwaltung pro Lizenz
    • Bulk-Änderung von Verlängerungseinstellungen
    • Dashboard-Widget für anstehende Verlängerungen
    • Verlängerungs-Historie pro Lizenz anzeigen
    • Automatische Verlängerung nach Vorlage
  2. Device-Management im Admin Panel (Vorbereitung für License Server)

    • licenses Tabelle erweitern (max_devices INTEGER DEFAULT 1)
    • UI zum Setzen der Geräte-Limits pro Lizenz
    • Tabelle device_registrations erstellen
    • Geräte-Verwaltung UI (Liste registrierter Geräte pro Lizenz)
    • Support-Funktionen (Geräte entfernen, zurücksetzen)
    • Dashboard-Widget für Geräte-Auslastung
    • Verschiedene Lizenzmodelle (Einzelplatz=1, Team=3, Business=5, Enterprise=unbegrenzt)
  3. License Server API implementieren

    • Flask-Anwendung mit PostgreSQL-Anbindung
    • /api/version - Versionscheck
    • /api/validate - Lizenzvalidierung (mit is_test Check)
    • /api/heartbeat - Session-Management
    • /api/register-device - Geräte-Registrierung (NEU!)
    • Device-Token Generation statt globalem API-Key
    • Hardware-ID Validierung
    • API-Key Authentifizierung (oder Device-Token)
    • Rate Limiting
    • Dockerfile anpassen
    • requirements.txt erstellen
  4. Testing

    • API-Endpunkte testen
    • Integration mit Admin Panel verifizieren
    • Session-Management prüfen
    • Test-Flag Funktionalität verifizieren
    • Device-Registrierung testen

📋 Offene Aufgaben (Priorität Mittel)

  1. Erweiterte Sicherheit

    • IP-Whitelist für Admin-Zugriff
    • Passwort-Richtlinien (Komplexität, Ablauf)
    • JWT-Authentifizierung für API
  2. Lizenz-Features

    • Bulk-Import (CSV/Excel Upload)
    • Lizenz-Templates
    • Lizenz-Historie
    • Flexible Geräte-Limits pro Lizenz (verschiedene Lizenzmodelle: Einzelplatz, Team, Business, Enterprise)
  3. Benachrichtigungen

    • E-Mail bei ablaufenden Lizenzen
    • Dashboard-Benachrichtigungen
    • Webhook-Support

🔧 Bekannte Probleme

  1. Credentials im Klartext in .env
    • OK für PoC
    • Muss für Produktion geändert werden (siehe Best Practices im JOURNAL)

💡 Nice-to-have / Dokumentation

  1. README.md erstellen

    • Projektübersicht
    • Installation
    • Quick Start
  2. API_DOCS.md

    • License Server API Dokumentation
    • Beispiel-Requests
    • Response-Formate
  3. Weitere Features

    • Dark Mode
    • Mobile Optimierung
    • Mehrsprachigkeit
    • Grafische Statistiken
    • Docker Resource-Optimierung

🚀 Deployment-Hinweise

  • Aktuell: PoC läuft lokal auf Windows-PC mit Docker
  • Ziel: Migration auf Hetzner VPS
  • Wichtig: Neue Credentials für Produktion generieren!
  • Domain: Wird bei Migration geändert (feste IP statt DynDNS)