| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/arni-solutions.de/web/plate-ai-api/ |
Upload File : |
# ============================================================================ # plate-ai-api — Beispiel-Konfiguration. Kopieren nach .env und anpassen. # cp .env.example .env # ============================================================================ # --- Allgemein --- APP_ENV=production # development | production DEBUG=false API_PREFIX=/api/v1 # Kommagetrennte erlaubte Origins für CORS (leer = keine Browser-CORS-Freigabe) CORS_ORIGINS= # --- Server --- HOST=127.0.0.1 PORT=8080 WORKERS=2 # Gunicorn-Worker (CPU-Kerne beachten, kein GPU) # --- Sicherheit --- # Secret zum Hashen/HMAC der API-Keys. MUSS gesetzt & geheim sein. # Generieren: python -c "import secrets; print(secrets.token_urlsafe(48))" SECRET_KEY=CHANGE_ME_super_secret_random_string # Separater Key/Passwort für Admin-Endpunkte (Header X-Admin-Token) ADMIN_TOKEN=CHANGE_ME_admin_token # --- Datenbank (PostgreSQL empfohlen) --- # Postgres: postgresql+psycopg://user:pass@localhost:5432/plate_ai # MariaDB: mysql+pymysql://user:pass@localhost:3306/plate_ai DATABASE_URL=postgresql+psycopg://plateai:plateai@localhost:5432/plate_ai # --- Redis (optional; für verteiltes Rate-Limit / Cache / Queue) --- # Leer lassen -> In-Memory-Fallback (nur für Single-Worker/Dev sinnvoll) REDIS_URL=redis://localhost:6379/0 # --- Upload / Bild-Limits --- MAX_UPLOAD_MB=10 # harte Obergrenze eingehender Dateien ALLOWED_IMAGE_TYPES=image/jpeg,image/png,image/webp MAX_IMAGE_DIMENSION=1920 # längere Kante -> auf diesen Wert herunterskaliert MIN_IMAGE_DIMENSION=64 # kleiner = Ablehnung # --- Rate-Limiting (Default-Tarif; pro API-Key überschreibbar in DB) --- RATE_LIMIT_PER_MINUTE=60 RATE_LIMIT_PER_MONTH=10000 # --- DSGVO / Datenspeicherung --- STORE_IMAGES=false # true nur für Debug/Training (opt-in!) STORE_RESULTS=true # Ergebnis-Metadaten (ohne Bild) speichern MASK_PLATE_IN_LOGS=true # Kennzeichen in Logs maskieren (z.B. HRO-**-***) RESULT_RETENTION_DAYS=30 # automatische Löschung alter Ergebnisse DEBUG_IMAGE_DIR=data/debug # --- Modelle / Pipeline --- # Engines: yolo (ONNX) | opencv (Heuristik-Fallback) bzw. paddle | easyocr VEHICLE_DETECTOR=yolo PLATE_DETECTOR=yolo OCR_ENGINE=paddle VEHICLE_CLASSIFIER=onnx # onnx | none (Marke/Modell; braucht eigenes Modell) # Pfade zu Modell-Weights (leer => Modul meldet sich als "nicht verfügbar") MODEL_DIR=data/models VEHICLE_DETECTOR_WEIGHTS=data/models/yolov8n.onnx PLATE_DETECTOR_WEIGHTS=data/models/plate_yolov8n.onnx VEHICLE_CLASSIFIER_WEIGHTS=data/models/vehicle_make.onnx # Confidence-Schwellen VEHICLE_MIN_CONFIDENCE=0.35 PLATE_DETECT_MIN_CONFIDENCE=0.30 OCR_MIN_CONFIDENCE=0.40 MODEL_MIN_CONFIDENCE=0.60 # unter diesem Wert -> model = "unknown" # --- Regionen-Daten --- REGIONS_DE_FILE=data/regions/de_regions.json COUNTRIES_EU_FILE=data/regions/eu_countries.json