Stirling PDF im Proxmox-Container (LXC)

Allgemein Linux

Sicherlich wolltest auch du schon einmal mehrere PDF-Dokumente zu einem zusammenführen, Texte daraus extrahieren, PDF’s zuschneiden, konvertieren, sonst wie ändern oder ein Passwort entfernen/hinzufügen…. – die Liste ist lang.

Dann bist du bestimmt auch über pdf24.org gestolpert, bzw. den Dienst von Adobe selbst, den du aber kostenlos nur in einem Testzeitraum von 7 Tagen nutzen kannst. In beiden Fällen hattest du bestimmt Bauchschmerzen, die PDF zum Anbieter hochzuladen – Datenschutz lässt grüßen.

Aber da ist ein Licht am Ende des Tunnels. Denn du kannst das alles selber hosten, wenn du einen kleinen Server besitzt und ein paar Minuten Arbeit investierst. Ich habe dafür mal wieder meinen Proxmox-Server genutzt, der läuft hier so wie so.

Aber beginnen wir ganz am Anfang. Was du also brauchst ist der Proxmox-Host, in dem du einen Container (CT) mit Alpine als Basis-Betriebssystem installiert. 8 GB Festplattenkapazität und 512 MB RAM reichen hier völlig.

Wenn das soweit erledigt ist, startest du den Container, loggst dich ein und bringst den Container erstmal auf den aktuellen Stand mittels:

Stirling-PDF:~# apk update && apk upgrade

Im nächsten Schritt installieren wir Docker und konfigurieren das System so, das Docker beim Systemstart automatisch mit gestartet wird.

Stirling-PDF:~# apk add --update docker openrc
Stirling-PDF:~# rc-update add docker boot
Stirling-PDF:~# service docker start

Dann prüfen wir kurz, ob der Docker-Dienst läuft, aber wenn die Befehle oben ohne Fehler akzeptiert wurden, sollte dem auch so sein:

Stirling-PDF:~# service docker status
 * status: started

Als nächstes legen wir und die nötigen Datenverzeichnisse (Docker-Volumes) an:

Stirling-PDF:~# mkdir -p /opt/stirling-pdf/trainingData
Stirling-PDF:~# mkdir /opt/stirling-pdf/extraConfigs

Dann starten wir den Stirling-PDF-Docker-Container (heruntergeladen wird er dabei automatisch)

Stirling-PDF:~# docker run -d \
  -p 80:8080 \
  -v /opt/stirling-pdf/trainingData:/usr/share/tesseract-ocr/5/tessdata \
  -v /opt/stirling-pdf/extraConfigs:/configs \
  -v /opt/stirling-pdf/logs:/logs \
  -e DOCKER_ENABLE_SECURITY=true \
  --name stirling-pdf \
  --restart always \
  frooodle/s-pdf:latest

Das Ergebnis kannst du mit docker ps überprüfen:

Stirling-PDF:~# docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED      STATUS        PORTS                                   NAMES
61df2d98005b   frooodle/s-pdf:latest   "tini -- /scripts/in…"   2 days ago   Up 24 hours   0.0.0.0:80->8080/tcp, :::80->8080/tcp   stirling-pdf

Grundsätzlich ist Stirling-PDF damit bereits lauffähig, du kannst den Container über dessen Adresse mittels http://<IP> aufrufen:

OCR

Für die OCR-Texterkennung, die du sicherlich auch haben möchtest, sind noch ein paar Ergänzungen nötig:

Stirling-PDF:~# cd /opt/stirling-pdf/trainingData
Stirling-PDF:~# wget https://github.com/tesseract-ocr/tessdata/raw/main/deu.traineddata

Das war es auch schon. Darüber hinaus kannst du auch weitere Anpassungen machen, indem du die Datei /opt/stirling-pdf/extraConfigs/settings.yml bearbeitest.

Stirling-PDF:~# nano /opt/stirling-pdf/extraConfigs/settings.yml

Dort kannst du u.a. die benutzeranmeldung aktivieren, initialen Username und Passwort (Standard: admin/stirling) festlegen oder aber auch Funktionen, die du nicht brauchst entfernen (die Liste dazu findest du unter Stirling-PDF/Endpoint-groups.md at main · Stirling-Tools/Stirling-PDF (github.com). Denke nur daran, bei gemachten Änderungen, den Container im Anschluss neu zu starten:

Stirling-PDF:~# docker restart stirling-pdf

Update

Ach ja….sollte ein Update verfügbar sein, musst du den Container anhalten, löschen, den neuen herunterladen und dann mit dem Docker run-Befehl (wie oben) wieder neu starten:

Stirling-PDF:~# docker stop stirling-pdf
Stirling-PDF:~# docker rm stirling-pdf
Stirling-PDF:~# docker pull frooodle/s-pdf:latest

Stirling-PDF:~# docker run -d \
-p 80:8080 \
-v /opt/stirling-pdf/trainingData:/usr/share/tesseract-ocr/5/tessdata \
-v /opt/stirling-pdf/extraConfigs:/configs \
-v /opt/stirling-pdf/logs:/logs \
-e DOCKER_ENABLE_SECURITY=true \
--name stirling-pdf \
--restart always \
frooodle/s-pdf:latest

Viel Spaß damit, die Möglichkeiten sind schier endlos:

2 thoughts on “Stirling PDF im Proxmox-Container (LXC)

  1. Vielen lieben Dank für deine kleine Hilfestellung! Kleiner Hinweis: Beim ersten docker run steht in der letzten Zeile:
    ‚frooodle/s-pdf:lates‘

    Da fehlt wohl am Ende eine ‚t‘.

    Nochmals Dank an Dich.

    Gruß, Stefan.

Schreibe einen Kommentar

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