Installation von Stirling PDF

  Sebastian Blei   Lesezeit: 11 Minuten

Eine schnelle Bereitstellung von Stirling PDF mit podman unter openSUSE MicroOS. Ich bin vor Kurzem auf Stirling PDF gestoßen und möchte es in diesem Artikel kurz vorstellen und eine Installationshilfe geben.

installation von stirling pdf

Stirling PDF ist eine webbasierte PDF-Manipulationsplattform, die eine Vielzahl an Funktionen mitbringt. Einige Funktionen sind zum Beispiel PDF-Dokumente in mehrere Seiten aufzuteilen, zusammenzufügen oder einzelne Seiten zu löschen. Bilder, Texte und Webseiten in ein PDF zu konvertieren. Texterkennung zum Erstellen von durchsuchbaren PDFs ist auch kein Problem. Dies ist nur ein kleiner Einblick der Funktionalität. Eine detaillierte Liste aller Funktionen kann im Handbuch der Anwendung nachgelesen werden.

Das Tool kann schnell mit Podman selbst gehostet werden und ist daher auch ohne zentralen Server im Desktop Betrieb gut nutzbar. Für die Installation verwende ich ein frisch installiertes openSUSE MicroOS mit GNOME-Desktop (Aeon).

Es müssen noch ein paar Tools und ein Sprachpaket für die Texterkennung installiert werden. Das Sprachpaket ist für die deutsche Sprache und für Englisch schon vorinstalliert und muss nicht mit installiert werden, doch wer noch eine andere Sprache benötigt, kann das entsprechende Paket an den Befehl anhängen. Alle Befehle können mit Copy & Paste in ein Terminal kopiert werden.

sudo transactional-update pkg install setools-console tesseract-ocr-traineddata-deu

openSUSE MicroOS ist ein unveränderbares System, das nach dem Transactionalen Update neu gestartet werden muss, um die Änderungen zu übernehmen.

sudo reboot

Nach einem Neustart muss dann die Transactionale Shell geöffnet und ein Soft Link auf libc.so.6 angelegt, sowie dessen SELinux Sicherheitskontext angepasst werden. Dies geschieht mit den folgenden Befehlen, die nach der Reihe ausgeführt werden.

sudo transactional-update shell
setenforce 0
semanage permissive --add container_file_t
mkdir /lib/x86_64-linux-gnu
ln -s /usr/lib/x86_64-linux-gnu/usr/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6
chcon -R system_u:object_r:container_file_t:s0:c1,c2 /lib/x86_64-linux-gnu/libc.so.6
semanage boolean -m -1 container_connect_any
setenforce 1
exit

Genau wie oben muss auch nach diesem Transactionalen Update neu gestartet werden, damit die Änderungen angewendet werden.

sudo reboot

Nun wird das Verzeichnis für den Export der Laufwerke erstellt. Ich erstelle alle Podman Laufwerke unter /home, da es schreibbar gemountet wird und so brauche ich bei einem Update nur ein Verzeichnis sichern. Für ein anderes Verzeichnis müssen alle Befehle entsprechend eurem Verzeichnis-Wunsch angepasst werden.

sudo mkdir /home/stirling-pdf
sudo chmod -c 777 /home/stirling-pdf
sudo chcon -R system_u:object_r:container_file_t:s0:c1,c2 /home/stirling-pdf

Jetzt ist das System vorbereitet und der Podman Container mit Stirling PDF kann gestartet werden. Die Programmversion latest (~681 MB groß) kann hier auch durch latest-lite (~452 MB groß) und latest-ultra-lite (~160 MB groß) ersetzt werden. Die Größenangaben des Projektes weichen stark von der heruntergeladenen Größe ab. Bei mir ist das latest Image 1,78 GB groß. Wer nicht den gesamten Funktionsumfang von Stirling PDF benötigt und dabei noch Speicherplatz sparen möchte, sollte sich die anderen beiden Versionen im Vergleich anschauen.

podman run -d -p 8080:8080 -v /home/stirling-pdf:/usr/share/tesseract-ocr:Z -v /home/stirling-pdf:/configs:Z --security-opt label=level:s0:c1,c2 -e DOCKER_ENABLE_SECURITY=false --name stirling-pdf docker.io/frooodle/s-pdf:latest

Nach einem erfolgreichen Start des Containers (siehe Befehl oben) ist Stirling PDF unter folgender URL erreichbar http://localhost:8080/?lang=de_DE.

Damit der Container bei einem Neustart wieder automatisch startet, muss ein systemd Dienst eingerichtet werden. Alle, die keinen automatischen Start wünschen können diesen Teil überspringen und einen manuellen Start z.b. mit Podman Desktop aus dem GNOME-Store installieren und über eine einfache grafische Oberfläche Podman steuern.

Weiter geht es mit dem Erstellen des Systemdienstes:

mkdir -p ~/.config/systemd/user
podman generate systemd --new --name stirling-pdf > ~/.config/systemd/user/stirling-pdf.service
systemctl --user daemon-reload
systemctl --user enable stirling-pdf.service
systemctl --user start stirling-pdf.service

Um die Standardsprache auf Deutsch umzustellen, wird die Datei /home/stirling-pdf/settings.yml mit dem Editor deiner Wahl geöffnet und die folgende Zeile defaultLocale: 'en_US'auf defaultLocale: 'de_DE'geändert. Für das deutschsprachige tesseract-ocr müssen noch die Trainingsdaten zum Verzeichnis stirling-pdf kopiert werden.

cp /usr/share/tessdata/deu.traineddata /home/stirling-pdf/5/tessdata/deu.traineddata

Je nachdem welche Versionsnummer stirling-pdf verwendet, hier 5, muss man bei dem oberen Befehl entsprechend eine andere Zahl einsetzen.

Um den Container zu stoppen und zu entfernen, muss lediglich der systemd Dienst gestoppt werden. Hierzu wird der folgende Befehl verwendet:

systemctl --user stop stirling-pdf.service 

Für einen erneuten Start muss nur der systemd Dienst wieder gestartet werden.

systemctl --user start stirling-pdf.service 

Zum Schluss zeige ich noch, wie man Stirling PDF updaten kann. Zum Überprüfen welche Version verwendet wird, kann in den Einstellungen von stirling-pdf nachgeschaut werden. Dazu einfach auf das Zahnrad klicken.

In den Releases von Stirling PDF kann nachgeschaut werden, ob es eine neue Veröffentlichung gibt. Nun zum eigentlichen Update. Dazu muss das neueste Image mit dem Pull-Befehl herunter geladen werden:

podman pull docker.io/frooodle/s-pdf:latest

Um die Containerversion anzuwenden, muss der Container, nur gestoppt und neu gestartet werden.

systemctl --user restart stirling-pdf.service 

Sollte nach dem Update alles wie gehabt funktionieren, kann das alte Image gelöscht werden. Dazu wird durch Auflisten aller heruntergeladenen Images die passende Image ID ermittelt. Das alte Image ist als NONE bezeichnet.

podman image list

Zum Löschen einzelner Images wird rm verwendet z.b. podman image rm 824873a7d91c.

podman image rm 

Weitere Artikel in denen es um PDF Bearbeitung geht:

Weiter Artikel zu Podman:

Weitere Artikel zu systemd:

Quellen:
https://www.stirlingtools.com/
https://www.tutorialworks.com/podman-systemd/
https://www.thegeekstuff.com/2017/07/chcon-command-examples/
https://linux.die.net/man/8/semanage

Bild Quelle: https://github.com/containers/podman/tree/main/logo

Tags

PDF, systemd, SELinux

Es wurden noch keine Kommentare verfasst, sei der erste!