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
- Installation von Docker und Docker-Compose
- Docker-Container erstellen
- Sprachpakete hinzufügen
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
:
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:
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:
Nach der Bestätigung mit der Taste J
(oder Y
, wenn keine dt. Lokalisation vorliegt) ...
... werden die Pakete heruntergeladen, entpackt ...
... und eingerichtet:
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:
Daraufhin werden die benötigten Daten angefordert ...
... ausgepackt ...
... sowie der Container erstellt und in Betrieb genommen (Meldung done):
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:
Auf der Übersichtsseite aller verfügbaren Sprachpakete wird die URL des zu installierenden Paketes (in diesem Beispiel deutsch) ermittelt und kopiert:
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
.
Nach dem Download enthält das Verzeichnis trainingData die entsprechende Sprachdatei:
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.
Das zusätzliche Sprachpaket steht Stirling-PDF ab sofort zur Verfügung.