The Road so far update

Dieser Commit ist enthalten in:
2025-06-09 16:20:39 +02:00
Ursprung 90ce9a52f8
Commit dbd50bdde6

Datei anzeigen

@@ -1,191 +1,108 @@
# The Road So Far # THE ROAD SO FAR
Stand: 09.06.2025 - 15:39 Uhr **Stand: 09.06.2025, 15:41 MEZ**
## 🚀 Aktueller Status ## 🚀 Aktueller Status
### ✅ Was bereits läuft ### ✅ Fertiggestellt
1. **Docker-Infrastruktur** **Admin Panel (v2_adminpanel)**
- docker-compose.yaml mit 4 Services (PostgreSQL, Admin Panel, License Server, Nginx) - Vollständig funktionsfähig unter https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
- Interne Bridge-Netzwerkkommunikation - Kundenverwaltung mit UTF-8 Support
- Resource Limits konfiguriert (2 CPUs, 4GB RAM pro Service) - Lizenzverwaltung (Erstellen, Bearbeiten, Löschen)
- Nginx Reverse Proxy für SSL-Termination - 2FA-Authentifizierung
- Session-Management mit Audit-Log
- Backup-System (verschlüsselt)
- IP-Blocking & Rate-Limiting
- Resource-Pool Management (Domains, IPs, Telefonnummern)
- Export-Funktionen (Excel, CSV)
- Batch-Lizenz-Erstellung
- Testdaten-Management
2. **PostgreSQL Datenbank** **Datenbank (PostgreSQL)**
- Alle Tabellen implementiert (customers, licenses, sessions, audit_log, backup_history, resource_pools, etc.) - Alle Tabellen erstellt und optimiert
- UTF-8 Support mit deutscher Locale (de_DE.UTF-8) - UTF-8 Support vollständig
- Zeitzone Europe/Berlin konfiguriert - Timezone Europe/Berlin
- Persistente Datenspeicherung - Backup-Routinen implementiert
3. **Admin Panel (Vollständig implementiert)** **Reverse Proxy (Nginx)**
- Flask-Anwendung mit Session-Management - SSL-Terminierung aktiv
- Login für 2 Admin-User (rac00n, w@rh@mm3r) - Security Headers konfiguriert
- Dashboard mit Statistiken (ohne Testdaten) - Rate Limiting implementiert
- Komplette CRUD-Funktionalität für Lizenzen und Kunden - DynDNS-Routing funktioniert
- 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** ### ❌ Noch nicht implementiert
- 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
5. **Sicherheit** **Lizenzserver API (v2_lizenzserver)**
- Rate-Limiting (5 Versuche, dann 24h Sperre) - Container läuft nur als Placeholder
- CAPTCHA nach 2 Fehlversuchen (vorbereitet) - Keine API-Endpoints implementiert
- IP-Verwaltung mit manueller Entsperrung - 502 Bad Gateway bei Zugriff auf https://api-software-undso.z5m7q9dk3ah2v1plx6ju.com
- Security Headers (HSTS, X-Frame-Options, etc.)
- Timing-Attack-Schutz
6. **Resource Pool System** ## 📋 TODO-Liste
- 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!) ### 1. Admin Panel UI-Verbesserungen
- `is_test` Flag für Lizenzen, Kunden und Resource Pools - [ ] **Kombinierte Kunden-Lizenz-Ansicht**: Master-Detail-Layout mit Kundenliste links, Lizenzen rechts
- Testdaten werden in allen Statistiken ausgefiltert - [ ] **Globale Suche**: Eine Suchbox für alles (Kunden, Lizenzen, Keys) mit Autocomplete
- UI-Kennzeichnung mit 🧪 Badge überall - [ ] **Expandable Rows**: Details in Tabelle ausklappen ohne Seitenwechsel
- Filter für "Testdaten" und "Live-Daten" - [ ] **Dark Mode**: Dunkles Theme mit System-Preference Detection
- Automatische Verknüpfung: Test-Kunde → Test-Lizenz → Test-Ressourcen - [ ] **Batch-Import**: CSV/Excel Upload für Massen-Import mit Validierung
- Konsistente Test/Live-Trennung über alle Ebenen - [ ] **Timeline/Calendar View**: Kalenderansicht für Lizenz-Ablaufdaten
- Alle bestehenden Daten als Test markiert (19 Lizenzen, 5 Kunden, 20 Ressourcen)
### ❌ Was noch fehlt ### 2. Lizenzserver-Implementation
- [ ] Flask-API erstellen
- [ ] Endpoints implementieren:
- [ ] `/api/v1/validate` - Lizenzkey-Validierung
- [ ] `/api/v1/version` - Versions-Check
- [ ] `/api/v1/heartbeat` - Session-Management
- [ ] `/api/v1/device/register` - Geräte-Registrierung
- [ ] `/api/v1/device/unregister` - Geräte-Abmeldung
- [ ] Datenbank-Schema erweitern (devices, heartbeats, api_logs)
- [ ] Rate-Limiting für API
- [ ] API-Key Authentication
1. **License Server API** (Hauptaufgabe!) ### 3. Testing & Dokumentation
- Nur Platzhalter-Container vorhanden - [ ] API-Tests schreiben
- Keine API-Endpunkte implementiert - [ ] Integrationstests
- Keine Lizenzvalidierung - [ ] API-Dokumentation (OpenAPI/Swagger)
- Kein Session-Management - [ ] Deployment-Guide aktualisieren
## 🎯 Nächste Schritte (Priorität Hoch) ## 🎯 Nächste Schritte
### Admin Panel Änderungen (NEUE PRIORITÄT!) 1. **Priorität 1**: UI-Verbesserungen Admin Panel
- Kombinierte Ansicht für bessere UX
- Globale Suche für Effizienz
1. **Kunden ohne Lizenz anlegen** 2. **Priorität 2**: Lizenzserver-API implementieren
- Kundenerstellung ohne Lizenzzwang ermöglichen - Basis-Flask-App aufsetzen
- UI-Anpassung im Customer-Form - Erste Endpoints (validate, version)
- Backend-Validierung anpassen - Datenbank-Verbindung
2. **Audit Log IP-Problem beheben** 3. **Priorität 3**: Testing & Härtung
- IP-Adressen werden nicht korrekt gespeichert/angezeigt - Umfassende Tests
- Proxy-Header (X-Forwarded-For) korrekt auslesen - Security-Audit
- Real-IP Ermittlung hinter Nginx - Performance-Optimierung
3. **E-Mail Benachrichtigungen für ablaufende Lizenzen** ## 💡 Notizen für VPS-Migration
- 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** - Domain-Wechsel vorbereiten (Environment Variables)
- Delete-Button für Backups hinzufügen - Feste IP statt DynDNS
- Sicherheitsabfrage vor Löschung - Backup-Strategie für Produktion
- Audit-Log Eintrag bei Löschung - Monitoring-Setup planen
- SSL-Zertifikate (Let's Encrypt)
- Firewall-Regeln dokumentieren
### Weitere geplante Features ## 🔧 Entwicklungsumgebung
1. **Verlängerungs-System im Admin Panel** **Docker-Befehle:**
- Verlängerungs-Vorlagen (manual, standard, upgrade_path, trial_to_full) ```bash
- Lizenzbasierte Verlängerungseinstellungen (nicht kundenbasiert) docker-compose down
- Tabelle `renewal_templates` erstellen docker-compose build
- `licenses` Tabelle erweitern (renewal_template, renewal_count) docker-compose up -d
- 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
5. **Device-Management im Admin Panel** (Vorbereitung für License Server) **Zugriff:**
- `licenses` Tabelle erweitern (max_devices INTEGER DEFAULT 1) - Admin Panel: https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
- UI zum Setzen der Geräte-Limits pro Lizenz - API (geplant): https://api-software-undso.z5m7q9dk3ah2v1plx6ju.com
- 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)
6. **License Server API implementieren** **Test-Accounts:**
- Flask-Anwendung mit PostgreSQL-Anbindung - rac00n / 1248163264
- `/api/version` - Versionscheck - w@rh@mm3r / Warhammer123!
- `/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
7. **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)