Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Paperless-ngx

Inhaltsverzeichnis

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
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo 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
#

Dokumentation
#

Die offizielle Dokumentation von Paperless-ngx ist unter docs.paperless-ngx.com zu finden.

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.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin