paperless-ngx: Installieren auf Ubuntu22.04 VM mit gemountetem data Verzeichnis

Dieser Beitrag behandelt die Installation von paperless-ngx auf einer Ubuntu Maschine. Wobei das Dokumentenverzeichnis ausgelagert auf einer Netzwerkfreigabe liegt.

In diesem Beitrag werden wir paperless-ngx auf einer Ubuntu 22.04 LTS Maschine installieren. Diese wird in meinem Fall virtualisiert sein, sollte aber genauso gut auch auf bare metal funktionieren. Die Maschine bekommt neben 2 CPU Kernen und 2048MB Arbeitsspeicher noch 16GB Festplattenkapazität zugewiesen. viel weniger als 16GB würde ich nicht empfehlen, da bereits um die 8 GB Speicherplatz nicht ausreichend sind um das Tool zu installieren.

Um eine Rückfallebene zu haben, werden wir in dieser Beschreibung das so genannte „media“-Verzeichnis von paperless-ngx, welches alle hochgeladenen Dateien enthält, auf eine Netzwerkfreigabe auslagern. Dieser Netzwerkordner kann später auch an eine Nextcloud o.ä. angebunden werden (am besten nur leserechte).

Nachdem wir uns via SSH auf unsere Maschine verbunden haben, beginnen wir die Arbeiten mit dem obligatorischen aktualisieren des Geräts.

sudo apt-get update && apt-get upgrade -y && apt autoremove -y

Nach Abschluss installieren wir curl (was wahrscheinlich bereits installiert ist) um darüber Docker laden zu können.

sudo apt install curl
sudo curl -sSL https://get.docker.com | sh

Zusätzlich zu Docker installieren wir noch Docker-compose.

sudo apt install docker-compose -y

Bevor wir paperless-ngx installieren, müssen wir die Maschine noch vorbereiten. Wir legen zunächst einen neuen Nutzer an, damit paperless-ngx nicht mit root Rechten laufen muss.

sudo adduser paperless

Wir vergeben einen Namen ein Passwort überspringen die weiteren Punkte mit einen Druck auf Enter und bestätigen die Korrektheit der Angaben mit einem „y“.

Den soeben angelegten User fügen wir jetzt noch der Docker- und der sudo-Gruppe hinzu.

sudo usermod -aG docker paperless
sudo usermod -aG sudo paperless

Als nächstes erstellen wir einen mounting-punkt für das Einbinden der Netzwerkfreigabe, in der wir später das media-Verzeichnis ablegen werden.

sudo mkdir /mnt/paperless_data/

Zum einbinden installieren wir noch cifs.

sudo apt install cifs-utils -y

Damit der Netzwerkordner auch nach einem Neustart wieder eingebunden wird, müssen wir einen Eintrag in der fstab machen.

sudo nano /etc/fstab

Den hier gezeigten Eintrag müsst ihr am Ende der Datei anfügen. Vorher solltet ihr diesen jedoch mit den Angaben des Hosts, dem Usernamen und dem Passwort des Hosts ergänzen. CIFS oder auch SMB genannt (Je nach OS) sollte in der Version 3 oder höher genutzt werden, damit die Verbindung und der Datenaustausch verschlüsselt stattfindet. Achtet bei eurem NAS oder HOST darauf, dass nur solche Verbindungen akzeptiert werden.

//IP_des_Hosts/Ordner_auf_dem_Host /mnt/nextcloud_data cifs defaults,uid=1001,gid=1001,dir_mode=0777,file_mode=0777,username=<USERNAME>,password=<PASSWORD>

Es kann sein, dass ihr die uid und die gid vorab auch noch ändern müsst. Diese müssen mit den IDs des neuen Users übereinstimmen. Abrufen kann man diese mit dem Befehl „id“s.

id paperless

Um das Laufwerk einzubinden und das auch direkt nach einem Neustart zu testen, starten wir die Maschine neu.

sudo reboot

Nach dem Neustart loggen wir und mit dem neuen User „paperless“ ein oder loggen uns um mit dem Befehl „su“

su paperless

Jetzt können wir testen ob das Einbinden geklappt hat. Hierfür gehen wir in den mount-Ordner.

cd /mnt/paperless_data/

und listen alle darin enthaltenen Daten.

ls

Wenn wir nun eine Datei in den Netzwerkordner legen und nochmals alle Dateien listen, sollten wir diese auch auf der Ubuntu-Maschine sehen können.

ls

Nachdem das Einbinden erfolgreich funktioniert hat, wechseln wir in den Installation Ordner.

cd /home/paperless/

Dort angekommen führen wir das offizielle Installaitonsskript aus und folgen den Anweisungen.

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

Ihr könnt, solange ihr keine Angaben ändern wollt die Werte, die jeweils in den []-Klammern aufgeführt sind, ohne Eingabe und mit druck auf Enter übernehmen. Ansonsten habe ich meine Werte hier mal aufgeführt.

URL []: http://localhost
Port [8000]: 8000
Current time zone [Etc/UTC]: Europe/Berlin
Database backend (postgres sqlite mariadb) [postgres]: postgres
Enable Apache Tika? (yes no) [no]: yes
OCR language [eng]: deu

User ID [1001]: 1001  <= Hier muss die UserID von eurem paperless Nutzer gewählt werden, den ihr erstellt habt
Group ID [1001]: 1001  <= Hier muss die GroupID von eurem paperless Nutzer gewählt werden, den ihr erstellt habt

Target folder [/home/paperless/paperless/paperless-ngx]: /home/paperless/paperless/paperless-ngx
Consume folder [/home/paperless/paperless/paperless-ngx/consume]: /mnt/paperless_data/consume
Media folder []: /mnt/paperless_data/media
Data folder []: /mnt/paperless_data/data
Database folder []: /mnt/paperless_data/database

Paperless username [paperless]: <USERNAME>  <= Hier kann ein Username frei gewählt werden
Paperless password: <PASSWORT>  <= Hier ein Passwort für das spätere Einloggen bei Paperless wählen
Paperless password (again): <PASSWORT>  <= Passwort wiederholen
Email [admin@localhost]: admin@localhost  <= Oder eine richtige Adresse nach Wahl


Nach der Installation starten wir die Maschine nochmals neu.

sudo reboot

Und öffnen auf unserem Computer den Browser mit der IP Adresse unserer soeben eingerichteten paperless.ngx-Instanz gefolgt von einem „:8000“ für den bei der Installation gewählten Port. Hier loggen wir und mit den zuletzt angelegten Userdaten aus der Installation ein.


Beitrag veröffentlicht

in

, ,

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert