In diesem Beitrag zeige ich dir Schritt für Schritt, wie du paperless-ngx auf einer UGREEN NASync DXP 4800 Plus unter UGOS Pro installierst – sauber, reproduzierbar und mit einer ordentlichen Ordnerstruktur.
Wir nutzen Docker Compose, damit die Installation nicht nur einmal klappt, sondern auch später Updates/Backups einfach bleiben.
Hinweis: Du brauchst nicht zwingend die Docker-App in UGOS Pro – du kannst alles per SSH/Terminal machen. Die App ist nur komfortabel zum Starten/Stoppen/Logs ansehen.
Was ist Paperless-ngx – und was läuft im Hintergrund?
Paperless-ngx besteht in diesem Setup aus drei Containern:
- paperless: die Weboberfläche + Verarbeitung (Import, OCR, Suche, Tags, Regeln)
- db (PostgreSQL): Datenbank für Benutzer, Tags, Regeln, Metadaten usw.
- redis: Job-Queue/Broker für Hintergrundaufgaben (Import/OCR), damit die Weboberfläche flüssig bleibt
Voraussetzungen
- UGREEN NAS mit UGOS Pro
- Docker + Docker Compose installiert (bei dir: Compose v2.x)
- SSH aktiviert (Systemsteuerung → Terminal → SSH aktivieren)
Ordnerstruktur auf dem NAS
Lege dir einen Ordner für Paperless an (bei mir liegt das auf /volume2, bei dir kann es auch /volume1 sein).
Beispiel:
/volume2/docker/paperless/
├─ consume/
├─ data/
├─ media/
├─ export/
└─ db/
Wofür ist welcher Ordner?
- consume/ → Eingangskorb / Hotfolder: Hier landen neue Scans/PDFs, die Paperless automatisch importiert.
- media/ → Dokumentenarchiv: Hier liegen am Ende deine finalen Dokumente (sehr wichtig fürs Backup).
- data/ → App-Daten: Paperless interne Daten/Index/Thumbnails etc.
- export/ → Exporte/Backups: Ziel für Exporte aus Paperless heraus.
- db/ → Datenbank: PostgreSQL-Daten (User, Tags, Regeln, Metadaten, Zuordnungen).
Tipp: Viele Fehler entstehen durch einen Tippfehler. Der Ordner heißt consume (nicht „consumer“).
Docker Compose Datei anlegen (docker-compose.yml)
Erstelle im Ordner /volume2/docker/paperless/ eine Datei namens:
docker-compose.yml
und füge folgendes ein:
services:
db:
image: postgres:16
container_name: paperless-db
restart: unless-stopped
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: CHANGE_ME_DB_PASSWORD
volumes:
- /volume2/docker/paperless/db:/var/lib/postgresql/data
redis:
image: redis:7
container_name: paperless-redis
restart: unless-stopped
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless
restart: unless-stopped
depends_on:
- db
- redis
ports:
- "8000:8000"
environment:
PAPERLESS_REDIS: redis://redis:6379
PAPERLESS_DBHOST: db
PAPERLESS_DBNAME: paperless
PAPERLESS_DBUSER: paperless
PAPERLESS_DBPASS: CHANGE_ME_DB_PASSWORD
PAPERLESS_TIME_ZONE: Europe/Berlin
PAPERLESS_OCR_LANGUAGE: deu+eng
PAPERLESS_SECRET_KEY: CHANGE_ME_SUPER_SECRET_KEY
# Optional bei Reverse Proxy / eigener Domain:
# PAPERLESS_URL: https://paperless.deinedomain.tld
# Optional bei Rechteproblemen:
# PAPERLESS_UID: 1000
# PAPERLESS_GID: 1000
volumes:
- /volume2/docker/paperless/data:/usr/src/paperless/data
- /volume2/docker/paperless/media:/usr/src/paperless/media
- /volume2/docker/paperless/export:/usr/src/paperless/export
- /volume2/docker/paperless/consume:/usr/src/paperless/consume
Was MUSS angepasst werden?
- Pfade: Wenn du nicht
/volume2nutzt, ersetze überall/volume2durch dein Volume (z. B./volume1). - DB Passwort:
CHANGE_ME_DB_PASSWORDersetzen (starkes Passwort).- Wichtig:
POSTGRES_PASSWORDundPAPERLESS_DBPASSmüssen identisch sein.
- Wichtig:
- Secret Key:
CHANGE_ME_SUPER_SECRET_KEYersetzen (lang & zufällig).- Das ist der Signierschlüssel (Sessions/CSRF/Token-Signaturen). Einmal setzen und danach nicht mehr ändern.
Secret Key generieren (Mac):
openssl rand -base64 48
Installation per SSH (Start des Stacks)
Per SSH auf die NAS verbinden:
ssh <DEIN_USER>@<NAS-IP>
Dann in den Ordner wechseln und prüfen, ob die Compose-Datei da ist:
cd /volume2/docker/paperless
ls -la
Wenn du hier docker-compose.yml siehst, Stack starten:
sudo docker compose up -d
Status prüfen:
sudo docker compose ps
Erster Login / Benutzer anlegen (2 Wege)
Weg 1: Im Browser (First-Run Maske)
Öffne:
http://NAS-IP:8000
Wenn Paperless beim ersten Aufruf eine „User anlegen“-Maske zeigt: Admin erstellen → fertig.
Weg 2: Plan B (immer zuverlässig per Terminal)
Falls die Maske nicht erscheint oder du keinen Login hast:
sudo docker compose exec paperless python manage.py createsuperuser
Danach im Browser anmelden unter http://NAS-IP:8000.
Test: Automatischer Import über den consume-Ordner
Lege eine PDF in:
/volume2/docker/paperless/consume
Paperless sollte die Datei automatisch importieren und verarbeiten (OCR), danach taucht sie im Web-UI auf.
Typische Fehler & schnelle Lösungen
1) „no configuration file provided: not found“
Du bist im falschen Ordner.
Fix:
pwd
ls -la
Du musst die docker-compose.yml im aktuellen Verzeichnis sehen.
Alternativ direkt mit Pfad starten:
sudo docker compose -f /volume2/docker/paperless/docker-compose.yml up -d
2) Container startet ständig neu (Restart-Loop)
Fast immer ein Log-Problem: DB, Passwort, Rechte, Migration.
Logs anschauen:
sudo docker compose logs --tail=200 paperless
sudo docker compose logs --tail=200 db
Sehr häufig: DB-Passwort falsch / geändert
Wenn in den Logs steht:password authentication failed for user "paperless"
Dann stimmen POSTGRES_PASSWORD und PAPERLESS_DBPASS nicht überein – oder du hast das Passwort nach dem ersten Start geändert.
Wenn noch keine Daten wichtig sind (sauberer Reset):
sudo docker compose down
sudo rm -rf /volume2/docker/paperless/db/*
sudo docker compose up -d
Achtung: Das löscht die Datenbank (Paperless-Metadaten). Dokumente in
mediableiben, aber Zuordnungen/Tags wären weg.
3) Rechteprobleme (Permission denied)
Wenn Paperless nicht in data/media/consume schreiben kann, hilft meist:
- NAS-Rechte prüfen oder
PAPERLESS_UID/PAPERLESS_GIDsetzen
Updates (kurz & schmerzfrei)
cd /volume2/docker/paperless
sudo docker compose pull
sudo docker compose up -d
Backup Empfehlung (Minimal)
Mindestens sichern:
/volume2/docker/paperless/db/volume2/docker/paperless/media/volume2/docker/paperless/data
Optional zusätzlich:
/volume2/docker/paperless/export
Fazit
Wenn Ordnerstruktur, Compose-Datei und Passwörter sauber gesetzt sind, läuft Paperless-ngx auf der UGREEN NAS sehr stabil.
Der Vorteil des Docker-Compose-Setups: einfach startbar, leicht updatebar und gut zu sichern.
Wenn du Fragen hast oder irgendwo hängst: Schreib gern in die Kommentare (am besten mit der Ausgabe von docker compose ps und den Logs).
Downloads
✅ Docker Compose Vorlage (docker-compose.yml):
👉 Download: Docker Compose Beispiel Datei