# V2-Docker System Documentation ## WICHTIGER HINWEIS FÜR ZUKÜNFTIGE ENTWICKLUNG **DIESE SERVICES WERDEN NICHT VERWENDET:** - ❌ Redis - NICHT BENÖTIGT für <100 Kunden - ❌ RabbitMQ - NICHT BENÖTIGT für <100 Kunden - ❌ Prometheus - NICHT BENÖTIGT - ❌ Grafana - NICHT BENÖTIGT - ❌ Alertmanager - NICHT BENÖTIGT - ❌ Externe Monitoring-Tools - NICHT BENÖTIGT **Das System verwendet NUR:** - ✅ PostgreSQL für alle Datenspeicherung - ✅ Integrierte Überwachung im Admin Panel - ✅ Direkte Datenbankverbindungen ohne Cache - ✅ Synchrone Verarbeitung ohne Message Queue ## Overview V2-Docker is a streamlined system featuring a License Server, Admin Panel, and Lead Management with integrated monitoring. This document consolidates all architecture and implementation details. ## License Server Architecture ### Core Principles - Designed to avoid refactoring - Microservices architecture - Hardware-based license binding - Offline grace period support (7 days) - Version control with update enforcement ### Core Functionalities #### 1. License Validation - Real-time license verification - Hardware binding (MAC address, CPU ID, system UUID) - Version compatibility checks - Usage limit enforcement #### 2. Activation Management - Initial activation with hardware fingerprint - Multi-activation support - Deactivation capabilities - Transfer between systems #### 3. Usage Monitoring - Active user tracking - Feature usage statistics - Heartbeat monitoring (15-minute intervals) - Historical data analysis ### Microservices Architecture #### Aktive Services 1. **License Server** (`v2_lizenzserver`) - Core license validation - Vollständig implementiert - API-Endpunkte für Aktivierung, Verifizierung, Info - Läuft auf internem Port über Nginx 2. **Admin Panel** (`v2_adminpanel`) - Web-basierte Verwaltung - Vollständig implementiert auf Port 80 - Customer, License, Resource Management - Integrierte Backup-Funktionalität - Lead Management System #### Infrastructure Services - **PostgreSQL** - Main database - **Redis** - Caching - **RabbitMQ** - Message queue - **Nginx** - Reverse proxy *Note: Analytics, Admin API, and Auth services exist in code but are currently inactive.* #### Communication - REST APIs für externe Kommunikation - Redis für Caching - RabbitMQ für asynchrone Verarbeitung (vorbereitet) ### Database Schema See `v2_adminpanel/init.sql` for complete schema. Key feature: Monthly partitioned `license_heartbeats` table. ### Security Concepts - JWT-based authentication - API key management - Rate limiting (100 requests/minute) - Hardware fingerprint validation - Encrypted communication ### Implementation Status (June 22, 2025) #### Completed - ✅ License Server mit vollständigen API-Endpunkten - POST /api/license/activate - POST /api/license/verify - GET /api/license/info/{license_key} - POST /api/license/session/start - Session-Initialisierung - POST /api/license/session/heartbeat - Keep-alive - POST /api/license/session/end - Session-Beendigung - POST /api/version/check - GET /api/version/latest - ✅ Admin Panel mit voller Funktionalität - Customer Management mit erweiterten Features - License Management mit Resource Allocation - Resource Pool Management (Domains, IPs, Telefonnummern) - Session Management mit Live-Monitor - Lead Management System (vollständiges CRM) - Batch Operations für Bulk-Aktionen - Export/Import Funktionalität - Device Registration und Management - API Key Management (System-wide) - ✅ Monitoring Stack (Prometheus, Grafana, Alertmanager) - Integriertes Monitoring Dashboard - Vorkonfigurierte Dashboards - Alert Rules für kritische Metriken - ✅ Docker Services Konfiguration - ✅ JWT/API Key Management - ✅ Backup-System (integriert im Admin Panel) - ✅ 2FA-Authentifizierung - ✅ Audit Logging mit Request IDs - ✅ Rate Limiting (konfigurierbar) - ✅ Single-Session Enforcement (Account Forger) - ✅ Partitionierte Datenbank für Heartbeats #### Code vorhanden aber nicht aktiviert - ⏸️ Analytics Service (auskommentiert) - ⏸️ Admin API Service (auskommentiert) - ⏸️ Auth Service (auskommentiert) #### Geplant - 📋 Notification Service - 📋 Erweiterte Analytics - 📋 Machine Learning Integration ## Lead Management System ### Status **Vollständig implementiert** als Teil des Admin Panels unter `/leads/` ### Update June 22, 2025 - 20:26 - **Neuer Navbar-Eintrag**: "Lead Management" über "Ressourcen Pool" - **Lead Management Dashboard** unter `/leads/management` mit: - Übersicht Statistiken (Institutionen, Kontakte, Benutzer-Attribution) - Aktivitätsfeed zeigt wer was hinzugefügt/bearbeitet hat - Schnellaktionen (Institution hinzufügen, alle anzeigen, exportieren) - Geteilte Informationsansicht zwischen rac00n und w@rh@mm3r ### Architecture - **Modular Architecture**: Clean separation of concerns - **Service Layer Pattern**: Business logic in `leads/services.py` - **Repository Pattern**: Data access in `leads/repositories.py` - **Blueprint Integration**: Routes in `leads/routes.py` ### Data Model (implementiert) ``` lead_institutions ├── lead_contacts (1:n) │ └── lead_contact_details (1:n) - Telefon/E-Mail └── lead_notes (1:n) - Versionierte Notizen ``` ### Implementierte Features 1. ✅ Institution Management (CRUD) 2. ✅ Contact Person Management mit mehreren Telefon/E-Mail 3. ✅ Notes mit vollständiger Versionierung 4. ✅ Flexible Kontaktdetails (beliebig viele pro Person) 5. ✅ Audit Trail Integration 6. ✅ Service/Repository Pattern für Clean Code 7. ✅ JSONB Felder für zukünftige Erweiterungen ### API Endpoints - GET /leads/ - Institutionen-Übersicht - GET /leads/institutions - Institutionen-Liste - POST /leads/institutions - Neue Institution - GET /leads/institutions/{id} - Institution Details - PUT /leads/institutions/{id} - Institution bearbeiten - DELETE /leads/institutions/{id} - Institution löschen - GET /leads/contacts/{id} - Kontakt Details - POST /leads/contacts/{id}/details - Kontaktdetail hinzufügen - PUT /leads/contacts/{id}/details/{detail_id} - Detail bearbeiten - POST /leads/contacts/{id}/notes - Notiz hinzufügen ## Admin Panel ### Implementierte Features 1. **Authentication & Security** - ✅ Login mit 2FA-Unterstützung - ✅ Session Management - ✅ Rate Limiting - ✅ IP-Blocking bei fehlgeschlagenen Logins - ✅ Audit Logging aller Aktionen 2. **Customer Management** - ✅ CRUD-Operationen für Kunden - ✅ Kundensuche mit Autocomplete - ✅ Kunden-Lizenz-Übersicht - ✅ Quick Stats pro Kunde 3. **License Management** - ✅ Lizenzerstellung (Einzel und Batch) - ✅ Lizenzbearbeitung und -löschung - ✅ Bulk-Operationen (Aktivieren/Deaktivieren) - ✅ Device Management mit Hardware IDs - ✅ Resource Allocation (Domains, IPs, Telefonnummern) - ✅ Quick Edit Funktionalität - ✅ Session Management und Monitoring - ✅ Lizenz-Konfiguration für Account Forger 4. **Monitoring & Analytics** - ✅ Dashboard mit Live-Statistiken - ✅ Lizenzserver-Monitoring - ✅ Session-Überwachung mit Live-Updates - ✅ Resource Pool Monitoring - ✅ Integriertes Monitoring Dashboard (/monitoring) - ✅ Prometheus/Grafana Integration - ✅ Alert Management 5. **System Administration** - ✅ Backup & Restore (manuell und geplant) - ✅ Export-Funktionen (CSV, JSON) - ✅ Audit Log Viewer mit Filterung - ✅ Blocked IPs Management - ✅ Feature Flags Konfiguration - ✅ API Key Generation und Management - ✅ Lizenzserver Administration - ✅ Session-Terminierung durch Admins ### Technical Stack - Backend: Flask 3.0.3, PostgreSQL - Frontend: Bootstrap 5.3, jQuery - Security: bcrypt, pyotp (2FA), JWT ## Deployment Configuration ### Docker Services #### Aktive Services - `db`: PostgreSQL database (Port 5432) - `admin-panel`: Admin interface (interner Port 5000) - `nginx-proxy`: Reverse proxy (Ports 80, 443) - `license-server`: License server (interner Port 8443) #### NICHT VERWENDETE Services (DO NOT USE) - ❌ `redis`: Redis cache - NICHT BENÖTIGT für <100 Kunden - ❌ `rabbitmq`: Message queue - NICHT BENÖTIGT für <100 Kunden - ❌ External monitoring (Prometheus, Grafana, Alertmanager) - NICHT BENÖTIGT - ❌ `monitoring/docker-compose.monitoring.yml` - NICHT VERWENDEN **WICHTIG**: Das System verwendet KEINE externen Monitoring-Tools, Redis oder RabbitMQ. Die eingebaute Überwachung im Admin Panel ist ausreichend für <100 Kunden. ### Environment Configuration Required: DATABASE_URL, SECRET_KEY, JWT_SECRET NOT Required: REDIS_HOST, RABBITMQ_HOST (diese NICHT konfigurieren) See docker-compose.yaml for all environment variables. ## Current Status System is production-ready with all core features implemented: - ✅ License management with session enforcement - ✅ Lead management CRM - ✅ Resource pool management - ✅ Integrierte Überwachung (Admin Panel) - ✅ Backup and audit systems