No description
| backend | ||
| data | ||
| frontend | ||
| regeln | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
<<<<<<< HEAD
docker.dateiverwaltung
=======
Dateiverwaltung
Modulares Dokumenten-Management-System für automatische Verarbeitung, Sortierung und Benennung von Dokumenten.
Features
- Mail-Abruf: Automatischer Abruf von Attachments aus IMAP-Postfächern
- PDF-Verarbeitung: Text-Extraktion und OCR für gescannte Dokumente
- ZUGFeRD-Erkennung: Automatische Erkennung und separate Ablage von ZUGFeRD-Rechnungen
- Regel-Engine: Flexible, erweiterbare Regeln für Erkennung und Benennung
- Pipeline-System: Mehrere unabhängige Pipelines (Firma, Privat, etc.)
Schnellstart
Mit Docker (empfohlen)
# Image bauen und starten
docker-compose up -d
# Logs ansehen
docker-compose logs -f
# Stoppen
docker-compose down
Dann im Browser öffnen: http://localhost:8000
Ohne Docker
# Virtuelle Umgebung erstellen
cd backend
python -m venv venv
source venv/bin/activate # Linux/Mac
# oder: venv\Scripts\activate # Windows
# Abhängigkeiten installieren
pip install -r requirements.txt
# Starten
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Benennungsschema
Wiederkehrende Dokumente (Rechnungen)
{Jahr}.{Monat}.{Tag} - {Kategorie} - {Ersteller} - {Dokumentennummer} - {Sammelbegriff} - {Preis} EUR.pdf
Beispiel:
2026.02.01 - Rechnung - Sonepar - 10023934 - Material - 1600 EUR.pdf
Einmalige Dokumente (Verträge, Zeugnisse)
{Typ} - {Aussteller} - {Beschreibung} - {Jahr}.pdf
Beispiel:
Zeugnis - Schule X - Grundschulzeugnis - 2026.pdf
Projektstruktur
dateiverwaltung/
├── backend/
│ ├── app/
│ │ ├── models/ # Datenbank-Modelle
│ │ ├── modules/ # Kernmodule (Mail, PDF, Sorter)
│ │ ├── routes/ # API Endpoints
│ │ ├── services/ # Business Logic
│ │ └── main.py # FastAPI App
│ └── requirements.txt
├── frontend/
│ ├── static/
│ │ ├── css/
│ │ └── js/
│ └── templates/
├── data/ # Persistente Daten
│ ├── inbox/ # Neue Dateien
│ ├── processed/ # Verarbeitete Dateien
│ ├── archive/ # Sortierte Dateien
│ └── zugferd/ # ZUGFeRD-Rechnungen
├── regeln/ # Regel-Beispiele
├── docker-compose.yml
├── Dockerfile
└── README.md
Module
Mail-Fetcher
Holt Attachments aus IMAP-Postfächern mit konfigurierbaren Filtern:
- Dateitypen (.pdf, .jpg, etc.)
- Maximale Größe
- IMAP-Ordner
PDF-Processor
- Text-Extraktion: Mit pdfplumber/pypdf
- OCR: Mit ocrmypdf + Tesseract (deutsch)
- ZUGFeRD: Erkennung via factur-x Library
Sorter
Regelbasierte Erkennung und Benennung:
- Pattern-Matching (Text, Absender, Dateiname)
- Regex-basierte Feldextraktion
- Konfigurierbares Namensschema
API Endpoints
| Methode | Endpoint | Beschreibung |
|---|---|---|
| GET | /api/pipelines | Alle Pipelines |
| POST | /api/pipelines | Neue Pipeline |
| POST | /api/pipelines/{id}/run | Pipeline ausführen |
| GET | /api/pipelines/{id}/mail-configs | Mail-Konfigurationen |
| POST | /api/pipelines/{id}/mail-configs | Postfach hinzufügen |
| GET | /api/pipelines/{id}/regeln | Sortier-Regeln |
| POST | /api/pipelines/{id}/regeln | Regel hinzufügen |
| POST | /api/regeln/test | Regel testen |
| GET | /api/dokumente | Verarbeitete Dokumente |
| GET | /api/stats | Statistiken |
Regex-Beispiele für Regeln
# Datum (DD.MM.YYYY)
(\d{2}[./]\d{2}[./]\d{4})
# Rechnungsnummer
(?:Rechnungsnummer|Invoice)[:\s]*(\d+)
# Betrag mit EUR
(?:Gesamtbetrag|Summe)[:\s]*([\d.,]+)\s*(?:EUR|€)
Erweiterungen (geplant)
- Claude API Integration für KI-Validierung
- Scheduler für automatische Ausführung
- Dolibarr-Integration
- Dashboard mit Grafiken
8585cc3 (Dateiverwaltung Email attachment abruf läuft)