6.6 KiB
6.6 KiB
The Road So Far
Stand: 09.06.2025 - 15:39 Uhr
🚀 Aktueller Status
✅ Was bereits läuft
-
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
-
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
-
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
-
Internet-Zugriff
- Admin Panel: https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com ✅
- API: https://api-software-undso.z5m7q9dk3ah2v1plx6ju.com (502 Bad Gateway - License Server fehlt)
- IONOS SSL-Zertifikate konfiguriert
- DynDNS aktiv
- Feste IP: 192.168.178.88
-
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
-
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)
-
Test-Daten Management (ERWEITERT!)
is_testFlag 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
- 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!)
-
Kunden ohne Lizenz anlegen
- Kundenerstellung ohne Lizenzzwang ermöglichen
- UI-Anpassung im Customer-Form
- Backend-Validierung anpassen
-
Audit Log IP-Problem beheben
- IP-Adressen werden nicht korrekt gespeichert/angezeigt
- Proxy-Header (X-Forwarded-For) korrekt auslesen
- Real-IP Ermittlung hinter Nginx
-
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
-
Backup-Löschfunktion
- Delete-Button für Backups hinzufügen
- Sicherheitsabfrage vor Löschung
- Audit-Log Eintrag bei Löschung
Weitere geplante Features
-
Verlängerungs-System im Admin Panel
- Verlängerungs-Vorlagen (manual, standard, upgrade_path, trial_to_full)
- Lizenzbasierte Verlängerungseinstellungen (nicht kundenbasiert)
- Tabelle
renewal_templateserstellen licensesTabelle 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
-
Device-Management im Admin Panel (Vorbereitung für License Server)
licensesTabelle erweitern (max_devices INTEGER DEFAULT 1)- UI zum Setzen der Geräte-Limits pro Lizenz
- Tabelle
device_registrationserstellen - 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)
-
License Server API implementieren
- Flask-Anwendung mit PostgreSQL-Anbindung
/api/version- Versionscheck/api/validate- Lizenzvalidierung (mitis_testCheck)/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
-
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)
-
Erweiterte Sicherheit
- IP-Whitelist für Admin-Zugriff
- Passwort-Richtlinien (Komplexität, Ablauf)
- JWT-Authentifizierung für API
-
Lizenz-Features
- Bulk-Import (CSV/Excel Upload)
- Lizenz-Templates
- Lizenz-Historie
- Flexible Geräte-Limits pro Lizenz (verschiedene Lizenzmodelle: Einzelplatz, Team, Business, Enterprise)
-
Benachrichtigungen
- E-Mail bei ablaufenden Lizenzen
- Dashboard-Benachrichtigungen
- Webhook-Support
🔧 Bekannte Probleme
- 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
-
README.md erstellen
- Projektübersicht
- Installation
- Quick Start
-
API_DOCS.md
- License Server API Dokumentation
- Beispiel-Requests
- Response-Formate
-
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)