Initial commit
Dieser Commit ist enthalten in:
263
SYSTEM_DOCUMENTATION.md
Normale Datei
263
SYSTEM_DOCUMENTATION.md
Normale Datei
@ -0,0 +1,263 @@
|
||||
# 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
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren