Files
v2-Docker/SYSTEM_DOCUMENTATION.md
Claude Project Manager 0d7d888502 Initial commit
2025-07-05 17:51:16 +02:00

8.9 KiB

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