Startseite » Knowledge Base » Paperless NGX auf Debian installieren

Paperless NGX auf Debian installieren

P

aperless NGX für deine papierlose Dokumentenstruktur und Ablage deiner wichtige Unterlagen. Die Installation erfolgt hier ohne Docker auf einer Proxmox VM Debian 11. Als Datenbank nutzen wir MariaDB (siehe weiter unten) und als Webserver Nginx.

Paperless zeichnet sich durch eine intelligente OCR-Texterkennung aus. Das Verwalten und die Digitalisierung deiner Dokumente wird zum Kinderspiel. Selbst aus mehreren 100 Dokumenten findest Du durch die Suchfunktion jederzeit dein PDF-Dokument wieder.

Paperless Debian Installation

System aktualisieren

apt update && apt upgrade -y

Erforderliche Pakete installieren

apt install python3 python3-pip python3-dev python3-virtualenv imagemagick fonts-liberation libpoppler-cpp-dev gnupg libpq-dev gnupg2 optipng default-libmysqlclient-dev libmagic-dev mime-support libzbar0 poppler-utils pkg-config mariadb-client -y

Abhängigkeiten für die Texterkennung installieren

apt install unpaper ghostscript icc-profiles-free qpdf liblept5 libxml2 pngquant zlib1g tesseract-ocr tesseract-ocr-deu -y

Redis installieren und konfigurieren

apt install redis-server

Überprüfe den Redis-Status

systemctl status redis.service

Bearbeite redis.conf (je nach Bedarf)

nano /etc/redis/redis.conf

Nach Änderung an der /etc/redis/redis.conf – Server neustarten

systemctl restart redis.service

Paperless User

Erstelle den User paperless inkl. Homeverzeichnis & Gruppe

adduser paperless --system --home /opt/paperless --group

Adminrechte vergeben

usermod -a -G sudo paperless

User-ID auslesen

id paperless

Hier nun direkt per SSH-Konsole die User-ID für paperless ausfindig machen, diese ID wird später benötigt.

Paperless User

Paperless NGX downloaden

wget https://github.com/paperless-ngx/paperless-ngx/releases/download/v2.5.4/paperless-ngx-v2.5.4.tar.xz

Die aktuellste Release-Version von Paperless NGX findest Du hier.

Entpacke die heruntergeladene Datei

tar -xf paperless-ngx-v2.5.4.tar.xz

Verschiebe den Inhalt nach /opt/paperless

