docker.dateiverwaltung/Source
data bb84f200d0 Fix: Feinsortierung im Scheduler + DB-Reconnect
- execute_sortierregeln verarbeitet jetzt OrdnerRegel-Zuweisungen
  (wie der Button, nicht nur freie_ordner)
- DB-Verbindung mit Retry bei Verbindungsfehlern (5 Versuche)
- SQLAlchemy 2.0 kompatibel (text() für Raw-SQL)
- Bessere Pool-Einstellungen für MariaDB

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-23 13:52:31 +01:00
..
backend Fix: Feinsortierung im Scheduler + DB-Reconnect 2026-02-23 13:52:31 +01:00
frontend Fehler beseitigt, Zeitpläne und Status, Export Funktion 2026-02-10 19:15:45 +01:00
regeln V 1.9 Fehler beseitig grobsortierung pdf Originale Sicherung, und Zugferd erkennung 2026-02-08 15:27:10 +01:00
docker-compose-unraid.yml V 1.9 Fehler beseitig grobsortierung pdf Originale Sicherung, und Zugferd erkennung 2026-02-08 15:27:10 +01:00
docker-compose.yml V 2.0.3 - PUID/PGID Support, ZUGFeRD-Fix 2026-02-11 18:33:39 +01:00
Dockerfile V 2.0.3 - PUID/PGID Support, ZUGFeRD-Fix 2026-02-11 18:33:39 +01:00
entrypoint.sh V 2.0.3 - PUID/PGID Support, ZUGFeRD-Fix 2026-02-11 18:33:39 +01:00
README.md V 2.0.3 - PUID/PGID Support, ZUGFeRD-Fix 2026-02-11 18:33:39 +01:00

Dateiverwaltung v2.0.3

Dokumenten-Management-System für automatische Verarbeitung, Sortierung und Benennung von Dokumenten.

Features

  • Mail-Abruf: Automatischer Abruf von Attachments aus IMAP-Postfächern
  • Grobsortierung: Dateien nach Typ verschieben (PDF, Bilder, ZUGFeRD, Signiert)
  • PDF-Verarbeitung: Text-Extraktion und OCR für gescannte Dokumente
  • ZUGFeRD-Erkennung: Automatische Erkennung von ZUGFeRD-Rechnungen
  • Regel-Engine: Flexible Regeln für Erkennung und automatische Benennung
  • Zeitpläne: Automatische Ausführung per Scheduler

Deployment mit Portainer

1. Image bauen oder pullen

Option A: Image aus tar laden

docker load -i dateiverwaltung-image.tar

Option B: Image selbst bauen

docker build -t dateiverwaltung:latest .

2. Container in Portainer erstellen

Neuen Container erstellen mit folgenden Einstellungen:

Image: dateiverwaltung:latest

Port Mapping:

Host Container
8080 8000

Volumes:

Host Container Beschreibung
/mnt/user/... /mnt/user/... Zugriff auf NAS-Ordner

Environment Variables:

Variable Beschreibung Beispiel
DATABASE_URL Datenbank-Verbindung (MariaDB/MySQL) mysql+pymysql://user:pass@host/db
TZ Zeitzone Europe/Berlin
PUID User-ID für Dateiberechtigungen 1003
PGID Group-ID für Dateiberechtigungen 100

Wichtig für Unraid/NAS: PUID und PGID sollten auf den Benutzer gesetzt werden, der Zugriff auf die gemounteten Ordner hat. So werden Dateien mit den richtigen Berechtigungen erstellt.

# Benutzer-ID herausfinden:
id <benutzername>
# Beispiel: uid=1003(deep) gid=100(users)

Beispiel DATABASE_URL Formate:

# MariaDB/MySQL
mysql+pymysql://benutzer:passwort@192.168.1.100:3306/dateiverwaltung

# SQLite (nur für Tests)
sqlite:///dateiverwaltung.db

3. Datenbank vorbereiten

Bei MariaDB/MySQL die Datenbank vorher erstellen:

CREATE DATABASE dateiverwaltung CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'dateiverwaltung'@'%' IDENTIFIED BY 'sicheres_passwort';
GRANT ALL PRIVILEGES ON dateiverwaltung.* TO 'dateiverwaltung'@'%';
FLUSH PRIVILEGES;

Die Tabellen werden beim ersten Start automatisch erstellt.

4. Container starten

Nach dem Start ist die Web-Oberfläche erreichbar unter:

http://<server-ip>:8080

Docker Compose (Alternative)

version: '3.8'

services:
  dateiverwaltung:
    image: dateiverwaltung:latest
    container_name: dateiverwaltung
    restart: unless-stopped
    ports:
      - "8080:8000"
    volumes:
      - /mnt:/mnt
    environment:
      - TZ=Europe/Berlin
      - DATABASE_URL=mysql+pymysql://user:pass@db-host/dateiverwaltung

Konfiguration

Alle Einstellungen werden in der Datenbank gespeichert:

  • Postfächer: IMAP-Server, Zugangsdaten, Filter
  • Quell-Ordner: Pfade, Dateitypen, ZUGFeRD/Signiert-Behandlung
  • Sortier-Regeln: Erkennungsmuster, Extraktion, Benennungsschema
  • Zeitpläne: Automatische Ausführung

Module

Mail-Fetcher

Holt Attachments aus IMAP-Postfächern:

  • Filter nach Dateitypen und Größe
  • Nur ungelesene oder alle Mails
  • Alle IMAP-Ordner durchsuchen

Grobsortierung

Sortiert Dateien nach Typ:

  • Konfigurierbare Dateitypen
  • ZUGFeRD-Erkennung
  • Signierte PDF-Erkennung
  • Optional: Direkt verschieben ohne Regeln

PDF-Processor

  • Text-Extraktion mit pdfplumber/pypdf
  • OCR mit ocrmypdf + Tesseract (deutsch)
  • ZUGFeRD-Erkennung via factur-x

Sortier-Regeln

  • Keyword-basierte Erkennung
  • Regex für Feldextraktion (Datum, Betrag, Nummer)
  • Flexibles Benennungsschema

Benennungsschema Beispiele

# Rechnungen
{datum} - {firma} - Rechnung {nummer}.pdf
-> 2026-02-01 - Amazon - Rechnung 123456.pdf

# Mit Betrag
{datum} - {firma} - {betrag} EUR.pdf
-> 2026-02-01 - Amazon - 49.99 EUR.pdf

Systemanforderungen

  • Docker oder Python 3.11+
  • MariaDB/MySQL (empfohlen) oder SQLite
  • Für OCR: tesseract-ocr, ocrmypdf