FDN-01: repository & projektgerüst
Git-Repository für bestehenden archivdms-Code initialisiert, Branch-/Commit-Konvention (feature/<ticket>-<slug>-Branches, Ticket-Prefix in Commit-Nachricht) etabliert.
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
server:
|
||||
fqdn: "dms.example.com"
|
||||
api_port: 8080
|
||||
|
||||
storage:
|
||||
base_path: "/var/lib/archivdms" # enthält inbox/, store/, ocr-tmp/ (siehe README)
|
||||
retention_days: 3650 # GoBD default: 10 Jahre
|
||||
max_upload_size_mb: 50
|
||||
|
||||
ocr:
|
||||
tesseract_path: "tesseract" # muss im PATH liegen, apt install tesseract-ocr tesseract-ocr-deu
|
||||
pdftoppm_path: "pdftoppm" # apt install poppler-utils
|
||||
languages: "deu+eng"
|
||||
timeout_seconds: 60
|
||||
|
||||
pagesplit:
|
||||
# Trennseiten-Split (internal/pagesplit): mehrseitige PDF-Scans werden beim
|
||||
# Ingest an Barcode-Trennblättern in Einzeldokumente zerlegt. Das Trennblatt
|
||||
# selbst wird verworfen, jedes Teildokument durchläuft den normalen Pfad
|
||||
# (eigene WORM-Ablage, eigene OCR, eigene Autozuordnung). Der Split wird im
|
||||
# Audit-Log als "document_split" mit Seitenbereichen + Dokument-IDs
|
||||
# protokolliert (GoBD-Nachvollziehbarkeit).
|
||||
# Braucht: apt install poppler-utils zbar-tools
|
||||
enabled: false # Default AUS — erst nach Feldvalidierung aktivieren
|
||||
marker: "ARCHIVDMS-SPLIT" # leer = Default "ARCHIVDMS-SPLIT" (Vergleich case-insensitiv)
|
||||
marker_prefix: false # true = Trennblatt-Barcode muss nur mit marker BEGINNEN
|
||||
raster_dpi: 150 # 0 = Default 150 (reicht für einen ganzseitigen Barcode)
|
||||
max_pages: 200 # 0 = Default 200; längere PDFs werden ungesplittet archiviert
|
||||
timeout_seconds: 120 # 0 = Default 120, je poppler-Aufruf
|
||||
|
||||
jobqueue:
|
||||
# Mandanten-faire Verarbeitungs-Queue (internal/jobqueue): OCR, Taxonomie-
|
||||
# Autozuordnung und on_upload-Workflows laufen asynchron in Worker-Goroutinen
|
||||
# im selben Prozess (kein separater Dienst, kein Redis). Der Upload-Request
|
||||
# macht nur noch Datei speichern + WORM + Job anlegen.
|
||||
disabled: false # true = keine Nachverarbeitung (Dokumente bleiben "queued")
|
||||
workers: 2 # Tesseract ist CPU-gebunden — nicht über die Kernzahl gehen
|
||||
poll_interval_ms: 2000 # wie oft der Dispatcher nach fälligen Jobs schaut
|
||||
job_timeout_seconds: 600 # Limit je Job, zugleich Schwelle des Reapers für hängende Jobs
|
||||
max_retries: 5 # danach dauerhaft "failed", kein Automatik-Retry mehr
|
||||
|
||||
sftp:
|
||||
enabled: false # eingebetteter SFTP-Server pro Mandant (internal/sftpserver)
|
||||
bind: ":2222"
|
||||
host_key_path: "" # leer = <storage.base_path>/.ssh/host_key (wird beim ersten Start generiert)
|
||||
|
||||
index:
|
||||
# Volltext-Index (Manticore, MySQL-Protokoll Port 9306). Leer = deaktiviert.
|
||||
# Phase 1: nur Schreib-/Sync-Layer, noch KEIN Such-Endpunkt.
|
||||
manticore_dsn: "" # z.B. "archivdms@tcp(127.0.0.1:9306)/?charset=utf8mb4"
|
||||
|
||||
database:
|
||||
host: "127.0.0.1"
|
||||
port: 5432
|
||||
name: "archivdms"
|
||||
user: "archivdms"
|
||||
password: "CHANGE_ME"
|
||||
sslmode: "disable"
|
||||
|
||||
smtp_out:
|
||||
host: "smtp.example.com"
|
||||
port: 587
|
||||
user: "noreply@example.com"
|
||||
password: "CHANGE_ME"
|
||||
tls: false
|
||||
from: "archivdms <noreply@example.com>"
|
||||
|
||||
api:
|
||||
bind: ":8080"
|
||||
secret: "CHANGE_ME_TO_A_LONG_RANDOM_SECRET"
|
||||
secure_cookies: true
|
||||
trusted_proxies: []
|
||||
|
||||
audit:
|
||||
log_path: "/var/log/archivdms/audit.log"
|
||||
retention_days: 3650
|
||||
|
||||
logging:
|
||||
path: "/var/log/archivdms/app.log"
|
||||
level: "info"
|
||||
Reference in New Issue
Block a user