# Paperless Manager Eine Erweiterungsplattform für [Paperless-NGX](https://github.com/paperless-ngx/paperless-ngx) zur automatisierten Dokumentenverarbeitung – von der Scanner-Eingangsbox bis zur regelbasierten Ablage. ## Was ist Paperless Manager? Paperless-NGX ist ein leistungsstarkes DMS, bietet aber wenig Automatisierung beim Erfassen und Verarbeiten eingehender Dokumente. Paperless Manager schließt diese Lücke: - Dokumente kommen per Scanner, E-Mail oder Dateiablage herein - Sie werden aufbereitet, gesplittet, per OCR erkannt und klassifiziert - Regelwerke entscheiden automatisch über Tags, Export und Weiterleitung - Etiketten werden direkt aus dem System heraus gedruckt Der Paperless Manager läuft als eigenständige Anwendung neben Paperless-NGX und kommuniziert über dessen REST API. ## Features ### Scanner-Eingangsbox - Überwachung eines Scan-Verzeichnisses per Filesystem-Watcher - PDF-Vorschau, Seitenrotation und Splitting direkt im Browser - Barcode- und QR-Code-Erkennung zur automatischen Dokumententrennung - OCR über Ollama (llava Vision-Modell) für handschriftliche und gescannte Seiten - GoBD-konformes Archivieren der Originaldokumente ### E-Mail-Import - IMAP-Anbindung zum automatischen Abruf von Postfächern - Extraktion von E-Mail-Anhängen (PDF, ZUGFeRD-Rechnungen) - Zuordnung von Absendern zu Paperless-Korrespondenten ### Regelbasierte Nachbearbeitung - Konfigurierbare Filterregeln (Feld-Operatoren: eq, contains, in, …) - Aktionen: Tags setzen, Felder aktualisieren, E-Mail senden, WebDAV-Export - Priorisierbare Regelketten mit Stop-Bedingung ### Etikettendruck-Agent - SVG-Vorlagen → PNG-Rendering via `@resvg/resvg-js` - SSE-basierte Job-Queue für angebundene Druckagenten - Automatische Job-Sperrung zur Vermeidung von Race Conditions ### Authentifizierung & Berechtigungen - OIDC-Integration (z. B. Authentik) mit JWT-Validierung - API-Key-Unterstützung für maschinellen Zugriff - Granulares Berechtigungssystem auf Basis von OIDC-Gruppen ## Technologie | Schicht | Stack | |---------|-------| | Backend | NestJS (TypeScript), TypeORM, MySQL 8 | | Frontend | React 19, Ant Design, Vite | | OCR | Ollama (llava) | | Deployment | Docker Compose, Gitea Actions CI/CD | | Auth | OIDC (Authentik), JWT, API Keys | ## Deployment ```bash cp .env.example .env # .env anpassen (DB, Paperless-URL, OIDC, Ollama, …) docker compose up -d ``` Backend läuft auf Port `3100`, Frontend wird über nginx ausgeliefert. Eine vollständige Beschreibung aller Umgebungsvariablen findet sich in `.env.example`. ## Entwicklung ```bash # Backend cd paperless-backend npm install npm run start:dev # Frontend cd paperless-frontend npm install npm run dev # Proxy auf localhost:3100 ```