Files
Homelab--Bratonein-Kontroll…/Kapitel 16/Free Rohtext.md

864 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kapitel 16 Paperless-ngx (Digitale Dokumentenverwaltung & OCR-Archiv)
## Einleitung
Im UCC spielt eine **zuverlässige Dokumentenverwaltung** eine zentrale Rolle egal ob du Rechnungen, Verträge, Streaming-Belege oder Notizen sicher ablegen willst.
**Paperless-ngx** bietet dafür eine datensouveräne Lösung: eine schlanke, lokal gehostete Plattform, die deine Dokumente automatisch erkennt, verschlagwortet und durchsuchbar macht komplett offline, ohne externe Cloud.
In diesem Kapitel baust du eine eigene **Paperless-ngx-Instanz** auf Basis eines **Debian-12-LXC** auf.
Du lernst, wie du sie installierst, konfigurierst und über den **Nginx Proxy Manager** sicher in dein UCC integrierst.
Das Ergebnis ist ein vollwertiges, durchsuchbares Dokumentenarchiv, das sich nahtlos in deine bestehende Infrastruktur einfügt.
👉 **Screenshot geeignet:** UCC-Übersicht mit markiertem Paperless-ngx-Container neben Nextcloud und Netdata
> [!NOTE]
> Dieses Kapitel richtet sich an **Streamer:innen, Einsteiger:innen und Nerds**,
> die unabhängig arbeiten und ihre Daten lieber selbst verwalten wollen.
> Paperless-ngx läuft vollständig lokal kein Konto, keine Telemetrie, keine Abhängigkeiten von Dritten.
Paperless-ngx kombiniert eine moderne Weboberfläche mit einer performanten **OCR-Erkennung** und klar strukturiertem Tag-System.
So wird dein UCC nicht nur zum digitalen Archiv, sondern auch zum Werkzeug für schnelle Recherche und revisionssichere Ablage.
👉 **Screenshot geeignet:** Browseransicht mit Paperless-Dashboard (Dokumentenliste, Suchfeld und Tag-Filter sichtbar)
---
## Voraussetzungen & Ressourcen
Paperless-ngx ist ressourcenschonend, benötigt aber eine stabile Umgebung für den dauerhaften Betrieb.
Da das System mehrere Prozesse (Webserver, Datenbank, OCR-Engine) parallel ausführt, sollte der Container klar definiert dimensioniert sein.
### Container-Ressourcen
* **CPU:** 2 vCPU
Erforderlich, um OCR-Jobs und Webzugriffe parallel abarbeiten zu können, ohne dass sich die Erkennung verlangsamt.
* **RAM:** 4 GB
Die OCR-Engine (Tesseract) und die Django-basierte Weboberfläche profitieren stark von zusätzlichem Arbeitsspeicher.
* **Speicherplatz:** 30 GB
Reicht für das System, Caching, Logs und eine mittlere Dokumentenmenge aus.
Bei größerem Archiv kann später ein separater Storage angebunden werden.
* **Netzwerk:** Statische IP-Adresse oder DHCP-Reservierung
Notwendig für eine zuverlässige Integration in Proxy-Manager und Backup-Prozesse.
* **Betriebssystem:** Debian 12 (Bookworm)
Stabil, leichtgewichtig und in allen bisherigen UCC-Komponenten bewährt.
👉 **Screenshot geeignet:** Ressourcenübersicht beim Erstellen des Paperless-LXC (vCPU 2 | RAM 4 GB | Storage 30 GB | Debian 12 Bookworm)
### Technische Voraussetzungen
Vor der Installation sollte das UCC folgende Bedingungen erfüllen:
* **Proxmox VE** ist eingerichtet und aktiv.
Der Container wird direkt über die Proxmox-Oberfläche erstellt und verwaltet.
* **Nginx Proxy Manager (NPM)** ist funktionsfähig.
Er stellt später die Weboberfläche von Paperless-ngx über HTTPS bereit.
* **DNS- oder DynDNS-Eintrag** für `paperless.deinedomain.tld` existiert.
Dieser ist notwendig, um ein gültiges SSL-Zertifikat ausstellen zu können.
* **Internetverbindung** im Container ist aktiv.
Paperless-ngx wird über die offiziellen Repositories installiert und benötigt Internetzugriff beim Setup.
* **SSH-Zugriff** auf den Container ist möglich, zum Beispiel:
```bash
ssh root@<IP-des-Containers>
```
Ersetze `<IP-des-Containers>` durch die tatsächliche Adresse deines Paperless-LXC.
> [!IMPORTANT]
> Der Paperless-Container sollte auf einem Host mit stabiler Netzwerkanbindung liegen und genügend I/O-Leistung haben.
> Die OCR-Erkennung erzeugt kurzzeitig hohe CPU- und Festplattenlast.
👉 **Screenshot geeignet:** Proxmox-Interface mit markiertem Paperless-LXC in der Containerliste
---
## Schritt-für-Schritt-Anleitung
### Schritt 1 System vorbereiten und aktualisieren
Starte den frisch erstellten Container und öffne die Konsole direkt in Proxmox oder per SSH.
Führe anschließend ein vollständiges Systemupdate durch, um alle Pakete auf den neuesten Stand zu bringen:
```bash
apt update && apt upgrade -y
```
Nach Abschluss des Updates den Container neu starten:
```bash
reboot
```
Melde dich nach dem Neustart erneut an:
```bash
ssh root@<IP-des-Containers>
```
> [!NOTE]
> Das Update ist Pflicht, da Paperless-ngx auf aktuelle Python- und Systembibliotheken angewiesen ist.
> Alte Pakete können zu Fehlern bei der Installation oder beim Start des Webservers führen.
👉 **Screenshot geeignet:** Proxmox-Konsole mit erfolgreichem Abschluss von `apt upgrade` (keine ausstehenden Pakete)
### Schritt 2 Basis-Pakete installieren
Paperless-ngx benötigt für seine Installation einige grundlegende Pakete, um HTTPS-Verbindungen, GPG-Schlüssel und Python-Umgebungen zu verwalten.
Diese werden jetzt installiert:
```bash
apt install -y ca-certificates curl gnupg lsb-release python3 python3-venv python3-pip redis-server
```
Damit sind alle zentralen Komponenten vorhanden, die Paperless-ngx später nutzt:
- **curl & gnupg:** für Repository- und Paketverwaltung
- **python3 & venv:** für die Django-basierte Weboberfläche
- **redis-server:** als Caching- und Warteschlangendienst
> [!TIP]
> Wenn bei der Installation ein Fehler auftritt, überprüfe zuerst die Internetverbindung des Containers
> und wiederhole den Befehl. Debian benötigt funktionierende DNS-Auflösung, um alle Abhängigkeiten zu laden.
👉 **Screenshot geeignet:** Terminalausgabe nach erfolgreicher Installation der Grundpakete (`python3`, `redis-server`, `curl`)
### Schritt 3 Benutzer und Verzeichnisstruktur anlegen
Paperless-ngx läuft sicherer, wenn es nicht als root, sondern unter einem eigenen Systembenutzer betrieben wird.
Lege daher zunächst den Benutzer und die Standardverzeichnisse an:
```bash
useradd -r -m -d /opt/paperless -s /bin/bash paperless
mkdir -p /opt/paperless/data /opt/paperless/media /opt/paperless/export
chown -R paperless:paperless /opt/paperless
```
Damit sind die grundlegenden Speicherorte angelegt:
- **/opt/paperless/data** Datenbank, Konfiguration und interne Dateien
- **/opt/paperless/media** Dokumente und OCR-Ergebnisse
- **/opt/paperless/export** für spätere Backups oder manuelle Exporte
> [!NOTE]
> Diese Struktur entspricht der Empfehlung des Paperless-Projekts und erleichtert spätere Updates oder Migrationen.
> Sie trennt Anwendungsdaten klar von Systempfaden.
👉 **Screenshot geeignet:** Terminal mit ausgeführtem `ls -l /opt/paperless` (alle drei Unterordner sichtbar, Eigentümer „paperless“)
### Schritt 4 Paperless-ngx installieren
Wechsle in das Benutzerverzeichnis und führe die Installation direkt unter dem Benutzer *paperless* aus:
```bash
su - paperless
cd /opt/paperless
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip wheel
pip install paperless-ngx
```
Damit wird die aktuelle stabile Version von Paperless-ngx aus dem offiziellen Python-Repository installiert.
Die Installation kann je nach Systemleistung mehrere Minuten dauern.
> [!NOTE]
> Paperless-ngx nutzt intern Django, Celery und Redis.
> Durch die Installation in einer eigenen virtuellen Umgebung (`venv`) bleiben alle Abhängigkeiten sauber getrennt vom Basissystem.
Nach Abschluss der Installation kannst du den Erfolg prüfen:
```bash
paperless-ngx --version
```
Die Ausgabe sollte eine aktuelle Versionsnummer anzeigen, z. B.:
```
paperless-ngx 2.11.2
```
👉 **Screenshot geeignet:** Terminalausgabe mit sichtbarer Paperless-ngx-Versionsnummer nach erfolgreicher Installation
### Schritt 5 Umgebungsvariablen und Konfiguration einrichten
Paperless-ngx wird über eine `.env`-Datei gesteuert.
Darin legst du fest, **wo Daten gespeichert werden**, **welche Dienste verwendet werden** und **wie die Instanz erreichbar ist**.
Diese Datei ist das Herzstück der gesamten Installation alle späteren Dienste (z. B. OCR, Webserver, Redis) lesen ihre Einstellungen daraus.
Erstelle die Datei im Hauptverzeichnis des Paperless-Benutzers:
```bash
nano /opt/paperless/.env
```
Füge folgenden Basisinhalt ein:
```
# Datenbank- und Caching-Backend
PAPERLESS_REDIS=redis://localhost:6379
PAPERLESS_DBENGINE=sqlite
PAPERLESS_DBNAME=/opt/paperless/data/db.sqlite3
# Verzeichnisse
PAPERLESS_CONSUMPTION_DIR=/opt/paperless/consume
PAPERLESS_DATA_DIR=/opt/paperless/data
PAPERLESS_MEDIA_ROOT=/opt/paperless/media
PAPERLESS_EXPORT_DIR=/opt/paperless/export
# Allgemeine Einstellungen
PAPERLESS_TIME_ZONE=Europe/Berlin
PAPERLESS_PORT=8000
# OCR-Konfiguration
PAPERLESS_OCR_LANGUAGE=deu
PAPERLESS_OCR_CLEAN=clean
PAPERLESS_OCR_MODE=skip
# Sicherheit
PAPERLESS_SECRET_KEY=$(openssl rand -hex 32)
```
Speichern (STRG + O, Enter) und schließen (STRG + X).
---
#### Erklärung der wichtigsten Parameter
| Variable | Bedeutung |
|-----------|------------|
| `PAPERLESS_REDIS` | Adresse des lokalen Redis-Dienstes für Warteschlangen und Caching. |
| `PAPERLESS_DBENGINE` / `PAPERLESS_DBNAME` | Definiert die Datenbank. Im Free-Bereich nutzen wir SQLite (lokale Datei). |
| `PAPERLESS_CONSUMPTION_DIR` | Eingangsverzeichnis für neue Dokumente. Hier überwacht Paperless-ngx ständig auf neue Dateien. |
| `PAPERLESS_DATA_DIR` | System- und Konfigurationsdaten. |
| `PAPERLESS_MEDIA_ROOT` | Ablageort für erkannte, indizierte und verschlagwortete Dokumente. |
| `PAPERLESS_EXPORT_DIR` | Ziel für manuelle oder automatisierte Exporte. |
| `PAPERLESS_TIME_ZONE` | Lokale Zeitzone wichtig für korrekte Zeitstempel. |
| `PAPERLESS_PORT` | Interner Port, über den die Anwendung erreichbar ist (wird später über NPM veröffentlicht). |
| `PAPERLESS_OCR_LANGUAGE` | Sprache der Texterkennung (ISO 639-3-Code). |
| `PAPERLESS_SECRET_KEY` | Zufallswert für kryptografische Funktionen (Session, Login). Wird einmalig generiert. |
> [!TIP]
> Der OCR-Modus kann später im Premium-Kapitel erweitert werden, um Scans automatisch zu bereinigen oder mehrsprachig zu verarbeiten.
> Für den Free-Bereich bleibt er bewusst minimal gehalten, um Ressourcen zu sparen.
Erstelle anschließend das noch fehlende Eingangsverzeichnis und setze korrekte Rechte:
```bash
mkdir /opt/paperless/consume
chown -R paperless:paperless /opt/paperless
```
👉 **Screenshot geeignet:** geöffnete `.env`-Datei im Editor mit hervorgehobenen Abschnitten für Datenbank, OCR und Port
### Schritt 6 Datenbank initialisieren und Teststart
Mit der Konfigurationsdatei im Platz kannst du Paperless-ngx jetzt zum ersten Mal starten.
Damit die Anwendung ihre Datenbank und internen Tabellen erstellt, führe folgende Befehle als Benutzer *paperless* aus:
```bash
su - paperless
cd /opt/paperless
source venv/bin/activate
paperless-ngx migrate
```
Dieser Schritt legt automatisch die interne Datenbankstruktur an Tabellen für Benutzer, Dokumente, Tags und OCR-Daten.
Sobald der Vorgang abgeschlossen ist, kann die Anwendung testweise gestartet werden:
```bash
paperless-ngx runserver 0.0.0.0:8000
```
Öffne im Browser:
```
http://<IP-des-Containers>:8000
```
Du solltest die Paperless-Anmeldeseite sehen.
Beim ersten Start ist noch kein Benutzer vorhanden diesen legst du jetzt an:
```bash
paperless-ngx createsuperuser
```
Folge den Eingabeaufforderungen und wähle einen sicheren Benutzernamen und ein starkes Passwort.
> [!NOTE]
> Der Teststart läuft im Vordergrund und dient nur zur Überprüfung der erfolgreichen Installation.
> Im nächsten Schritt wird der Dienst dauerhaft über systemd betrieben.
👉 **Screenshot geeignet:** Browseransicht mit Paperless-Anmeldemaske unter `http://<IP-des-Containers>:8000`
### Schritt 7 Dienst dauerhaft aktivieren (systemd)
Damit Paperless-ngx automatisch beim Start des Containers geladen wird, legen wir eine eigene systemd-Service-Datei an.
So läuft der Dienst im Hintergrund und startet nach einem Reboot selbstständig neu.
Erstelle die Datei:
```bash
nano /etc/systemd/system/paperless.service
```
Füge folgenden Inhalt ein:
```
[Unit]
Description=Paperless-ngx Document Management
After=network.target redis-server.service
[Service]
Type=simple
User=paperless
Group=paperless
WorkingDirectory=/opt/paperless
EnvironmentFile=/opt/paperless/.env
ExecStart=/opt/paperless/venv/bin/paperless-ngx runserver 0.0.0.0:8000
Restart=always
[Install]
WantedBy=multi-user.target
```
Speichern (STRG + O, Enter) und schließen (STRG + X).
Anschließend systemd neu laden und den Dienst aktivieren:
```bash
systemctl daemon-reload
systemctl enable paperless
systemctl start paperless
```
Prüfe, ob alles läuft:
```bash
systemctl status paperless
```
Die Ausgabe sollte **active (running)** anzeigen.
> [!TIP]
> Wenn du Paperless später updatest, genügt ein einfacher Neustart des Dienstes:
> ```bash
> systemctl restart paperless
> ```
👉 **Screenshot geeignet:** Terminal mit sichtbarem `systemctl status paperless` und aktivem Dienststatus
### Schritt 8 Integration in Nginx Proxy Manager (NPM)
Damit Paperless-ngx sicher und bequem erreichbar ist, wird der interne Port **8000** jetzt über den **Nginx Proxy Manager** veröffentlicht.
So erhältst du eine HTTPS-Verbindung mit gültigem SSL-Zertifikat und kannst die Oberfläche direkt über eine Subdomain wie `https://paperless.deinedomain.tld` öffnen.
#### Proxy-Host anlegen
1. Öffne das Dashboard des **Nginx Proxy Manager**.
2. Klicke auf **Add Proxy Host**.
3. Trage folgende Werte ein:
| Feld | Wert |
|------|------|
| **Domain Names** | `paperless.deinedomain.tld` |
| **Scheme** | `http` |
| **Forward Hostname / IP** | `<IP-des-Paperless-Containers>` |
| **Forward Port** | `8000` |
| **Block Common Exploits** | aktivieren |
| **Websockets Support** | aktivieren |
Wechsle danach in den Reiter **SSL** und aktiviere:
- **Request a new SSL Certificate**
- **Force SSL**
- **HTTP/2 Support**
- **HSTS Enabled**
Speichere mit **Save**.
> [!NOTE]
> Der Proxy Manager erstellt automatisch ein gültiges Lets-Encrypt-Zertifikat.
> Ab sofort ist Paperless-ngx verschlüsselt über HTTPS erreichbar.
#### Verbindung testen
Öffne im Browser:
```
https://paperless.deinedomain.tld
```
Wenn die Anmeldemaske erscheint und der Browser ein **Schloss-Symbol** anzeigt, funktioniert die Integration.
Melde dich mit den zuvor erstellten Zugangsdaten an.
> [!TIP]
> Sollte die Seite nicht laden, überprüfe im NPM-Dashboard IP-Adresse und Port (8000).
> Ein Neustart des Dienstes hilft häufig:
> ```bash
> systemctl restart paperless
> ```
👉 **Screenshot geeignet:** Browserfenster mit Paperless-Login unter `https://paperless.deinedomain.tld` (Schloss-Symbol sichtbar)
### Schritt 9 Oberfläche und Grundfunktionen verstehen
Nach erfolgreicher Anmeldung öffnet sich das Dashboard von Paperless-ngx.
Es zeigt eine übersichtliche Startseite mit deinen Dokumenten, Tags, Korrespondenzpartnern und Filterfunktionen.
Alle Elemente sind klar strukturiert und intuitiv bedienbar.
👉 **Screenshot geeignet:** Browseransicht mit Paperless-Dashboard (leere Dokumentenliste und Menüleiste sichtbar)
#### Hauptbereiche der Weboberfläche
| Bereich | Beschreibung |
|----------|--------------|
| **Dokumente** | Übersicht aller hochgeladenen und erkannten Dateien. Hier findest du deine Scans, Rechnungen und PDFs. |
| **Tags** | Stichwörter zur thematischen Zuordnung (z. B. „Rechnung“, „Steuer“, „Vertrag“). |
| **Korrespondenzpartner** | Automatisch erkannte oder manuell erstellte Absender, nützlich für Sortierung und Suche. |
| **Korrespondentenregeln** | Automatisierte Zuordnung neuer Dokumente zu bestimmten Partnern oder Tags. |
| **Aufgaben / Warteschlangen** | Zeigt laufende OCR-Prozesse, Uploads und Indexierungen an. |
> [!NOTE]
> Paperless-ngx aktualisiert die Oberfläche automatisch, sobald ein neuer Upload abgeschlossen ist.
> Es ist kein manuelles Neuladen notwendig.
#### Upload und OCR
Dokumente können auf verschiedene Arten hinzugefügt werden:
- Direkt über den **Upload-Button** in der Weboberfläche.
- Automatisch über das **Consumption-Verzeichnis** (`/opt/paperless/consume`).
Jede dort abgelegte Datei wird automatisch erkannt, gelesen und ins Archiv übernommen.
Nach dem Upload durchläuft jedes Dokument den OCR-Prozess (Texterkennung).
Das dauert je nach Länge und Qualität des Dokuments wenige Sekunden bis Minuten.
> [!TIP]
> Für optimale Ergebnisse sollten Dokumente in **klarer, gut lesbarer Qualität (300 dpi)** vorliegen.
> Unscharfe oder stark komprimierte Scans können die Erkennung deutlich verlangsamen.
👉 **Screenshot geeignet:** Upload-Dialog mit aktivem Fortschrittsbalken und anschließendem Dokumenteintrag in der Liste
### Schritt 10 Ordnerstruktur und Dokumentenfluss
Paperless-ngx arbeitet nach einem klaren Prinzip:
Dokumente durchlaufen **drei feste Stationen** vom Eingang bis zur archivierten, verschlagworteten Datei.
1. **Eingang (Consumption)**
Hier landen alle neu hinzugefügten Dokumente manuell oder automatisch.
Paperless überwacht dieses Verzeichnis kontinuierlich und importiert neue Dateien selbstständig.
2. **Verarbeitung (OCR & Indexierung)**
Die OCR-Engine liest jedes Dokument, extrahiert Textinhalte und erkennt Datum, Absender und Schlüsselwörter.
Anschließend wird das Dokument in der internen Datenbank indexiert.
3. **Archiv (Media Root)**
Nach erfolgreicher Verarbeitung landet die optimierte, durchsuchbare Version im Archivordner.
Sie steht dann dauerhaft über die Weboberfläche zur Verfügung und kann mit Tags, Partnern und Notizen versehen werden.
> [!NOTE]
> Paperless-ngx speichert die Originaldatei und die verarbeitete Version getrennt.
> So bleibt das Original unverändert erhalten ein wichtiger Punkt für Nachvollziehbarkeit und rechtssichere Ablage.
#### Beispielhafter Pfadaufbau
```
/opt/paperless/
├── consume/ # Eingang (automatische Überwachung)
├── data/ # interne Datenbank, Konfiguration
├── media/ # archivierte und OCR-verarbeitete Dokumente
└── export/ # manuelle oder geplante Exporte
```
> [!TIP]
> Wenn du Dokumente automatisiert in Paperless-ngx importieren möchtest (z. B. aus Nextcloud oder E-Mail-Anhängen),
> kannst du später n8n oder Cronjobs nutzen, um Dateien direkt ins `consume`-Verzeichnis zu kopieren.
👉 **Screenshot geeignet:** Dateimanageransicht der Ordnerstruktur unter `/opt/paperless` mit markierten Hauptverzeichnissen
### Schritt 11 Benutzerverwaltung und Zugriffsrechte
Paperless-ngx unterstützt mehrere Benutzerkonten, ideal wenn du das UCC gemeinsam nutzt oder getrennte Bereiche für Streaming, Verwaltung und Privatdokumente anlegen willst.
#### Benutzer anlegen
Melde dich als Administrator in der Weboberfläche an und öffne oben rechts das **Benutzermenü → Administration**.
Wähle dort **Users** und klicke auf **Add User**.
Trage die gewünschten Daten ein:
- **Username:** Kurzname des Benutzers
- **Password:** sicheres Kennwort
- **Staff status:** aktivieren, falls der Benutzer Zugriff auf die Administrationsoberfläche haben soll
- **Superuser status:** nur aktivieren, wenn volle Rechte benötigt werden
> [!NOTE]
> Normale Benutzer können Dokumente hochladen, Tags anlegen und suchen.
> Nur Superuser dürfen Systemeinstellungen, OCR-Optionen und API-Schlüssel verwalten.
#### Gruppen und Berechtigungen
Über den Menüpunkt **Groups** lassen sich gemeinsame Rechte definieren.
Das ist nützlich, wenn du z. B. mehrere Benutzer mit identischem Zugriff auf bestimmte Dokumentensammlungen brauchst.
Beispiel:
- Gruppe **Finanzen** → Zugriff auf alle Dokumente mit Tag „Rechnung“
- Gruppe **Streaming** → Zugriff auf Produktionsunterlagen und Verträge
> [!TIP]
> Gruppenrechte können jederzeit erweitert oder eingeschränkt werden, ohne einzelne Benutzerkonten anzupassen.
> So bleibt dein UCC auch bei wachsenden Teams übersichtlich und sicher.
👉 **Screenshot geeignet:** Paperless-Adminbereich mit geöffneter Benutzerliste und markiertem Button „Add User“
### Schritt 12 Such- und Filterfunktionen nutzen
Sobald erste Dokumente importiert und verarbeitet sind, kannst du die Suchfunktion von Paperless-ngx einsetzen.
Sie basiert auf einem Volltextindex und ist extrem schnell ideal, um Rechnungen, Verträge oder Seriennummern in Sekunden zu finden.
#### Freitextsuche
Oben im Dashboard findest du das zentrale Suchfeld.
Hier kannst du Begriffe, Namen, Datumsangaben oder Schlagwörter eingeben.
Paperless durchsucht automatisch den OCR-Text, Dateinamen, Tags und Notizen.
Beispiele:
```
Stromrechnung
Vertrag 2023
Amazon
```
> [!NOTE]
> Die Suche ist **nicht case-sensitive** und erkennt auch Wortfragmente.
> Eine Eingabe wie „rechn“ findet z. B. alle Dokumente mit dem Wort „Rechnung“.
#### Filterleiste
Links im Dashboard steht eine Filterleiste für gezieltere Abfragen.
Hier kannst du kombinieren nach:
- Tag (z. B. „Steuer“, „Privat“, „Versicherung“)
- Korrespondenzpartner
- Datum (Upload oder Dokumentendatum)
- Dateityp
Mehrere Filter lassen sich beliebig kombinieren.
So kannst du z. B. alle Dokumente von *Telekom* aus dem Jahr *2024* anzeigen lassen.
> [!TIP]
> Wenn du regelmäßig dieselben Filter nutzt, kannst du gespeicherte Ansichten anlegen.
> Diese erscheinen in der Seitenleiste und lassen sich mit einem Klick öffnen.
👉 **Screenshot geeignet:** Browseransicht mit aktivem Filter (Tag + Jahr) und angezeigter Trefferliste
### Schritt 13 Backups und Datensicherung
Damit deine Dokumente und Metadaten dauerhaft erhalten bleiben, solltest du regelmäßige Backups einplanen.
Paperless-ngx speichert alle wichtigen Daten lokal im Container ideal für automatisierte Sicherungen über Kopia oder ein zentrales Backup-System.
#### Relevante Pfade
| Pfad | Inhalt | Sicherung notwendig |
|------|---------|--------------------|
| `/opt/paperless/data/` | Datenbank und Konfiguration | ✅ |
| `/opt/paperless/media/` | OCR-verarbeitete Dokumente | ✅ |
| `/opt/paperless/export/` | optionale Exporte | optional |
| `/opt/paperless/.env` | Umgebungsvariablen (wichtige Schlüssel) | ✅ |
> [!NOTE]
> Das Verzeichnis `/opt/paperless/consume` muss **nicht** gesichert werden.
> Es dient nur als temporärer Eingang und wird automatisch geleert, sobald Dokumente verarbeitet sind.
#### Beispiel-Backup mit tar
```bash
tar -czf /srv/backup/paperless-$(date +%F).tar.gz /opt/paperless/data /opt/paperless/media /opt/paperless/.env
```
Dieser Befehl erstellt ein komprimiertes Backup mit Datumsangabe.
Die Datei kann anschließend automatisiert in Kopia, Nextcloud oder ein externes NAS übertragen werden.
> [!TIP]
> Im UCC bietet sich an, das Paperless-Backup direkt in den zentralen Kopia-Container einzubinden.
> So läuft die Sicherung zusammen mit Nextcloud und Vaultwarden nach demselben Plan.
👉 **Screenshot geeignet:** Terminalausgabe nach erfolgreicher Archiv-Erstellung (`paperless-YYYY-MM-DD.tar.gz` sichtbar)
### Schritt 14 Systemprüfung und Wartung
Nach der vollständigen Einrichtung sollte das System einmal überprüft werden, um sicherzustellen, dass alle Komponenten korrekt laufen und dauerhaft stabil bleiben.
#### Dienststatus prüfen
```bash
systemctl status paperless
systemctl status redis-server
```
Beide Dienste sollten mit **active (running)** angezeigt werden.
Wenn einer davon nicht läuft, starte ihn neu:
```bash
systemctl restart paperless
systemctl restart redis-server
```
> [!NOTE]
> Redis ist essenziell für Hintergrundaufgaben und OCR-Verarbeitung.
> Läuft dieser Dienst nicht, werden keine neuen Dokumente erkannt oder verarbeitet.
#### Logdateien kontrollieren
Paperless legt seine Logdateien im Datenverzeichnis ab.
Eine schnelle Kontrolle auf Fehler ist mit folgendem Befehl möglich:
```bash
tail -n 50 /opt/paperless/data/logs/paperless.log
```
> [!TIP]
> Fehlermeldungen zu „OCR timeout“ oder „Redis connection“ deuten auf zu geringe Systemressourcen oder Netzwerkprobleme hin.
> In diesem Fall hilft meist ein Neustart oder eine moderate Erhöhung der CPU-Zuteilung.
#### Updates durchführen
Aktualisiere Paperless-ngx regelmäßig, um Sicherheits- und Funktionsupdates einzuspielen:
```bash
su - paperless
cd /opt/paperless
source venv/bin/activate
pip install --upgrade paperless-ngx
systemctl restart paperless
```
👉 **Screenshot geeignet:** Terminal mit Ausgabe von `pip install --upgrade paperless-ngx` (neue Version installiert)
---
## Troubleshooting & Tipps
Auch wenn Paperless-ngx im Alltag stabil läuft, können während Installation oder Betrieb gelegentlich Fehler auftreten.
Die folgenden Punkte helfen, typische Probleme schnell einzugrenzen und zu beheben.
👉 **Screenshot geeignet:** Übersicht im UCC-Dashboard mit markiertem Paperless-Container
### Problem: Weboberfläche nicht erreichbar
**Symptome:**
Die Seite `https://paperless.deinedomain.tld` lädt nicht oder zeigt einen Proxy-Fehler.
**Lösungen:**
1. Prüfe, ob der Container aktiv ist:
```bash
pct status <CTID>
```
Wenn „stopped“ →
```bash
pct start <CTID>
```
2. Überprüfe den Dienststatus:
```bash
systemctl status paperless
```
Sollte „inactive“ oder „failed“ angezeigt werden, starte ihn neu:
```bash
systemctl restart paperless
```
3. Kontrolliere den Nginx Proxy Manager-Eintrag.
IP-Adresse, Port (8000) und SSL-Zertifikat müssen korrekt hinterlegt sein.
> [!TIP]
> Nach Änderungen am Proxy-Host kann es bis zu einer Minute dauern, bis die SSL-Konfiguration aktiv wird.
👉 **Screenshot geeignet:** NPM-Dashboard mit aktivem Proxy-Host `paperless.deinedomain.tld`
### Problem: OCR-Verarbeitung startet nicht
**Symptome:**
Dokumente erscheinen im Dashboard, aber der Text wird nicht erkannt.
**Lösungen:**
1. Prüfe, ob der Redis-Dienst läuft:
```bash
systemctl status redis-server
```
Falls nicht aktiv → starten:
```bash
systemctl restart redis-server
```
2. Stelle sicher, dass das OCR-Paket installiert ist:
```bash
apt install tesseract-ocr tesseract-ocr-deu -y
```
3. In der `.env`-Datei prüfen, ob `PAPERLESS_OCR_LANGUAGE=deu` gesetzt ist.
Änderungen übernehmen durch Neustart:
```bash
systemctl restart paperless
```
> [!NOTE]
> Bei sehr großen PDFs kann die Verarbeitung einige Minuten dauern.
> Währenddessen bleibt der Status auf „pending“.
👉 **Screenshot geeignet:** Paperless-Taskliste mit sichtbarer OCR-Warteschlange
### Problem: Keine neuen Dokumente im Dashboard
**Symptome:**
Dateien werden in das `consume`-Verzeichnis kopiert, erscheinen aber nicht in der Weboberfläche.
**Lösungen:**
1. Prüfe, ob das Verzeichnis korrekt angegeben und erreichbar ist:
```bash
grep CONSUMPTION_DIR /opt/paperless/.env
```
Der Pfad muss exakt auf `/opt/paperless/consume` zeigen.
2. Kontrolliere die Dateiberechtigungen:
```bash
ls -l /opt/paperless/consume
```
Eigentümer und Gruppe müssen **paperless** sein.
Falls nicht:
```bash
chown -R paperless:paperless /opt/paperless/consume
```
3. Prüfe das Log auf Importfehler:
```bash
tail -n 50 /opt/paperless/data/logs/paperless.log
```
Häufige Ursachen sind defekte PDF-Dateien oder fehlerhafte OCR-Einstellungen.
> [!TIP]
> Wenn du Dokumente automatisiert über ein Skript einfügst, achte darauf, dass sie mit Schreibrechten für den Benutzer *paperless* kopiert werden.
👉 **Screenshot geeignet:** Terminalansicht mit korrektem Eigentümer (`paperless`) für alle Dateien im `consume`-Ordner
### Problem: Speicherplatz läuft voll
**Symptome:**
OCR-Prozesse stoppen, der Container reagiert träge oder das Dashboard zeigt Fehler bei Uploads.
**Lösungen:**
1. Speicherbelegung prüfen:
```bash
df -h
```
Wenn `/opt/paperless` zu mehr als 90 % belegt ist, alte oder doppelte Dateien prüfen.
2. Temporäre Caches löschen:
```bash
rm -rf /opt/paperless/data/cache/*
```
3. Falls regelmäßig große Dokumentenmengen anfallen, Storage vergrößern:
```bash
pct resize <CTID> rootfs +10G
```
> [!NOTE]
> Paperless speichert Originale und OCR-Versionen separat.
> Wer Platz sparen möchte, kann die Originale nach erfolgreicher Verarbeitung in regelmäßigen Abständen exportieren und extern archivieren.
👉 **Screenshot geeignet:** Terminalausgabe von `df -h` mit markiertem Paperless-LXC
### Problem: Login oder Passwort vergessen
**Symptome:**
Kein Zugriff mehr auf das Administrator-Konto in der Weboberfläche.
**Lösungen:**
1. Anmelden im Container als Benutzer *paperless*:
```bash
su - paperless
cd /opt/paperless
source venv/bin/activate
```
2. Neues Passwort für den vorhandenen Benutzer setzen:
```bash
paperless-ngx changepassword <BENUTZERNAME>
```
oder bei verlorenem Benutzerkonto ein neues Superuser-Konto erstellen:
```bash
paperless-ngx createsuperuser
```
3. Anschließend den Dienst neu starten:
```bash
systemctl restart paperless
```
> [!TIP]
> Wenn mehrere Administratoren aktiv sind, kann jeder Superuser Passwörter anderer Nutzer zurücksetzen.
> Bei Einzelbetrieb ist der Weg über `createsuperuser` der schnellste.
👉 **Screenshot geeignet:** Terminalausgabe nach erfolgreichem Passwort-Reset (`Password changed successfully` sichtbar)
### Problem: Paperless startet nicht nach Update
**Symptome:**
Nach einem Upgrade bleibt der Dienst beim Start hängen oder bricht mit Fehlern ab.
**Lösungen:**
1. Logdateien prüfen:
```bash
journalctl -u paperless -n 50
```
oder
```bash
tail -n 50 /opt/paperless/data/logs/paperless.log
```
2. Wenn der Fehler auf Datenbankmigrationen hinweist:
```bash
su - paperless
cd /opt/paperless
source venv/bin/activate
paperless-ngx migrate
systemctl restart paperless
```
3. Bei Abhängigkeitskonflikten virtuelle Umgebung neu erstellen:
```bash
rm -rf /opt/paperless/venv
python3 -m venv /opt/paperless/venv
source /opt/paperless/venv/bin/activate
pip install --upgrade pip wheel
pip install paperless-ngx
systemctl restart paperless
```
> [!NOTE]
> Nach größeren Versionssprüngen von Paperless-ngx sind Migrationen normal.
> Ein manueller Datenbankabgleich löst die meisten Startprobleme.
👉 **Screenshot geeignet:** Terminalausgabe mit erfolgreicher Migration und aktivem Dienststatus
---
## Ergebnis
Nach Abschluss dieses Kapitels läuft Paperless-ngx als **vollständig integrierte Dokumentenverwaltung** im UCC.
Alle wichtigen Dokumente werden automatisch erkannt, indiziert und zentral abgelegt unabhängig von externen Cloud-Diensten.
Dein aktuelles Setup umfasst:
- **Paperless-ngx-Container** für Dokumentenmanagement, OCR und Weboberfläche
- **Redis-Server** für Caching und Aufgabenverteilung
- **Nginx Proxy Manager** für sichere HTTPS-Bereitstellung über `https://paperless.deinedomain.tld`
- **Automatische Struktur** für Eingang, Archiv und Export
- **Integration** in das bestehende Backup-System (z. B. Kopia)
👉 **Screenshot geeignet:** Paperless-Dashboard mit sichtbaren Dokumenteinträgen, Tag-Leiste und aktivem Suchfeld
Damit bietet dein UCC nun:
- eine durchsuchbare Ablage für Rechnungen, Verträge und Unterlagen,
- automatisierte Texterkennung (OCR) für PDF- und Bilddateien,
- Mehrbenutzerfähigkeit mit differenzierten Berechtigungen,
- und eine saubere Integration in das zentrale Kontrollsystem.
> [!TIP]
> Wer weitergehen möchte, kann im **Premium-Kapitel** lernen, wie Paperless-ngx mit
> **Nextcloud, n8n und automatisierten Importregeln** verbunden wird.
> Damit lassen sich Dokumente direkt aus Cloud-Uploads oder E-Mails einlesen,
> automatisch taggen und archivieren ganz ohne manuelle Schritte.
Paperless-ngx erweitert das UCC um eine der wichtigsten Funktionen überhaupt:
**digitale Souveränität über alle eigenen Dokumente** sicher, automatisiert und vollständig unter deiner Kontrolle.