Paperless-ngx mithilfe von Docker unter Debian installieren :: ITv4.de
Paperless-ngx mithilfe von Docker unter Debian installieren

In diesem Beitrag erkläre ich die Installation und Einrichtung von der Dokumentenverwaltung-Software Paperless-ngx mithilfe von Docker unter Debian.


INHALTSVERZEICHNIS


In der heutigen digitalen Welt wird die Verwaltung und Archivierung von Dokumenten immer wichtiger. Hier kommt Paperless-ngx ins Spiel, eine leistungsstarke Open-Source-Software, die entwickelt wurde, um die Aufbewahrung und Suche nach Dokumenten zu vereinfachen. Die Dokumentenverwaltungssystem wurde entwickelt, um Dokumente zu digitalisieren, zu organisieren und leicht zugänglich zu machen. Es bietet eine benutzerfreundliche Weboberfläche und leistungsstarke Funktionen zur Verwaltung von Dokumenten aller Art. Egal, ob du Rechnungen, Verträge, Notizen oder andere wichtige Papiere speichern möchtest.

Meine Anleitung für die Installation von Paperless-ngx bezieht sich auf die Version 1.17.4.

Docker installieren

Die einfachste Installation für Paperless-ngx erfolgt über Docker. Falls noch nicht geschehen, musst du also zunächst Docker und Docker Compose installieren.

Verbinde dich per PuTTY auf deinen Server. Suche zunächst nach Updates, um den Server auf den aktuellsten Stand zu bringen:

sudo apt update

Installiere die erforderlichen Abhängigkeiten, die von Docker benötigt werden:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Füge den offiziellen Docker-GPG-Schlüssel hinzu, um die Paketsignaturen zu überprüfen:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Füge die Docker-Repository hinzu:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Aktualisiere erneut dein Paketverzeichnis, um die Informationen aus dem Docker-Repository zu erhalten:

sudo apt update

Installiere Docker nun mit dem folgenden Befehl:

sudo apt install docker-ce docker-ce-cli containerd.io

Starte den Docker-Dienst und aktiviere ihn, damit er bei jedem Systemstart gestartet wird:

sudo systemctl start docker
sudo systemctl enable docker

Stelle sicher, dass curl bei deinem System installiert ist:

sudo apt install curl

Führe den folgenden Befehl aus, um Docker Compose herunterzuladen und in das Verzeichnis /usr/local/bin zu verschieben. Dieser Befehl installiert die neueste Version von Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Gib ausführbare Berechtigungen für Docker Compose:

sudo chmod +x /usr/local/bin/docker-compose

Docker wurde nun installiert. Jetzt kann Paperless-ngx installiert werden.

Die Installation von Paperless-ngx erfolgt als nicht-Root Benutzer. Falls noch kein anderer Benutzer existiert, erstellst du einen:

sudo adduser paperless

Befolge die weiteren Schritte, um den Benutzer anzulegen.

Vergib dem neuen Benutzer die Berechtigung, Docker zu verwenden:

sudo usermod -aG docker paperless

Wechsel jetzt die Sitzung in den neuen Benutzer:

su paperless

Verwende für die Installation das Docker-Script von GitHub:

bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"

Nun wird die Software in einigen Schritten konfiguriert. Den Anfang macht die Angabe der URL, unter der Paperless-ngx später erreichbar sein wird. Sofern auch ein SSL-Zertifikat für deine Domain vorhanden ist, solltest du hier die Seite mit https angeben.


1. Application configuration
============================

The URL paperless will be available at. This is required if the
installation will be accessible via the web, otherwise can be left blank.
Example: https://paperless.example.com

URL []: http://paperless.domain.tld

Als nächstes gibst du den Port der Software an. Ich belasse es beim Standard 8000. Später kannst du in der Virtual Host Datei von Apache2 auch hinterlegen, dass der Port gar nicht eingegeben werden muss.

The port on which the paperless webserver will listen for incoming
connections.

Port [8000]: 8000

Gib im nächsten Schritt die Zeitzone für Deutschland an.

Paperless requires you to configure the current time zone correctly.
Otherwise, the dates of your documents may appear off by one day,
depending on where you are on earth.
Example: Europe/Berlin
See here for a list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Current time zone [Europe/Berlin]: Europe/Berlin

