Installation

Diese Schritt-für-Schritt-Anleitung beschreibt alle Maßnahmen, die bei einem frisch installierten Debian Linux (hier: Version 12.5 Bookworm) nötig sind, um die Anwendung (extern) nutzen zu können.

Konfiguration des Docker-Containers

Wie bei Docker-Compose üblich wird der Container mit Hilfe einer speziellen Konfigurationsdatei (docker-compose.yml) spezifiziert.
Neben den Dateien des Docker-Containers sind zudem noch weitere Daten, bspw. in Form von Trainingsdaten für die Texterkennung, zu erwarten.

Um die Organisation der Dateien auf dem Server übersichtlich zu halten, empfiehlt es sich grundsätzlich für jeden (Server-)Dienst ein separates Verzeichnis zu nutzen.
In diesem Beispiel wird daher zunächst mit dem Befehl mkdir /srv/stirling ein neues Verzeichnis für Stirling-PDF erstellt und mittels cd /srv/stirling/ dorthin gewechselt.
Dort wird dann mit Hilfe eines Text-Editors die Konfigurationsdatei angelegt. Bei der Verwendung von nano lautet der Befehl somit nano docker-compose.yml:

01_Verzeichnis_anlegen.png

Die Konfigurationsdatei wird mit Daten nach diesem Schema erstellt:

version: '3.3'
services:
  stirling-pdf:
    image: frooodle/s-pdf:latest
    ports:
      - '8080:8080'
    volumes:
      - /srv/stirling/trainingData:/usr/share/tesseract-ocr/4.00/tessdata #Required for extra OCR languages
      - /srv/stirling/extraConfigs:/configs
      - /srv/stirling/customFiles:/customFiles/
    environment:
      - DOCKER_ENABLE_SECURITY=false
    restart: always

Unter ports wird definiert, über welchen Port (links anzugeben) die Anwendung, die im Container unter dem rechts angegebenen Port läuft, später von außen zu erreichen ist. Der Eintrag :8080 darf nicht verändert werden.
Soll Stirling-PDF später unter dem üblichen HTTP-Port 80 erreichbar sein, müsste der Eintrag auf '80:8080' geändert werden.
Bei volumes muss der Pfad angepasst werden, wenn nicht wie in diesem Beispiel /srv/stirling verwendet wird.

Mit der Tastenkombination STRG und X kann der Editor nano verlassen und die Datei nach Rückfrage gespeichert werden:

02_Konfiguration_anlegen.png

Die Definition des Docker-Containers ist damit abgeschlossen.

Installation von Docker und Docker-Compose

Auf einem frisch aufgesetzten Linux-Betriebssystem (wie hier Debian 12.5 Bookworm) ist in der Regel außer SSH kein weiterer Dienst - und somit auch kein Docker - verfügbar.

Daher gilt es zunächst Docker ("Betreiber des Containers") und Docker-Compose ("Zusammenbauer des Containers") in Betrieb zu nehmen.

Dafür werden als erstes die Paketquellen mittels apt update aktualisiert und ggf. Updates per apt upgrade (in diesem Beispiel nicht erforderlich, weil alle Pakete aktuell sind) eingespielt.
Im Anschluss daran werden Docker und Docker-Compose durch den Befehl apt install docker.io docker-compose gemeinsam installiert:

03a_Docker_installieren.png

Nach der Bestätigung mit der Taste J (oder Y, wenn keine dt. Lokalisation vorliegt) ...

03b_Docker_installieren.png

... werden die Pakete heruntergeladen, entpackt ...

03c_Docker_Installation.png

... und eingerichtet:

03d_Docker_installiert.png

Docker und Docker-Compose sind jetzt betriebsbereit.

Docker-Container erstellen

In dem Verzeichnis, in dem auch die docker-compose.yml liegt, wird der Befehl docker-compose up -d abgesetzt:

04a_Container_erstellen.png

Daraufhin werden die benötigten Daten angefordert ...

04b_Container_Download.png

... ausgepackt ...

04c_Container_auspacken.png

... sowie der Container erstellt und in Betrieb genommen (Meldung done):

04d_Container_erstellt.png

Ab jetzt ist Stirling-PDF verfügbar.
(In diesem Beispiel via http://IP-Adresse:8080)

Sprachpakete hinzufügen

In der Grundinstallation verfügt Stirling-PDF nur über das englischsprachige Paket für die Texterkennung.

Um bspw. deutschsprachige Texte verarbeiten zu können, bedarf es somit weiterer Sprachpakete.

Die optionalen Sprachpakete befinden sich unterhalb des Installationsverzeichnisses (hier /srv/stirling) im Verzeichnis trainingData.
Daher wird zunächst in dieses Verzeichnis gewechselt, das nach der Installation noch leer ist:

05a_Sprachdateien_Verzeichnis.png

Auf der Übersichtsseite aller verfügbaren Sprachpakete wird die URL des zu installierenden Paketes (in diesem Beispiel deutsch) ermittelt und kopiert:

05b_Sprachdateien_Links.png

Im Verzeichnis der Sprachpakete kann die gewünschte Datei dann mittels wget URL empfangen werden.
Für das Beispiel lautet der gesamte Befehl somit wget https://github.com/tesseract-ocr/tessdata_fast/blob/main/deu.traineddata.

05c_Sprachdateien_Link_laden.png

Nach dem Download enthält das Verzeichnis trainingData die entsprechende Sprachdatei:

05d_Sprachdateien_geladen.png

Obwohl die Datei jetzt vorhanden ist, weiß die Anwendung (Stirling-PDF) noch nichts von ihr.
Hierfür muss abschließend der Container neu gestartet werden.
Im ersten Schritt wird die laufende Anwendung per docker-compose down heruntergefahren und im zweiten Schritt durch docker-compose up -d wieder gestartet.

05e_Container_Neustart.png

Das zusätzliche Sprachpaket steht Stirling-PDF ab sofort zur Verfügung.