⚡ HomelabVergleich

Paperless-ngx im Homelab: Rechnungen und Belege automatisch scannen, OCR-en und durchsuchbar machen

Ein Schuhkarton voller Rechnungen, drei Ordner mit „Steuer" beschriftet und ein Handyfoto eines Belegs, den du vor zwei Jahren gebraucht hättest – so sieht typische Belegverwaltung aus, bevor sie digital wird. Paperless-ngx löst genau dieses Problem: Du wirfst Scans und PDFs in einen Posteingang, das System extrahiert per OCR den Text, vergibt Metadaten und indexiert alles. Danach findest du jeden Beleg über die Volltextsuche in Sekunden statt über Ordnerpfade.

Warum Papierchaos teuer wird: Datenhoheit und Volltextsuche

Die Motivation ist nicht Ordnungsliebe, sondern Zugriff. Steuerlich relevante Unterlagen unterliegen Aufbewahrungsfristen (§ 147 AO, § 257 HGB – je nach Art 2 bis 10 Jahre), Versicherungen und Gewährleistungen verlangen Rechnungen oft Jahre nach dem Kauf. Wer nur in Papier denkt, sortiert manuell und findet trotzdem nichts wieder.

Drei konkrete Gründe sprechen für ein selbst gehostetes Archiv:

1. Datenhoheit: Rechnungen enthalten Adressen, Bankdaten und Kundennamen. In der Cloud bist du auf die Verfügbarkeit, die Preispolitik und die Sicherheit eines fremden Anbieters angewiesen. Auf eigener Hardware bleiben sie unter deiner Kontrolle.

2. Volltextsuche statt Ordnerchaos: Du suchst „Stadtwerke August 2026" oder eine Rechnungsnummer und bekommst den Treffer, weil der komplette Text indexiert ist – auch bei gescannten Seiten.

3. Kostenlos und unabhängig: Paperless-ngx ist Open Source unter der GPL-3.0-Lizenz. Keine Lizenzgebühr, kein Abo, kein Anbieterwechsel-Risiko.

Was Paperless-ngx kann: Dokumentenarten, Tags, Korrespondenten, Custom Fields

Die Kernlogik des Systems baut auf vier Metadaten-Bausteinen:

Hinzu kommen Speicherorte (Storage Paths), die den Ablagepfad im Medienordner über Platzhalter wie {created_year}/{correspondent}/{title} definieren. So entsteht auf der Platte eine lesbare Ordnerstruktur, während du in der Oberfläche weiter über Metadaten suchst. Automatische Regeln können Tags und Korrespondenten beim Import anhand von Suchbegriffen vergeben.

Docker-Compose-Setup mit PostgreSQL und Redis

Für den produktiven Betrieb lohnt sich PostgreSQL statt der eingebauten SQLite-Datenbank – es verkraftet parallele Zugriffe besser. Redis dient als Broker für die Verarbeitungswarteschlange. Die Verzeichnisse liegen als Bind-Mounts unter /srv/paperless:


services:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - /srv/paperless/redis:/data

  db:
    image: docker.io/library/postgres:16
    restart: unless-stopped
    volumes:
      - /srv/paperless/pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: bitte-aendern

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8000:8000"
    volumes:
      - /srv/paperless/data:/usr/src/paperless/data
      - /srv/paperless/media:/usr/src/paperless/media
      - /srv/paperless/consume:/usr/src/paperless/consume
      - /srv/paperless/export:/usr/src/paperless/export
    environment:
      PAPERLESS_DBHOST: db
      PAPERLESS_DBNAME: paperless
      PAPERLESS_DBUSER: paperless
      PAPERLESS_DBPASS: bitte-aendern
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_OCR_LANGUAGE: deu
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_SECRET_KEY: bitte-aendern
      PAPERLESS_FILENAME_FORMAT: "{created_year}/{correspondent}/{title}"
      PAPERLESS_ADMIN_USER: admin