Nun musst du einen Datenbank-Typ auswählen. Ich verwende MariaDB.

Database backend: PostgreSQL, MariaDB, and SQLite are available. Use PostgreSQL
if unsure. If you're running on a low-power device such as Raspberry
Pi, use SQLite to save resources.

Database backend (postgres sqlite mariadb) [postgres]: mariadb

Möchtest du, dass Paperless-ngx auch Office-Dokumente analysieren können soll, aktiviert du Tika. Dieses Feature benötigt jedoch zusätzliche Ressourcen.

Paperless is able to use Apache Tika to support Office documents such as
Word, Excel, Powerpoint, and Libreoffice equivalents. This feature
requires more resources due to the required services.

Enable Apache Tika? (yes no) [no]: yes

Für die OCR-Texterkennung gibst du jetzt an, in welcher Sprache sich die meisten deiner Dokumente befinden. Das sollte Deutsch sein.

Specify the default language that most of your documents are written in.
Use ISO 639-2, (T) variant language codes:
https://www.loc.gov/standards/iso639-2/php/code_list.php
Common values: eng (English) deu (German) nld (Dutch) fra (French)
This can be a combination of multiple languages such as deu+eng

OCR language [eng]: deu

In den nächsten beiden Schritten bestätigst du jeweils die User-ID und Group-ID, welche bereits in der eckigen Klammer steht. Das Setup wird die Berechtigungen entsprechend für den aktuellen Benutzer setzen.

Im nächsten Schritt legst du fest, wo die Daten von Paperless-ngx liegen sollen. Das sollte dort sein, von wo aus die Website laut Virtual Host Datei direkt erreichbar ist.

The target folder is used to store the configuration files of
paperless. You can move this folder around after installing paperless.
You will need this folder whenever you want to start, stop, update or
maintain your paperless instance.

Target folder [/home/paperless-ngx]: /home/paperless/www

Die gleiche Syntax wird jetzt noch für die Verzeichnisse media, data und database festgelegt.

The consume folder is where paperless will search for new documents.
Point this to a folder where your scanner is able to put your scanned
documents.

CAUTION: You must specify an absolute path starting with / or a relative
path starting with ./ here. Examples:
  /mnt/consume
  ./consume

Consume folder [/home/paperless/www/consume]: /home/paperless/www/consume

Im letzten Schritt legst du die Anmeldedaten für dein Administrator-Konto fest. Eine E-Mail-Adresse muss hinterlegt werden, wird aber für nichts verwendet.

3. Login credentials
====================

Specify initial login credentials. You can change these later.
A mail address is required, however it is not used in paperless. You don't
need to provide an actual mail address.

Paperless username [paperless]: paperless
Paperless password:
Paperless password (again):
Email [paperless@localhost]: mail@example.com

Dir wird die Konfiguration zusammengefasst. Drücke Enter, um die Installation von Paperless-ngx zu starten.

Nach der Installation kannst du Paperless-ngx über deinen Browser aufrufen:

http://paperless.domain.tld:8000

Kurze Einführung in Paperless-ngx

In Paperless-ngx angemeldet empfehle ich als erstes die Einstellungen durchzugehen und nach eigenem Empfinden einzustellen. Außerdem sollten unter Verwalten Tags eigene Tags erstellt werden, damit gescannten Dokumente und Briefe später einfacher zugeordnet und gefunden werden können. Die Tour erklärt dir ebenfalls die Grundfunktionen.

Unter Verwalten lassen sich auch Dokumenttypen erstellen. Ich persönlich nutzt als Typ Brief, Dokument und Sonstiges.

Über die Startseite kannst du einen Scan auswählen und hochladen. Anschließend findest du das Dokument unter Dokumente. Über das Stift-Symbol kannst du Details und weiterer Optionen dieses Dokuments ändern. Ein Titel, das Datum und die entsprechenden Tags sollten als minimum gesetzt werden.

