Sehr viele nutzen und lieben LanguageTool zum Verfassen von Texten am PC. So auch ich.
Da man LanguageTool auch selber hosten kann, sollte man von dieser Möglichkeit, wenn möglich, Gebrauch machen.
Als Systemvoraussetzung gilt:
Debian 10/11 oder Ubuntu Server 22.04 LTS
4 GB RAM sollten es schon sein.
2 CPU Kerne sollten reichen (ggf. erhöhen).
Als HDD/SSD sollten 32 GB veranschlagt werden.
Die komplette Installation umfasst ohne OS ca. 18 GB.
Im Prinzip erfüllt der Raspberry Pi ebenfalls die Anforderungen von LanguageTool. Ausreichend Speicherplatz lässt sich mit einer entsprechend großen Speicherkarte schaffen. Auch die Rechenkapazität eines Raspberry Pi 4 genügt vollkommen. Und der Raspberry Pi 4 lässt sich auch mit 64 Bit betreiben, den LanguageTool Server gibt es nur in einer 64-Bit-Version. Ausprobiert habe ich die Installation aber nicht.
Los gehts
Am Terminal anmelden und folgende Kommandos eingeben
sudo apt install default-jre-headless unzip
sudo apt install hunspell hunspell-de-de hunspell-en-us
wget https://languagetool.org/download/LanguageTool-stable.zip
unzip LanguageTool-stable.zip
sudo mv LanguageTool-*.*/ /opt/LanguageTool
rm LanguageTool-stable.zip
Anschliessend werden die Ngram Dateien für Deutsch installiert (ca. 3,5 GB)
sudo mkdir /opt/LanguageTool/ngrams
wget https://languagetool.org/download/ngram-data/ngrams-de-20150819.zip
sudo unzip ngrams-de-20150819.zip -d /opt/LanguageTool/ngrams
rm ngrams-de-20150819.zip
Danach die Ngram Dateien für Englisch (ca. 8 GB)
wget https://languagetool.org/download/ngram-data/ngrams-en-20150817.zip
sudo unzip ngrams-en-20150817.zip -d /opt/LanguageTool/ngrams
rm ngrams-en-20150817.zip
Für einen ersten Test sollte man nun auf das Terminal in das Installationsverzeichnis unter /opt/LanguageTool wechseln. Das zweite Kommando startet dann die Server-Komponente von LanguageTool. Der Dienst lauscht auf Port 8081 auf Anfragen. Mit der Tastenkombination [Strg]+[C] beendet ihr den Dienst und kehrt wieder auf die Shell zurück.
cd /opt/LanguageTool
java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port 8081
Jetzt müssen die optional installierten N-Gramm-Daten integriert werden.
Man erstellt mit einem Editor wie Nano unterhalb des Ordners /opt/LanguageTool die Konfigurationsdatei languagetool.cfg. Als Inhalt fügt man die Ausgabe nach dem im folgenden Listing eingefügten Kommando cat languagetool.cfg ein. Mit der Tastenkombination [Strg]+[O] und [Eingabe] speichert ihr die Änderung des Editors ab, mit [Strg]+[x] geht es dann zurück auf die Shell.
sudo nano /opt/LanguageTool/languagetool.cfg
Ausgabe von
cat languagetool.cfg
in /opt/LanguageTool/languagetool.cfg eintragen
languageModel=/opt/LanguageTool/ngrams/
Damit der LanguageTool-Server jetzt automatisch mit dem Rechner hochfährt, legt ihr eine Unit für Systemd an. Dazu übertragt ihr den Inhalt aus dem folgenden Listing in die noch zu erstellende Datei /etc/systemd/system/languagetool.service.
Alle Pfade beziehen sich auf den bei der Installation gewählten Ordner /opt/LanguageTool. Habt ihr ein anderes Installationsziel gewählt, müsst ihr die Pfade selbstverständlich in der Unit-Datei anpassen.
[Unit]
Description=LanguageTool
After=syslog.target
After=network.target
[Service]
Type=simple
User=languagetool
Group=nogroup
WorkingDirectory=/opt/LanguageTool
ExecStart=/usr/bin/java -cp /opt/LanguageTool/languagetool-server.jar org.languagetool.server.HTTPServer --config languagetool.cfg --port 8081 --allow-origin "*" --public
Restart=always
#Environment=USER= HOME=/opt/LanguageTool
[Install]
WantedBy=multi-user.target
Damit LanguageTool nicht mit Root-Rechten oder mit den Rechten eures Benutzers laufen muss, legt ihr nun noch einen eigenen System-Benutzer mit dem Namen languagetool
an, ein Home-Verzeichnis braucht er nicht. Er muss sich auch nicht anmelden, daher wird auch kein Passwort gesetzt. Anschließend lasst ihr Systemd seine Konfiguration neu einlesen und aktiviert das Starten des LanguageTool-Servers. Danach ruft ihr den Dienst einmal von Hand auf und lässt euch zur Kontrolle den Status ausgeben. Der Dienst sollte sich mit active (running)
zurückmelden und auch die ersten Logeinträge ausgeben.
sudo adduser --system --no-create-home languagetool
sudo systemctl daemon-reload
sudo systemctl enable languagetool
sudo systemctl start languagetool
sudo systemctl status languagetool
Bild Statusanzeige einfügen
Danach läuft LanguageTool und es muss nur noch dem Browser bzw. dem Plugin mitgeteilt werden, dass von jetzt an auf euren Server zugegriffen werden soll. Also im Browser das Icon von LanguageTool anklicken und unten rechts auf das Zahnrad gehen.
Wichtig ist das hinter eurer URL noch ein /v2 angehängt werden muss
Wenn ihr nicht nur lokal aus eurem LAN auf den Server zugreifen wollt, muss der Server noch via Dyn DNS von aussen zugängig gemacht werden. Der Port 8081 muss dann auch im Router weitergeleitet werden.
Der beste Weg ist gleich einen Proxyserver zu benutzen. Die Beschaffung eines SSL Zertifikat wird ebenfalls damit erledigt.
Viel Spass mit eurer eigenen LanguageTool Instanz.
Quelle: https://languagetool.org/de/dev
"Man erstellt mit einem Editor wie Nano unterhalb des Ordners /opt/LanguageTool die Konfigurationsdatei languagetool.cfg. Als Inhalt fügt man die Ausgabe nach dem im folgenden Listing eingefügten Kommando cat languagetool.cfg ein. Mit der Tastenkombination [Strg]+[O] und [Eingabe] speichert ihr die Änderung des Editors ab, mit [Strg]+[x] geht es dann zurück auf die Shell."
Du erstellst eine leere Datei und willst dessen Inhalt einfügen?Ich glaube, da ist was durcheinander geraten. Du möchtest einfach
echo "languageModel=/opt/LanguageTool/ngrams/" |sudo tee -a /opt/LanguageTool/languagetool.cfg
ausführen.
ja natürlich
war etwas sperrig zu beschreiben
Danke für den Tipp. Hab’s ausprobiert und läuft (hinter einem Reversen Proxy) recht gut.
In der Konsole:
Jan 08 10:35:00 Tower systemd[1]: Started LanguageTool.Jan 08 10:35:00 Tower java[5126]: 2023-01-08 10:35:00.977 +0100 INFO org.languagetool.server.DatabaseAccessOpenSource Not setting up database access, dbDriver is not configured Jan 08 10:35:00 Tower java[5126]: 2023-01-08 09:35:00 +0000 WARNING: running in HTTP mode, consider running LanguageTool behind a reverse proxy that takes care of encryption (HTTPS) Jan 08 10:35:00 Tower java[5126]: 2023-01-08 09:35:00 +0000 WARNING: running in public mode, LanguageTool API can be accessed without restrictions! Jan 08 10:35:00 Tower java[5126]: 2023-01-08 09:35:00 +0000 Setting up thread pool with 10 threads Jan 08 10:35:01 Tower java[5126]: WARN: no common words file defined for Japanese - this language might not be correctly auto-detected Jan 08 10:35:01 Tower java[5126]: WARN: no common words file defined for Khmer - this language might not be correctly auto-detected Jan 08 10:35:02 Tower java[5126]: 2023-01-08 09:35:02 +0000 Starting LanguageTool 6.0 (build date: 2022-12-29 12:13:11 +0000, e44dbb0) server on http://localhost:8081...
Jan 08 10:35:02 Tower java[5126]: 2023-01-08 09:35:02 +0000 Server started
Im Localhost: Error: Missing arguments for LanguageTool API. Please see https://languagetool.org/http-api/swagger-ui/#/default
Funktioniert wohl doch nicht so, wie beschrieben. Aber wer nicht versucht, der wird's nie wissen. Trotzdem Danke, der Text wurde sehr gut aus dem englichen in's deutsche übersetzt. Grüße von der Insel
Vielen Dank für die ausführliche Anleitung. Eine Frage: Wenn man Languagetool selbst hostet, sind dann auch alle Premiumfunktionen inbegriffen, oder bekommt man die ausschließlich über den Webdienst?