Start mit docker compose up -d, danach erreichst du die Oberfläche unter http://<server-ip>:8000. Wichtig: PAPERLESS_SECRET_KEY und beide Passwörter durch lange Zufallswerte ersetzen, bevor der Dienst erreichbar ist. Getrennte Verzeichnisse für pgdata, media und data erleichtern später das selektive Backup. Vertiefende Hinweise zur Container-Praxis sammelt der Artikel zu Docker-Compose Best Practices.

Brother-Scanner anbinden: Scan to Network Folder

Die eleganteste Anbindung nutzt den Netzzugriff des Multifunktionsdruckers direkt auf den consume-Ordner. Am Beispiel eines Brother MFC-L3750CDW (gilt analog für MFC-L3770CDW und ähnliche Modelle mit Scan-to-Network-Directory):

1. Auf dem Paperless-Host eine SMB-Freigabe consume einrichten, die auf /srv/paperless/consume zeigt – mit eigenem Benutzer und Schreibrecht.

2. Am Brother-Gerät im Webinterface unter Netzwerk → Scannen zu Netzwerk ein Profil anlegen: Protokoll SMB, Ziel \\192.168.1.10\consume, Benutzer und Passwort der Freigabe.

3. Scanprofil auf Schwarzweiß oder Graustufen, 300 dpi, PDF stellen. Diese Werte liefern die zuverlässigste OCR-Grundlage.

Nach dem Scan erkennt Paperless-ngx die neue Datei innerhalb weniger Sekunden, verarbeitet sie und ordnet sie über die Regeln ein. Ein FTP-Profil auf denselben Ordner funktioniert als Alternative, falls SMB an deinem Gerät nicht verfügbar ist.

OCR mit Tesseract und deutscher Sprachdatei

Die Texterkennung übernimmt Tesseract, das im offiziellen Paperless-Container bereits enthalten ist. Über PAPERLESS_OCR_LANGUAGE: deu aktivierst du die deutsche Spracherkennung; für gemischte Dokumente kombinierst du Sprachen als deu+eng. Umlaute und ß erkennt die deutsche Sprachdatei tesseract-ocr-deu korrekt – ohne sie würde aus „Straße" schnell „StraBe".

Bei schlechten Scans helfen diese Optionen: PAPERLESS_OCR_DESKEW (horizontales Ausrichten), PAPERLESS_OCR_ROTATE_PAGES (automatisches Drehen) und PAPERLESS_OCR_DESKEW zusammen mit 300 dpi als Mindestauflösung. Für durchsuchbare Ausgaben setzt PAPERLESS_OCR_MODE: redo-ocr oder das Standardverfahren die Textebene direkt ins PDF.

E-Rechnungen: ZUGFeRD und XRechnung aus dem Posteingang

Hybride ZUGFeRD-PDFs (Factur-X) enthalten sichtbares PDF plus eingebettetes XML. Paperless-ngx liest dieses XML beim Import direkt aus und übernimmt Rechnungsnummer, Datum, Betrag und Absender als Metadaten – du musst die Datei nur in consume legen. Für reine XRechnung-XML-Dateien gilt ehrlich: Sie werden als Dokument importiert und die Kerndaten ausgewertet; die vollständige Buchungslogik bleibt dem Rechnungswesen überlassen. Lege dafür einen Unterordner wie /srv/paperless/consume/erechnung an, um E-Rechnungen getrennt zu beobachten. Die XML-Standards selbst sind in der offiziellen Spezifikation von Factur-X/ZUGFeRD beschrieben (siehe Quellen).

Backup-Konzept: PostgreSQL plus Medienordner

Ein Paperless-Backup ohne die Datenbank ist blind, eines ohne die Medien leer. Sichere daher beide gemeinsam. Für PostgreSQL erzeugst du einen konsistenten Dump:


docker compose exec db pg_dump -U paperless paperless > /backup/paperless-$(date +%F).sql

Den Medien- und Datenordner packst du als Archiv:


tar czf /backup/paperless-media-$(date +%F).tar.gz -C /srv/paperless media