Die Software erkennt anhand der OCR-Texterkennung das Datum der Dokumente in der Regel automatisch, oder es wird das Erstelldatum verwendet, und trägt dieses Datum entsprechend ein, außerdem lernt eine KI die verschiedenen Arten der Dokumente und vergibt dann automatisch nach dem Hochladen den passenden Tag, wie beispielsweise Versicherung, Gesundheit oder Steuerunterlagen. Diesen automatische Zuweisungsalgorithmus kannst du unter Tags im entsprechenden Tag auch deaktivieren oder festlegen, dass der Tag bei bestimmten vorkommenden Worten automatisch gesetzt wird.

Virtual Host Datei für Aufruf ohne Port

Im folgenden habe ich einmal eine Virtual Host Datei für Apache2 zusammengestellt, die dafür sorgt, dass der Dienst ohne Port erreichbar ist.

<VirtualHost *:80>
	ServerAdmin webmaster@domain.tld
	ServerName paperless.domain.tld.xyz
	DocumentRoot /home/paperless/www

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	<Directory /home/paperless/www>
		Options Indexes FollowSymLinks
		AllowOverride All
		Require all granted
	</Directory>

	ProxyPass / http://127.0.0.1:8000/
	ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>
Screenshot

Backup von Paperless-ngx erstellen

Wie bei allen Diensten solltest du dafür sorgen, dass die Daten regelmäßig für den Fall der Fälle gesichert werden. Sollte es zu einem Datenverlust kommen oder du versehentlich etwas löschen, kannst du so deine Dokumente wiederherstellen.

In folgendem findest du ein kleines Bash-Script, welches Docker beendet, das Verzeichnis von Paperless-ngx sichert und Docker wieder startet. Du solltest hierfür noch mit einem Cronjob für eine Automatisierung sorgen und die Datei extern verschieben lassen. Auch solltest du über eine Verschlüsselung des Backups nachdenken. Die Pfade musst du entsprechend anpassen.

#!/bin/bash

sudo docker-compose down
tar -czf /home/paperless/paperless_$(date +%Y-%m-%d).tar.gz -C /home/paperless www
docker-compose up -d


Bei Fragen oder Anregungen freue ich mich natürlich über eure Kommentare.


Zuletzt aktualisiert
Drucken
War dieser Artikel hilfreich?
2
Hinterlasse einen Kommentar

Hast du Fragen, Probleme oder Anregungen? Hier kannst du öffentliches Feedback geben, anderen helfen und selbst um Hilfe bitten.

Folgende BBCodes sind erlaubt: [B], [I], [U], [CODE] und [MARK].

Die mit * markierten Felder sind Pflichtfelder. Möchtest du über neue Antworten auf deinen Kommentar informiert werden, kannst du deine E-Mail-Adresse hinterlegen. Diese wird nicht veröffentlicht.

Janis Mades
Janis Mades

Ich bin Janis (aka. EurenikZ), 24 Jahre alt und komme aus Frankfurt am Main. Ich habe eine abgeschlossene IHK-Ausbildung zum Fachinformatiker für Systemintegration und arbeite als Junior IT-Administrator in einem IT-Systemhaus. Neben meinem IT-Blog beschäftige ich mich viel mit diversen IT-Themen und meinen Webseiten sowie Telegram Bots und biete IT-Dienstleistungen an.

Themen
Melde dich für den Newsletter an

Mit dem kostenlosen Newsletter wirst du gelegentlich über die neuesten Tipps & Tricks per E-Mail informiert!

Ich verwende Cookies 🍪

Du kannst deine Zustimmung jederzeit widerrufen.

Verarbeitungszwecke

Ich setze Cookies und Werbung ein, um meinen Blog stetig für dich zu verbessern und meine für dich kostenlosen Inhalte zu finanzieren. Dabei ist es möglich, dass Daten außerhalb des EWR verarbeitet, Nutzungsprofile gebildet und mit Daten von anderen Webseiten angereichert werden.

Indem du auf "Zustimmen und weiter" klickst, stimmst du diesen Datenverarbeitungen freiwillig zu. Mehr Informationen findest du in der Datenschutzerklärung. Dort kannst du auch jederzeit deine Entscheidung zu Cookies widerrufen.

Essentielle Cookies anzeigen

Oder

Melde dich mit deinem EZ-Account an und besuche alle meine Webseiten werbefrei und ohne Tracking. Der EZ-Account ist kostenlos.



Impressum