Papra das sehr schlanke DMS.
Wer sich mit Paperless-ngx oder anderen Dokumentenmanagementsystemen beschäftigt hat, kennt das Problem. Die Installation ist umfangreich. Mehrere Container. Datenbanken. OCR-Services. Worker-Prozesse. Für viele ist das sinnvoll. Für manche ist es schlicht zu viel. Zu groß. Zu schwer. Zu wartungsintensiv.
Ich wollte wissen: Geht es auch kleiner?
Also habe ich mir Papra angesehen. Installiert. Getestet. Belastet. Wieder gelöscht. Neu installiert. Mit schwacher Hardware ausprobiert. Und genau darum geht es hier.
Natürlich ist das gesamte System kostenlos und Open Source. Papra hilft Ihnen dabei, Ihre Dokumente strukturiert abzulegen und bei Bedarf schnell wiederzufinden. Durch die integrierte Texterkennung und die Volltextsuche genügt oft ein Stichwort, um selbst ältere Unterlagen in Sekunden aufzurufen. Keine Papierstapel mehr, kein langes Suchen – sondern ein digitales Archiv, das genau dann funktioniert, wenn Sie es brauchen.
Was ist Papra?
Papra ist ein extrem schlankes, webbasiertes Dokumentenarchiv. Kein Monster-Stack. Keine fünf Zusatzdienste. Keine externe Datenbank. Keine Redis-Instanz. Keine OCR-Maschinerie im Hintergrund. Papra setzt auf eine einfache Struktur mit einer lokalen SQLite-Datenbank und einem klaren Webinterface.
Die Oberfläche ist modern. Minimalistisch. Schnell. Es geht nicht darum, hundert Automatisierungen zu konfigurieren. Es geht darum, Dokumente hochzuladen, zu organisieren und bereitzustellen. Mehr nicht.
Papra versucht nicht, alles zu sein. Und genau das ist seine Stärke.
In der Standard-Installation von Papra können Sie deutlich mehr als nur PDF-Dateien hochladen. Natürlich sind PDFs der klassische Anwendungsfall, egal ob digital erzeugt oder eingescannt. Papra verarbeitet diese zuverlässig und macht den enthaltenen Text – sofern vorhanden oder per OCR erkannt – durchsuchbar. Darüber hinaus lassen sich auch Bilddateien wie JPG oder PNG importieren. Gerade Smartphone-Scans von Belegen oder Verträgen sind damit kein Problem, denn die integrierte Texterkennung sorgt dafür, dass auch diese Inhalte später über die Volltextsuche wiedergefunden werden. Zusätzlich können textbasierte Formate wie einfache TXT-Dateien oder Markdown-Dokumente abgelegt und im Webinterface angezeigt werden. Papra ist also kein reiner PDF-Speicher, sondern ein flexibles Archiv, das verschiedene gängige Dokumenttypen aufnehmen, analysieren und indexieren kann – entscheidend ist nicht das Format, sondern dass der Inhalt strukturiert abgelegt und später wieder auffindbar ist.
Der Hersteller bewirbt das System ausdrücklich mit dem Thema Langzeitarchivierung. Und genau das ist der entscheidende Punkt. Wenn Sie Ihre Dokumente nicht nur heute, sondern auch in zehn Jahren noch zuverlässig wiederfinden wollen, dann sollten Sie nicht auf irgendeinen flüchtigen Cloud-Trend setzen. Installieren Sie das System auf einer stabilen Debian-Maschine, die lokal bei Ihnen läuft. Zum Beispiel als eigene VM unter Proxmox VE. Dann haben Sie die volle Kontrolle über Ihre Daten, Ihre Backups und Ihre Infrastruktur – und sind nicht davon abhängig, ob irgendein Dienst in ein paar Jahren noch existiert oder plötzlich die Spielregeln ändert.
Für wen eignet sich Papra?
Papra eignet sich nicht nur für einfache Ablage. Das System bringt eine integrierte Texterkennung mit. Dokumente werden analysiert und durchsuchbar gemacht. Das ist ein entscheidender Unterschied zu reinen Dateiablagen.
Wer also ein schlankes System möchte, aber trotzdem nicht auf OCR verzichten will, bekommt hier eine sehr interessante Kombination. Papra schafft den Spagat zwischen Einfachheit und Funktion.
Es richtet sich an Selbstständige, kleine Büros oder private Anwender, die eine strukturierte Dokumentenverwaltung mit Volltextsuche benötigen, ohne dafür eine komplexe Serverlandschaft betreiben zu müssen. Rechnungen, Verträge, Schriftverkehr oder Projektunterlagen lassen sich hochladen, analysieren und später gezielt wiederfinden.
Papra ist kein überladenes Enterprise-System mit Dutzenden Zusatzdiensten. Es ist bewusst reduziert, aber funktional stark genug, um im Alltag ernsthaft eingesetzt zu werden. Gerade für kleine Infrastrukturen oder schwächere Hardware ist das ein echter Vorteil.
Das ist der wichtige Punkt:
Schlank bedeutet hier nicht „funktional eingeschränkt“.
Schlank bedeutet: weniger Ballast, klare Struktur, direkte Bedienung.
Wenn Sie möchten, schreibe ich den gesamten Artikel in Ihrem direkten, sachlichen Stil weiter – ohne Marketing-Sprech und ohne übertriebene Versprechen.
Papra für kleine und schwache PCs
Hier wird es interessant.
Papra läuft problemlos auf schwacher Hardware. Kein riesiger RAM-Bedarf. Keine CPU-Last durch permanente Hintergrundprozesse. Selbst ältere Mini-PCs oder kleine virtuelle Maschinen kommen damit gut zurecht.
Gerade in Umgebungen, in denen man keinen großen Server betreiben will, sondern vielleicht nur eine kleine VM oder einen älteren Bürorechner zur Verfügung hat, spielt Papra seine Stärke aus. Die Installation ist schnell erledigt. Das System ist überschaubar. Backups sind einfach, weil im Kern nur ein Datenverzeichnis gesichert werden muss.
Das ist kein High-End-DMS für Großunternehmen. Aber genau das will es auch nicht sein.
Papra ist schlank. Klar. Reduziert auf das Wesentliche. Und manchmal ist genau das die bessere Entscheidung.
Docker Compose Datei für Papra
services:
papra:
#Das letzte Image wird geladen:docker-compose up -d / Installation - docker-compose down docker-compose up -d / Updates
image: ghcr.io/papra-hq/papra:latest
#Name des Containers
container_name: papra
#Soll immer gestartet sein
restart: unless-stopped
#Port des Containers
ports:
- "1221:1221"
environment:
#IP Adresse der VM + Port des Containers - muss Ihre VM-IP sein
APP_BASE_URL: "http://192.168.2.165:1221"
#Vergeben Sie einen Secret Key bzw. Ändern Sie diesen hier mit Zufallswerten
AUTH_SECRET: "4914a733-7686-4b10-a68f-7018895133d5"
#app-data Ordner liegt im selben Ordner wie die docker-compose.yml, er enthält die Datenbank und Daten
volumes:
- ./papra-data:/app/app-data
Papra vollautomatisches Installationsscript
Ich habe in den letzten Tagen ein wenig mit Papra experimentiert. Papra ist eine interessante Plattform zur Dokumentenablage und zum Teilen von Dokumenten. Die Installation ist allerdings – wie so oft bei moderner Software – nicht unbedingt etwas, das man mal eben schnell aus dem Ärmel schüttelt. Docker muss installiert werden, ein Repository muss eingerichtet werden, eine docker-compose Datei muss erstellt werden und ein paar Dinge rund um Verzeichnisse und Rechte müssen ebenfalls stimmen.
Kurz gesagt: Man kann das alles manuell machen. Aber warum sollte man?
Also habe ich mir gedacht: Jetzt haben wir aber genug geschwafelt. Ich baue einfach ein Script, das alles automatisch erledigt.
Herausgekommen ist ein kleines Installationsscript, das Papra auf einer frischen Debian Maschine vollständig automatisch installiert. Das Script richtet Docker ein, erstellt die notwendige docker-compose Konfiguration, erzeugt einen sicheren Secret-Key und startet anschließend den Papra Container. Auch die notwendigen Verzeichnisse werden angelegt und die Rechte passend gesetzt, damit Papra problemlos starten kann.
Die Idee dahinter war ganz einfach: Die Installation soll so simpel sein, dass sie wirklich jeder hinbekommt. Keine langen Schritt-für-Schritt Anleitungen, keine fünfzehn Terminalbefehle, keine Fehlersuche. Stattdessen nur ein Script.
Die Vorgehensweise ist denkbar einfach.
Sie legen zunächst eine Datei mit dem Namen install_papra.sh an. Das funktioniert zum Beispiel so:
nano install_papra.sh
Danach fügen Sie das gesamte Script in diese Datei ein(Script weiter unten). Anschließend speichern Sie die Datei mit STRG + O, bestätigen mit Enter und verlassen den Editor mit STRG + X.
Damit das Script ausgeführt werden kann, muss es noch ausführbar gemacht werden. Das erledigen Sie mit folgendem Befehl:
chmod +x install_papra.sh
Und jetzt kommt der eigentlich angenehme Teil. Sie starten das Script einfach mit:
./install_papra.sh
Das Script erledigt dann den Rest automatisch. Docker wird installiert, das Papra Image wird geladen, die Konfiguration wird erstellt und der Container gestartet. Am Ende erhalten Sie lediglich die Information, unter welcher Adresse Papra erreichbar ist.
Genau so soll es sein. Kein Gefrickel, keine endlosen Installationsanleitungen, sondern ein einfacher Start.
Das Script ist bewusst so geschrieben, dass es auf einer neuen Debian Maschine funktioniert. Idealerweise nutzen Sie also eine frische VM oder einen neuen Server. Dort kann das Script ohne Konflikte alle benötigten Komponenten installieren.
Wenn alles durchgelaufen ist, erreichen Sie Papra einfach über Ihren Browser über die angezeigte Adresse, typischerweise etwas wie:
Dann können Sie direkt mit der Dokumentenverwaltung loslegen.
Natürlich gilt wie immer: Prüfen Sie Scripte, bevor Sie sie ausführen. Ein Installationsscript greift tief ins System ein, installiert Software und verändert Konfigurationen. Deshalb sollten Sie sich den Inhalt vorher anschauen und verstehen, was passiert.
Trotzdem wollte ich die Installation so einfach wie möglich machen. Gerade wenn man Dinge testet oder schnell eine neue Umgebung aufsetzen möchte, spart ein solches Script eine Menge Zeit.
Und ganz ehrlich: Genau für solche Aufgaben liebe ich Linux. Ein paar Zeilen Bash – und schon läuft eine komplette Anwendung.
Warten und Anweisungen im Script haben Hintergrund
Die im Script eingebauten Warteanweisungen sorgen dafür, dass jeder Schritt genügend Zeit hat, seine Ausführung sauber zu beenden. Gerade bei Installationsroutinen wie apt-Updates, dem Einrichten von Repositories oder dem ersten Start eines Containers kann es sonst passieren, dass der nächste Schritt bereits startet, obwohl der vorherige noch nicht vollständig abgeschlossen ist. Durch diese kurzen Pausen bleibt die Installation stabil und nachvollziehbar. Insgesamt dauert die komplette Installation in der Regel etwa drei bis fünf Minuten, je nachdem wie leistungsfähig die Maschine ist und wie schnell die Internetverbindung beim Laden der Docker-Images arbeitet.
Anleitung auch im Script enthalten
Im Script selbst befindet sich ebenfalls noch einmal eine kurze Anleitung. Dort ist Schritt für Schritt beschrieben, wie Sie die Datei anlegen, speichern und anschließend ausführen. Lesen Sie diesen Abschnitt daher aufmerksam durch, bevor Sie das Script starten. In den meisten Fällen reicht es aus, die Anweisungen genau zu befolgen, damit die Installation ohne Probleme durchläuft.
Verwenden des Scripts – sauber kopieren
Markieren Sie das Script sauber mit der Maus und kopieren Sie es vollständig in die Datei. Achten Sie darauf, dass wirklich alle Zeilen übernommen werden. Ich habe das Script wirklich bis zum Erbrechen getestet. Die Installation läuft zuverlässig durch und erledigt alle notwendigen Schritte automatisch. Das Script erkennt sogar selbstständig die IP-Adresse des Hosts und trägt diese direkt in die Konfiguration ein. Dadurch ersparen Sie sich zusätzliche Anpassungen und können Papra in den meisten Fällen sofort nach der Installation über die angezeigte Adresse im Browser aufrufen.
install_papra.sh – Autoscript zum kopieren
#!/bin/bash
# Papra Installationsscript von ComputerRalle - Ralf-Peter Kleinert
# https://ralf-peter-kleinert.de
# https://blog.ralf-peter-kleinert.de
# https://computerralle.de
# ------------------------------------------------------------
# Haftungsausschluss
# Dieses Script installiert Docker, Papra und benoetigte
# Komponenten automatisch auf diesem System.
#
# Die Nutzung erfolgt auf eigene Verantwortung.
# Der Autor uebernimmt keine Haftung fuer Schaeden,
# Datenverlust, Fehlkonfigurationen oder Systemprobleme.
#
# Das Script sollte nur auf Testsystemen oder auf Systemen
# ausgefuehrt werden, deren Funktionsweise Sie verstehen.
# Vor der Nutzung sollten Backups wichtiger Daten erstellt
# werden.
#
# Bitte pruefen Sie den Inhalt des Scripts vor der Ausfuehrung.
# ------------------------------------------------------------
#####################################################################
# Anleitung:
# Automatischen setzen der IP:
# Sollte das automatische setzen der IP nicht funktionieren,
# kommentieren Sie diese Zeile mit einer # aus:
IP=$(hostname -I | awk '{print $1}')
# und folgen Sie diesem Weg:
# 1. Tragen Sie hier Ihre gewuenschte IP Adresse ein, diese IP muss
# sich in Ihrem Netz befinden, und darf nur einmal vergeben werden
# Es muss die IP der Maschine sein: Pruefen mit: ip a
# Entfernen Sie die # wenn das automatische setzen der
# IP auskommentiert wurde:
# IP="192.168.2.158"
# 2. Legen Sie die Datei install_papra.sh unter root@IHRENAME:~# an:
# nano install_papra.sh
# 3. Fuegen Sie das gesamte Script in die Datei ein.
# 4. Speichern Sie das Script mit STRG + O.
# 5. Bestaetigen Sie mit Enter.
# 6. Beenden Sie den Editor mit STRG + X.
# 7. Machen Sie das Script ausfuehrbar mit:
# chmod +x install_papra.sh
# 8. Starten Sie das Script mit:
# ./install_papra.sh
#####################################################################
warte() {
echo "$1"
sleep 1
}
warte " "
warte " System wird vorbereitet"
warte " Bitte warten..."
apt update
warte " Bitte warten......"
apt install -y ca-certificates curl gnupg lsb-release
warte " Bitte warten........."
warte " Bitte warten............"
warte " "
warte " OpenSSL installieren"
warte " Bitte warten..."
apt install -y ca-certificates curl gnupg lsb-release openssl
warte " Bitte warten......"
warte " Bitte warten........."
warte " "
warte " Docker Repository einrichten"
warte " Bitte warten..."
install -m 0755 -d /etc/apt/keyrings
warte " Bitte warten......"
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
warte " Bitte warten........."
chmod a+r /etc/apt/keyrings/docker.gpg
warte " Bitte warten............"
warte " "
warte " Docker Repository hinzufügen"
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" \
> /etc/apt/sources.list.d/docker.list
warte " Bitte warten..."
warte " Bitte warten......"
warte " "
warte " Docker installieren"
warte " Bitte warten..."
apt update
warte " Bitte warten......"
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
warte " Bitte warten......"
warte " Bitte warten........."
warte " "
warte " Docker starten"
warte " Bitte warten..."
systemctl enable docker
warte " Bitte warten......"
systemctl start docker
warte " Bitte warten........."
warte " Bitte warten............"
warte " Bitte warten..............."
warte " Bitte warten.................."
warte " Bitte warten....................."
warte " "
warte " Ordner /opt/papra und /opt/papra/papra-data anlegen"
warte " Bitte warten..."
mkdir -p /opt/papra
warte " Bitte warten......"
mkdir -p /opt/papra/papra-data
warte " "
warte " Secret-Key wird erstellt"
warte " Bitte warten..."
AUTH_SECRET=$(openssl rand -hex 32)
warte " Bitte warten......"
echo "AUTH_SECRET=$AUTH_SECRET" > /opt/papra/.env
warte " Bitte warten........."
chmod 600 /opt/papra/.env
warte " Bitte warten............."
warte " "
warte " docker-compose.yml erstellen"
warte " /opt/papra/docker-compose.yml"
warte " "
warte " Bitte warten..."
cat <<EOF > /opt/papra/docker-compose.yml
services:
papra:
# Das letzte Image wird geladen:docker-compose up -d / Installation - docker-compose down docker-compose up -d / Updates
image: ghcr.io/papra-hq/papra:latest
# Name des Containers
container_name: papra
# User des CTs
user: "1000:1000"
# Soll immer gestartet sein
restart: unless-stopped
# Port des Containers
ports:
- "1221:1221"
environment:
# IP Adresse der VM + Port des Containers - muss Ihre VM-IP sein
APP_BASE_URL: "http://$IP:1221"
# wird bei der installation unter /opt/papra/.env gespeichert
AUTH_SECRET: "${AUTH_SECRET}"
# app-data Ordner liegt im selben Ordner wie die docker-compose.yml, er enthält die Datenbank und Daten
volumes:
- ./papra-data:/app/app-data
EOF
warte " Bitte warten......"
warte " Bitte warten........."
warte " "
warte " stunnel installieren"
warte " Bitte warten..."
apt install -y stunnel4
warte " Bitte warten......"
warte " Bitte warten........."
warte " Bitte warten............"
warte " Bitte warten..............."
warte " "
warte " Papra Container starten"
cd /opt/papra
warte " Bitte warten..."
docker compose up -d
warte " Bitte warten......"
warte " Bitte warten........."
warte " Bitte warten............"
warte " Bitte warten..............."
warte " "
warte " Papra Container stoppen"
cd /opt/papra
warte " Bitte warten..."
docker compose down
warte " Bitte warten......"
warte " Bitte warten........."
warte " Bitte warten............"
warte " Bitte warten..............."
warte " "
warte " Rechte für Papra Datenordner setzen"
warte " Bitte warten..."
# User mit UID 1000: voller Zugriff
# Gruppe mit GID 1000: lesen und in Ordner wechseln
# Andere Benutzer: kein Zugriff
chown -R 1000:1000 /opt/papra/papra-data
warte " Bitte warten......"
# Besitzer: lesen, schreiben, ausführen
# Gruppe: lesen, ausführen
# Andere Benutzer: kein Zugriff
chmod -R 750 /opt/papra/papra-data
warte " Bitte warten........."
warte " "
warte " Papra Container starten"
warte " Bitte warten..."
docker compose up -d
warte " Bitte warten......"
warte " Bitte warten........."
warte " Bitte warten............"
warte " Bitte warten..............."
warte " "
warte " Docker Compose Datei unter:"
warte " /opt/papra/docker-compose.yml"
warte " Bitte warten..."
warte " Bitte warten......"
warte " Bitte warten........."
warte " Bitte warten............"
warte " "
warte " Papra wird gestartet"
warte " "
warte " 11 Bitte warten..."
warte " 10 Bitte warten......"
warte " 09 Bitte warten........."
warte " 08 Bitte warten............"
warte " 07 Bitte warten..............."
warte " 06 Bitte warten.................."
warte " 05 Bitte warten....................."
warte " 04 Bitte warten........................"
warte " 03 Bitte warten..........................."
warte " 02 Bitte warten.............................."
warte " 01 Bitte warten................................."
warte " "
warte " "
warte " Papra erreichen Sie unter:"
warte " http://$IP:1221"
warte " "
warte " Unter dem Anmelde-Button auf der Papra Startseite finden Sie:"
warte " Sie haben noch kein Konto? Registrieren"
warte " Klicken Sie auf Registireren"
warte " "
warte " Installation beendet"
warte " "
warte " Ich bitte um Kommentare auf YouTube und meinem Blog."
warte " Mir ist es sonst nicht möglich, etwas zu verbessern."
warte " Vielen Dank dafür."
warte " "
warte " Powerd, nee Poweret, auch nich, Powwer ... Ach Sch....e:"
warte " "
warte " Präsentiert von: ComputerRalle"
warte " "
#Zum Deinstallieren von Papra koennen Sie diesen Befehl (ohne Raute) verwenden:
# cd /opt/papra && docker compose down && docker rm -f papra 2>/dev/null && rm -rf /opt/papra && cd && rm install_papra.sh && apt remove --purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin stunnel4 && rm -rf /var/lib/docker /etc/docker && rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg && apt autoremove -y && apt autoclean


Moin Ralf Peter Kleinert,
ich hoffe, dass nicht nur ich sehnlichst auf das Video über Papra warte.
Das Thema „Papra“ ist für mich sehr wichtig.
Ihre Art und Weise Software und Dinge der IT zu erklären ist genau mein Fall.