[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