Ergänzend erzeugt docker compose exec webserver document_exporter ../export eine menschenlesbare Kopie aller Dokumente samt Metadaten. Nach der 3-2-1-Regel hältst du drei Kopien auf zwei Medien, eine davon außerhalb des Standorts – etwa verschlüsselt offsite. Details zur Umsetzung stehen im Artikel Backup-Strategie 3-2-1.

Typische Fehlerquellen und Troubleshooting

Die meisten Probleme entstehen nicht im Betrieb, sondern beim Import. Häufig sind:

| Symptom | Wahrscheinliche Ursache | Maßnahme |

|---|---|---|

| Umlaute falsch (ß, ü) | Datei in ISO-8859-1, nicht UTF-8 | Quelldatei neu in UTF-8 exportieren |

| OCR findet nichts | Scan unter 200 dpi oder kontrastarm | Neu scannen mit 300 dpi, Graustufen |

| Dienst startet nicht | DB-Passwort falsch oder Volume-Rechte | docker compose logs webserver prüfen |

| Falsches Datum | Zeitzone nicht gesetzt | PAPERLESS_TIME_ZONE: Europe/Berlin |

| Dokument doppelt | Erneut in consume gelegt | Duplikatprüfung aktivieren, Datei entfernen |

| Import hängt | Falsche DB-Engine nach Wechsel | PAPERLESS_DBENGINE=postgresql setzen |

Einordnung: Was Paperless-ngx nicht kann

Paperless-ngx ist ein Dokumentenarchiv, keine Finanzbuchhaltung. Es erzeugt keine Buchhaltungssätze, ordnet Belege nicht automatisch Bankbuchungen zu, führt keine Umsatzsteuer-Voranmeldung und übernimmt keine Abschreibung. Die erkannten Rechnungsdaten lassen sich per API an eine Buchhaltungs- oder ERP-Software weiterreichen – die eigentliche Buchungslogik bleibt dort. Ebenso ist es kein Workflow-Tool für Freigabeprozesse und keine revisionssichere Ablage nach GoBD ohne zusätzliche Konfiguration. Wer das erwartet, wird enttäuscht; wer ein durchsuchbares, selbst gehostetes Archiv sucht, bekommt genau das.

FAQ

Ist Paperless-ngx kostenlos?

Ja. Paperless-ngx steht unter der GPL-3.0-Lizenz und kann ohne Lizenzkosten selbst gehostet werden. Nur Hardware und Strom fallen an.

Welche Hardware brauche ich im Homelab?

Für einen Haushalt genügen 2 vCPU und 4 GB RAM; die OCR-Verarbeitung ist der Hauptlastfaktor. Ein Raspberry Pi 4 ab 4 GB oder ein Mini-PC mit x86-Prozessor reichen aus. Bei mehreren hundert Scans pro Monat sind 8 GB RAM komfortabler.

Kann ich PostgreSQL auch später noch umstellen?

Ja, aber nicht trivial: Die vorhandene Datenbank muss per pg_dump/pg_restore oder Admin-Befehl migriert werden. Plane den Wechsel deshalb von Anfang an ein – oder starte gleich mit PostgreSQL.

Wie erreiche ich Paperless von unterwegs?

Nicht direkt ins Internet stellen. Nutze ein VPN wie WireGuard oder einen abgesicherten Reverse-Proxy mit HTTPS und Authentifizierung. Der Zugriff über einen Reverse-Proxy mit HTTPS kapselt den Dienst hinter TLS.

Erkennt Paperless-ngx handschriftliche Belege?

Tesseract ist auf gedruckten Text optimiert. Handschrift wird nur unzuverlässig erkannt; für verlässliche Ergebnisse eignen sich maschinell erzeugte Dokumente am besten.

Quellen

Siehe auch: Paperless-ngx einrichten, Paperless-ngx Backup, Backup-Strategie 3-2-1, Docker-Compose Best Practices.

Hinweis: Dieser Artikel ist redaktioneller Inhalt und enthält keine Affiliate- oder Partner-Links. Alle Angaben entsprechen dem Stand 2026 und können sich ändern.