mv paperless-ngx/.[^.]* /opt/paperless
mv paperless-ngx/* /opt/paperless

Es werden alle Dateien aus dem Ordner paperless-ngx nach /opt/paperless verschoben. Auch die versteckten Dateien z.B. .env – Den entpackten Ordner paperless-ngx und die Datei .tar.xz anschließend löschen.

rmdir -p paperless-ngx && rm -r paperless-ngx-v2.5.4.tar.xz

Zusätzliche Paperless-Verzeichnisse erstellen

mkdir -p /opt/paperless/media
mkdir -p /opt/paperless/data
mkdir -p /opt/paperless/consume
mkdir -p /opt/paperless/export

User-Rechte für Verzeichnisse setzen

chown -R paperless:paperless /opt/paperless

Vorhandene Konfigurationsdatei umbenennen

mv /opt/paperless/paperless.conf /opt/paperless/paperless.conf.default

Neue Konfigurationsdatei erstellen und anpassen

nano /opt/paperless/paperless.conf

Die wichtigsten Paperless-Parameter in die neu erstellte paperless.conf einfügen und deine Werte entsprechend anpassen. Unten aufgeführte Variablen sind die erforderlichen Werte, damit Paperless NGX fehlerfrei funtionieren kann. Es gibt eine Reihe weitere Definitionsparameter, die Du auf der DOC-Seite nachlesen kannst.

USERMAP_UID=108
USERMAP_GID=116
# Webadresse oder DynDNS-Adresse
PAPERLESS_URL=https://deine-web-adresse.de
PAPERLESS_CORS_ALLOWED_HOSTS=https://deine-web-adresse.de,http://192.168.XXX.XXX:8888
PAPERLESS_CSRF_TRUSTED_ORIGINS=https://deine-web-adresse.de,http://192.168.XXX.XXX:8888
PAPERLESS_ALLOWED_HOSTS=deine-web-adresse.de,192.168.XXX.XXX
PAPERLESS_SECRET_KEY=LANGE-SICHERE-FOLGE-VON-ZUFALLSZEICHEN
PAPERLESS_TIME_ZONE=Europe/Berlin
PAPERLESS_OCR_LANGUAGE=deu
PAPERLESS_FILENAME_FORMAT={created_year}-{created_month}-{correspondent}-{title}
# Admin und Passwort frei vergeben
PAPERLESS_ADMIN_USER=admin
PAPERLESS_ADMIN_PASSWORD=DEIN-GEHEIMES-PASSWORT
# Paperless gescannte Dokumente und Daten
PAPERLESS_CONSUMPTION_DIR=’/opt/paperless/consume‘
PAPERLESS_DATA_DIR=’/opt/paperless/data‘
PAPERLESS_MEDIA_ROOT=’/opt/paperless/media‘
PAPERLESS_REDIS=redis://localhost:6379
PAPERLESS_DBENGINE=mariadb
PAPERLESS_DBHOST=localhost
PAPERLESS_DBNAME=paperless
PAPERLESS_DBUSER=paperless
PAPERLESS_DBPASS=DEIN-GEHEIMES-DATENBANK-PASSWORT
PAPERLESS_DBPORT=3306
PAPERLESS_OCR_THREADS=3

Datei-Rechte für die neue paperless.conf setzen

chown -R paperless:paperless /opt/paperless/paperless.conf

Paperless Debian Installation

MariaDB installieren

apt install mariadb-server

Datenbank-Status prüfen

systemctl status mariadb.service

MariaDB Secure Mode durchführen

mysql_secure_installation

Beantworte nun die Fragen mit Y. Falls du das Root-Passwort schon gesetzt hattest, brauchst du bei dieser Frage nur ein N setzen. Bei allen anderen Fragen mit YES die Abfragen durchgehen 🙂

Datenbank erstellen und Benutzer einrichten

mysql -u root -p
CREATE DATABASE paperless;
CREATE USER 'paperless'@'localhost' IDENTIFIED BY 'DEIN-GEHEIMES-PASSWORT';
GRANT ALL PRIVILEGES ON paperless.* TO 'paperless'@'localhost';
FLUSH PRIVILEGES;
QUIT

Folgende Daten sind auch gemäß der hier erstellten Werte in der paperless.conf definiert: DB=paperless / DBUser=paperless / DBPasswort=DEIN-DATENBANK-PASSWORT (Achte auf die Änderungen deiner Einstellungen)

Paperless Debian Installation

Python-Anforderungen installieren aus Datei requirements.txt

cd /opt/paperless

Virtuelle Umgebung erstellen

python3 -m virtualenv --python=/usr/bin/python3 envsp
source envsp/bin/activate
sudo -Hu paperless pip3 install -r requirements.txt

Paperless Debian Installation

Wechsle in das /src Verzeichnis und führe die Befehle aus:

cd /opt/paperless/src
sudo -Hu paperless python3 manage.py migrate
sudo -Hu paperless python3 manage.py createsuperuser

Folge den Anweisungen und richte den Superuser mit Namen, Emailadresse und Passwort abschließend ein.

Virtuelle Umgebung verlassen

deactivate

WARNING: The script sqlformat is installed in ‚/opt/paperless/.local/bin‘ which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use –no-warn-script-location.

Bei o.g. Warnmeldung, Installationspfad hinzufügen

export PATH=$PATH:/opt/paperless/.local/bin

NGINX Webserver installieren

apt install nginx

Aktiviere den NGINX-Webserver für den Autostart

systemctl enable nginx.service

Überprüfe den NGINX-Status

systemctl status nginx.service

Lösche die Default von NGINX und erstelle eine neue Datei

rm /etc/nginx/sites-enabled/default
nano /etc/nginx/sites-available/paperless

Füge den Code in die Datei ein

server {
    listen 80;
    listen [::]:80;
    server_name deine-webadresse.ddnss.de;
    access_log /var/log/nginx/paperless_access.log;
    error_log /var/log/nginx/paperless_error.log;

    location / {
        proxy_pass http://127.0.0.1:8888;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $server_name;
   }
}

Diese Definition ist eine Möglichkeit per NGINX Proxy Manager und DynDNS-Adresse auf die im Heimnetzwerk interne IP-Adresse zugreifen zu können. Hast Du eine andere Konstellation, musst Du diese natürlich entsprechend anpassen. Ich bitte dies entsprechend zu berücksichtigen.

Symlink erstellen und neue Definition aktivieren

ln -s /etc/nginx/sites-available/paperless /etc/nginx/sites-enabled

Neue NGINX-Config prüfen

nginx -t

Webserver neu starten

systemctl restart nginx

Paperless Debian Installation

Zum Testen ob der Server läuft

cd /opt/paperless/src
sudo -Hu paperless python3 manage.py runserver

Paperless Debian Installation

Standard-Port 8000 auf Port 8888 ändern (optional)

nano /opt/paperless/gunicorn.conf.py

Paperless Debian Installation

Systemd-Dienste einrichten

nano /etc/systemd/system/paperless-webserver.service
[Unit]
Description=Paperless-Webserver
After=network.target
Wants=network.target
Requires=redis.service

[Service]
User=paperless
Group=paperless
WorkingDirectory=/opt/paperless/src
ExecStart=/opt/paperless/.local/bin/gunicorn -c /opt/paperless/gunicorn.conf.py paperless.asgi:application

[Install]
WantedBy=multi-user.target

Webserver und Consumer Dienste einrichten und Inhalte in die erstellten Dateien einfügen.

nano /etc/systemd/system/paperless-consumer.service
[Unit]
Description=Paperless-Consumer
Requires=redis.service

[Service]
User=paperless
Group=paperless
WorkingDirectory=/opt/paperless/src
ExecStart=python3 manage.py document_consumer

[Install]
WantedBy=multi-user.target

Systemdienste starten

systemctl daemon-reload
systemctl start paperless-webserver.service 
systemctl start paperless-consumer.service

Status prüfen

systemctl status paperless-webserver.service 
systemctl status paperless-consumer.service

Automatischen Systemstart aktivieren

systemctl enable paperless-webserver.service
systemctl enable paperless-consumer.service

Paperless Debian Installation

Paperless-Server neu starten und Local mit IP-ADRESSE:8888 oder Extern mit https://dyndns-adresse.de . Hier sollte natürlich das Let’s Encrypt Zertifikat eingerichtet vorhanden sein.


Paperless

Viel Spass 😉

War dieser Artikel hilfreich?
Artikel wurde bisher 4.909 mal gelesen
Einen Kommentar schreiben

Bewerte den Artikel nach Punkten

1 Punkt2 Punkte3 Punkte4 Punkte5 Punkte ( 10 Bewertungen, Durchschnitt: 3,20 von insgesamt 5 )
Loading...