Hotfolder Konfiguration

Die Hotfolder-Funktionalität des OCR-Services wird über Umgebungsvariablen (Environment Variables) konfiguriert. Dies ermöglicht eine flexible Anpassung, insbesondere im Kontext von Docker-Containern oder Cloud-Deployments. Jeder Hotfolder wird durch eine eindeutige Nummer identifiziert (z.B. HOTFOLDER_1_..., HOTFOLDER_2_...).

Konfigurationsparameter pro Hotfolder

Für jeden Hotfolder können folgende Parameter über Umgebungsvariablen gesetzt werden. Ersetzen Sie durch eine fortlaufende Nummer (beginnend bei 1):

Stellen Sie sicher, dass die Anwendung über die notwendigen Lese-/Schreibrechte für alle konfigurierten Pfade verfügt. Bei Verwendung von Docker sollten diese Pfade typischerweise auf gemountete Volumes zeigen, um Datenpersistenz zu gewährleisten und den Zugriff vom Host-System zu ermöglichen. Die Pfade in den Umgebungsvariablen beziehen sich immer auf die Sichtweise innerhalb des Containers.

Globale Konfigurationsparameter für Hotfolder

Beispielkonfiguration

Das folgende Beispiel zeigt, wie zwei Hotfolder ("Invoices" und "Receipts") konfiguriert werden könnten. Diese Umgebungsvariablen werden dem Docker-Container beim Start übergeben. Die Pfade (z.B. /app/hotfolders/invoices/input) sind die Pfade innerhalb des Containers.

# Globale Einstellungen
SERVER_PORT="8080"
LOG_DIR="/app/logs"
OCR_LANGUAGE="deu"

# Hotfolder 1: Invoices (Rechnungen)
# Container-Pfad: /app/hotfolders/invoices/input (gemappt von Host: ./data/invoices/input)
HOTFOLDER_1_INPUT="/app/hotfolders/invoices/input"
HOTFOLDER_1_OUTPUT="/app/hotfolders/invoices/output"
HOTFOLDER_1_ARCHIVE="/app/hotfolders/invoices/archive"
HOTFOLDER_1_EXCEPTIONS="/app/hotfolders/invoices/errors"
HOTFOLDER_1_LOGS="/app/hotfolders/invoices/logs"
HOTFOLDER_1_LANGUAGE="deu"
# Optional: HOTFOLDER_1_ARCHIVE_RETENTION_DAYS="180" # spezifische Aufbewahrung

# Hotfolder 2: Receipts (Belege)
# Container-Pfad: /app/hotfolders/receipts/input (gemappt von Host: ./data/receipts/input)
HOTFOLDER_2_INPUT="/app/hotfolders/receipts/input"
HOTFOLDER_2_OUTPUT="/app/hotfolders/receipts/output"
HOTFOLDER_2_EXCEPTIONS="/app/hotfolders/receipts/errors"
HOTFOLDER_2_LOGS="/app/hotfolders/receipts/logs"
HOTFOLDER_2_LANGUAGE="deu"
# HOTFOLDER_2_ARCHIVE ist im Beispiel-Skript nicht definiert, daher keine Archivierung für Receipts.

Hinweise zur Verwendung mit Docker

Wenn Sie den Service in einem Docker-Container betreiben, müssen Sie die Host-Verzeichnisse, die als Hotfolder dienen sollen, in den Container mounten. Die Umgebungsvariablen (HOTFOLDER_..._INPUT etc.) beziehen sich auf die Pfade innerhalb des Containers, während die Volume-Mounts (-v Option) die Verbindung zu den Pfaden auf dem Host-System herstellen.

Ein vereinfachter Auszug aus dem docker run Befehl, der die Umgebungsvariablen und Volume-Mounts zeigt:

# Annahme: Das Skript wird in einem Verzeichnis ausgeführt,
# in dem Unterverzeichnisse ./data und ./logs existieren oder angelegt werden.
# HOST_PORT wird dynamisch ermittelt (z.B. 8080).
# IMAGE_NAME ist der Name des Docker-Images (z.B. "ocr_service" oder ein Registry-Pfad).

docker run -d \
  --name "ocr_service" \
  --restart unless-stopped \
  -p HOST_PORT:8080 \
  \
  # Globale Umgebungsvariablen
  -e SERVER_PORT="8080" \
  -e LOG_DIR="/app/logs" \
  -e OCR_LANGUAGE="deu" \
  \
  # Hotfolder 1 (Invoices) - Umgebungsvariablen (Pfade im Container)
  -e HOTFOLDER_1_INPUT="/app/hotfolders/invoices/input" \
  -e HOTFOLDER_1_OUTPUT="/app/hotfolders/invoices/output" \
  -e HOTFOLDER_1_ARCHIVE="/app/hotfolders/invoices/archive" \
  -e HOTFOLDER_1_EXCEPTIONS="/app/hotfolders/invoices/errors" \
  -e HOTFOLDER_1_LOGS="/app/hotfolders/invoices/logs" \
  -e HOTFOLDER_1_LANGUAGE="deu" \
  \
  # Hotfolder 2 (Receipts) - Umgebungsvariablen (Pfade im Container)
  -e HOTFOLDER_2_INPUT="/app/hotfolders/receipts/input" \
  -e HOTFOLDER_2_OUTPUT="/app/hotfolders/receipts/output" \
  -e HOTFOLDER_2_EXCEPTIONS="/app/hotfolders/receipts/errors" \
  -e HOTFOLDER_2_LOGS="/app/hotfolders/receipts/logs" \
  -e HOTFOLDER_2_LANGUAGE="deu" \
  \
  # Volume-Mounts für Hotfolder 1 (Invoices)
  # Format: -v /pfad/auf/host:/pfad/im/container
  -v "$(pwd)/data/invoices/input:/app/hotfolders/invoices/input" \
  -v "$(pwd)/data/invoices/output:/app/hotfolders/invoices/output" \
  -v "$(pwd)/data/invoices/archive:/app/hotfolders/invoices/archive" \
  -v "$(pwd)/data/invoices/errors:/app/hotfolders/invoices/errors" \
  -v "$(pwd)/data/invoices/logs:/app/hotfolders/invoices/logs" \
  \
  # Volume-Mounts für Hotfolder 2 (Receipts)
  -v "$(pwd)/data/receipts/input:/app/hotfolders/receipts/input" \
  -v "$(pwd)/data/receipts/output:/app/hotfolders/receipts/output" \
  -v "$(pwd)/data/receipts/errors:/app/hotfolders/receipts/errors" \
  -v "$(pwd)/data/receipts/logs:/app/hotfolders/receipts/logs" \
  \
  # Volume-Mount für allgemeine App-Logs
  -v "$(pwd)/logs:/app/logs" \
  \
  IMAGE_NAME

In diesem Beispiel werden auf Ihrem Host-System Verzeichnisse wie ./data/invoices/input und ./data/receipts/input (relativ zum Ausführungsort des Skripts) erwartet. Das Skript legt diese an, falls sie nicht existieren. Dateien, die beispielsweise in ./data/invoices/input auf dem Host abgelegt werden, erscheinen dann unter /app/hotfolders/invoices/input im Container und werden vom Hotfolder-Service für "Invoices" verarbeitet.

Zurück zur Startseite