Paperless-ngx #
Paperless-ngx is a document management system that transforms your physical documents into a searchable online archive. It processes your scanned documents, extracts metadata, and makes them easily accessible.
Status #
Deployment #
Komponenten #
Die Anwendung wird als generisches app-template Helm-Chart von BJW-S Labs bereitgestellt. Das verwendete Docker-Image ist ghcr.io/paperless-ngx/paperless-ngx.
Diese Paperless-ngx-Instanz besteht aus mehreren Komponenten:
- Paperless-ngx: Die Kernanwendung für das Dokumentenmanagement.
- PostgreSQL: Die relationale Datenbank zum Speichern von Dokumentenmetadaten.
- Redis: Wird für Caching und Aufgabenwarteschlangen verwendet.
- Gotenberg: Eine Docker-basierte zustandslose API zum Konvertieren verschiedener Dokumentformate in PDF, die für Dokumentenvorschauen verwendet wird.
- Apache Tika: Ein Toolkit zum Erkennen und Extrahieren von Metadaten und strukturiertem Textinhalt aus verschiedenen Dateitypen, das für die anfängliche Dokumentenanalyse verwendet wird.
Quelle #
- Paperless-ngx: GitHub Repository
- Gotenberg: GitHub Repository
- Apache Tika: Apache Tika Website
- PostgreSQL: Official Docker Image
- Redis: Official Docker Image
Dokumentation #
Die offizielle Dokumentation von Paperless-ngx ist unter docs.paperless-ngx.com zu finden.
- Paperless-ngx Documentation
- Gotenberg Documentation
- Apache Tika Documentation
- PostgreSQL Documentation
- Redis Documentation
Funktion #
Paperless-ngx ist ein System zur Archivierung digitaler Dokumente. Es überwacht einen “consume”-Ordner auf neue Dateien (z.B. von einem Netzwerkscanner). Neue Dokumente werden verarbeitet:
- OCR: Der Textinhalt wird mittels optischer Zeichenerkennung (OCR) extrahiert, um das Dokument durchsuchbar zu machen.
- Tagging: Basierend auf dem Inhalt werden automatisch Tags, Korrespondenten und Dokumententypen zugewiesen.
- Archivierung: Das Originaldokument und die OCR-Daten werden gespeichert und über eine Weboberfläche zugänglich gemacht.
Der Dienst besteht aus mehreren Containern:
- Paperless-ngx: Die Hauptanwendung.
- PostgreSQL: Die Datenbank.
- Redis: Message-Broker für Hintergrundaufgaben.
- Gotenberg & Tika: Dienste zur Konvertierung von Office-Dokumenten und anderen Formaten in PDFs für die Verarbeitung.
Lokale Anpassungen #
Die Konfiguration erfolgt über Umgebungsvariablen in der values.yaml-Datei.
Wichtige Einstellungen #
- Ingress: Der Zugriff auf die Weboberfläche wird über einen Ingress mit einem Hostnamen ermöglicht.
- Speicher: Alle persistenten Daten (Dokumente, Datenbank, etc.) werden auf einem NFS-Share gespeichert.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/paperless-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/paperless | kubectl apply -n paperless -f -
Abhängigkeiten #
- Ein laufender Kubernetes-Cluster.
- Ein konfigurierter Ingress-Controller (z.B. Traefik).
- Eine Zertifikatsmanagement-Lösung (z.B. cert-manager) zur Bereitstellung von TLS-Zertifikaten.
- Ein NFS-Server für persistente Speicherung.