[Eisfair] languagetool-Server auf eis
Marcus Röckrath
marcus.roeckrath at gmx.de
Mo Mär 16 19:38:49 CET 2026
Hallo,
in der aktuellen c't (6/26) ist auf den Seiten 138ff beschrieben, wie man
die Rechtschreib- und Grammatikprüfung in LanguageTool (languagetool.org) in
LibreOffice einbindet. LanguageTool kann auch auch in andere Software
eingebunden werden, was man auf languagetool.org nachlesen kann.
Üblicherweise läft die Prüfung über eine API auf languagetool.org, d. h. der
zu prüfende Text geht an eine externe Instanz.
Wenn man das nicht möchte, kann man die kostenfreie Variante auch als
lokalen Dienst betreiben. Der c't-Artiekl beschreibt hier nur die Variante
als Docker-Image, die manuelle Einrichtung des Server sei "deutlich
komplexer".
Das "Komplexe" wollte ich mal ausprobieren und es war eigentlich nicht
wirklich komplex.
Achtung: Es wird hier kein eisfair-Paket geben, weil der Datenumfang die
Größe eines eisfair-Paketes sprengt - man muss mindestens 2 GB an Archiven
herunterladen.
Daher will ich hier fürs Erste mal ein Installationsanleitung machen, die
nach Diskussion auch zu einem HowTo werden kann.
1. Folgende eisfair-Pakete brauchen wir vorab:
eisman install java-headless
eisman install python313-fasttext
2. Wir legen eines Systemuser languagetool an:
/var/install/bin/add-user -r -d languagetool '*' '' nogroup 'LanguageTool'
'/var/lib/empty' '/sbin/nologin'
3. Nun laden wir 4 Archive herunter:
wget https://languagetool.org/download/LanguageTool-stable.zip
wget https://languagetool.org/download/fasttext.tar.gz
wget https://languagetool.org/download/ngram-data/ngrams-de-20150819.zip
Das sind rund 2 GB.
Wer auch für Englisch eine Prüfung haben möchte, lädt noch
wget https://languagetool.org/download/ngram-data/ngrams-en-20150817.zip
herunter - das hat alleine über 8 GB!
4. Installation (auf E64; bei E1 Pfade anpassen /usr/lib64 -> /usr/lib), ich
habe es zunächst nur auf E64 installiert und getestet.
cd /usr/lib64/java
unzip /pfad/zu/LanguageTool-stable.zip
Das dabei entstehende Unterverzeichnis bennen wir um:
mv LanguageTool-6.6 languagetool
Auspacken des fasttext-Archives:
cd languagetool
tar -xvzf /pfad/zu/fasttext.tar.gz
Das fasttext-Binary im fasttext-Unterverzeichnis kann/sollte gelöscht
werden, das kommt mit dem vorab installierten python313-fasttext-Paket aufs
System.
Nun kommen das oder die ngrams-Archive dran; deren Installation optional
ist, jedoch die Sprachprüfung deutlich erweitert/verbessert:
mkdir ngrams
cd ngrams
unzip /pfad/zu/ngrams-de-20150819.zip
unzip /pfad/zu/ngrams-en-20150817.zip
Danach muss für jede installierte Sprache ein Unterverzeichnis vorhanden
sein, also z. B. de und en.
cd /usr/lib64/java/languagetool
Nun brauchen wir noch eine Konfigurationsdatei languagetool.cfg mit
folgendem Inhalt:
----------------------------------------------------
languageModel=/usr/lib64/java/languagetool/ngrams
fasttextModel=/usr/lib64/java/languagetool/fasttext/lid.176.bin
fasttextBinary=/usr/bin/fasttext
----------------------------------------------------
Nun übergeben wir den gesamten Verzeichnisbaum dem User languagetool:
cd /usr/lib64/java
chown -R languagetool:nogroup languagetool
Nun fehlt nur noch die systemd-Servicedatei languagetool.service, die wir in
/etc/systemd/system anlegen - die ExecStart-Zeile ist hier umbrochen):.
----------------------------------------------------
[Unit]
Description=LanguageTool
After=syslog.target
After=network.target
[Service]
Type=simple
User=languagetool
Group=nogroup
WorkingDirectory=/usr/lib64/java/languagetool
ExecStart=/usr/bin/java -cp /usr/lib64/java/languagetool/languagetool-
server.jar org.languagetool.server.HTTPServer --config languagetool.cfg --
port 8081 --allow-origin "*" --public
Restart=always
[Install]
WantedBy=multi-user.target
----------------------------------------------------
Dienst starten:
service start languagetool.service
Dienst stoppen:
service stop languagetool.service
Dienst automatisch beim Boot starten:
service enable languagetool.service
Die URL zu Einbindung des Languagetool-Servers in LibreOffice oder anderen
Programmen lautet:
http://<ip_des_servers>:8081/v2
Im Browser kann man mit der URL http://<ip_des_servers>/v2/languages prüfen,
ob der Languagetool-Service läft, denn er erscheint eine Liste der
unterstützten Sprachen.
Vielleicht hat ja jemand Lust die Anleitung nachzuvollziehen und zu
kommentieren, vielleicht ist mir in der Erinnerung auch schon etwas
"verloren" gegangen.
--
Gruß Marcus
[eisfair-Team]
Mehr Informationen über die Mailingliste Eisfair