Selfhosted languagetool funktioniert auf Raspberry Pi, aber nicht in LibreOffice oder Firefox

user3402

Ensign
Registriert
Aug. 2016
Beiträge
142
Ich habe languagetool nach dieser Anleitung auf einem Raspberry Pi 4 B installiert.

Auf dem Raspberry selbst scheint das Programm auch zu funktionieren.

lang_.png


Allerdings funktioniert die Anbindung weder in LibreOffice noch in Firefox per LanguageTool-Addon.

In LibreOffice bekomme ich diese Fehlermeldung:

lo_.png


In Firefox:

fi_.png


Wo liegt hier der Fehler?
 
Ich rate mal aufs Blaue: Du musst auch den Port 8081 mitgeben. Oder den Server auf Port 80 laufen lassen (schlechte Idee)
 
ist port 8081 vom client erreichbar?
lauscht der server auf localhost, 192.168.178.43 oder auf 0.0.0.0?

zeig doch mal sudo netstat -tulpn auf dem pi
und curl http://192.168.178.43:8081/v2/check und curl http://192.168.178.43/v2/check auf dem client

und ist sonst noch was auf dem Pi? firewall eventuell?

Ergänzung ()

Metalveteran schrieb:
Oder den Server auf Port 80 laufen lassen (schlechte Idee)
why? wenn es der default ist, ist das doch ganz hervorragend
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: konkretor
Port 80 ist halt unverschlüsselt... daher halte ich es für eine schlechte Idee, einen Server darauf laufen zu lassen. Lässt sich mit redirects zwar lösen/umgehen, aber das zieht ja noch weite Konfiguration mit sich mit. 🤷‍♂️
 
Metalveteran schrieb:
Port 80 ist halt unverschlüsselt... daher halte ich es für eine schlechte Idee, einen Server darauf laufen zu lassen.
das stimmt so nicht ganz. http ist unverschlüsselt. egal auf welchem port. Gerade ist es in jedem Fall ohne SSL konfiguriert, was im heimnetz auch OK sein sollte.
 
Den Port anzugeben hat leider nicht geholfen.

Screenshot 2026-08-02 152420.png


Screenshot 2026-08-02 152436.png


ubuntu@ubuntu:~$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN 792/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 792/systemd-resolve
tcp6 0 0 :::8081 :::* LISTEN 1562/java
tcp6 0 0 :::22 :::* LISTEN 1/systemd
udp 0 0 127.0.0.54:53 0.0.0.0:* 792/systemd-resolve
udp 0 0 127.0.0.53:53 0.0.0.0:* 792/systemd-resolve
udp 0 0 192.168.178.43:68 0.0.0.0:* 1204/systemd-networ
udp 0 0 127.0.0.1:323 0.0.0.0:* 1393/chronyd
udp6 0 0 ::1:323 :::* 1393/chronyd

ubuntu@ubuntu:~$ curl http://192.168.178.43:8081/v2/check/
Error: Unsupported action: 'check/'. Please see https://languagetool.org/http-api/swagger-ui/#/default

ubuntu@ubuntu:~$ curl http://192.168.178.43/v2/check/
curl: (7) Failed to connect to 192.168.178.43 port 80 after 0 ms: Could not connect to server


Ich möchte den Raspberry auf jeden Fall nur innerhalb meines Netzwerks betreiben.
 
user3402 schrieb:
ubuntu@ubuntu:~$ curl http://192.168.178.43:8081/v2/check/
Error: Unsupported action: 'check/'. Please see https://languagetool.org/http-api/swagger-ui/#/default
das war vom client aus / (welcher davon ist ubuntu@ubuntu)? von da aus sieht es ja erreichbar aus..

sehe gerade, im screenshot oben hattest du schon den kompletten string. gibs mal so beim client ein und schau was curl dann sagt
 
LanguageServer erwartet an der Stelle POST, curl liefert aber per default GET.

Probier mal:
Code:
curl -X POST --data-urlencode "text=Das ist ein Beispielsatz." http://192.168.178.43:8081/v2/check
 
  • Gefällt mir
Reaktionen: madmax2010
Stehe gerade auf dem Schlauch. Wo gebe ich die Befehle für den Client (Windows) ein? @madmax2010

Metalveteran schrieb:
Probier mal:
Code:
curl -X POST --data-urlencode "text=Das ist ein Beispielsatz." http://192.168.178.43:8081/v2/check
Der Befehl verlangt einen language-Parameter, von dem ich nicht weiß wie/wohin ich ihn platzieren soll.
ubuntu@ubuntu:~$ curl -X POST --data-urlencode "text=Das ist ein Beispielsatz." http://192.168.178.43:8081/v2/check
Error: Missing 'language' parameter, e.g. 'language=en-US' for American English or 'language=fr' for French
 
Hinter dem ersten --data-urlencode setzt Du einen zweiten --data-urlencode mit dem Inhalt (in Anführungszeichen) "language=de-DE", das sollte klappen.

Irritiert mich aber etwas, dass Du das manuell angeben musst... vielleicht mal die Server-Config prüfen/posten? 🤷‍♂️ 🤷‍♂️

Hier der komplette Befehl, auch wenn ich denke, dass Du da mehr als nur eine Baustelle hast:

Code:
curl -X POST \
  --data-urlencode "text=Das ist ein Beispielsatz." \
  --data-urlencode "language=de-DE" \
  http://192.168.178.43:8081/v2/check
 
Firewall aktive auf dem Rasp? Wenn ja, muss das ggf. freigegeben werden.
Ansonsten, wurde der Dienst überhaupt außerhalb des localhost Scopes gestartet? Bei den meisten Webdiensten kann man das mitgeben.
 
Metalveteran schrieb:
Hier der komplette Befehl
Danke.

ubuntu@ubuntu:~$ curl -X POST \
--data-urlencode "text=Das ist ein Beispielsatz." \
--data-urlencode "language=de-DE" \
http://192.168.178.43:8081/v2/check
Error: Internal Error: java.lang.NoClassDefFoundError: Could not initialize class dumonts.hunspell.bindings.HunspellLibrary, detected: de-DE

:freak:

Mojo1987 schrieb:
Firewall aktive auf dem Rasp? Wenn ja, muss das ggf. freigegeben werden.
Ansonsten, wurde der Dienst überhaupt außerhalb des localhost Scopes gestartet? Bei den meisten Webdiensten kann man das mitgeben.

LanguageTool habe ich auf einem "jungfräulichen" Ubuntu-Server installiert, also eine Firewall oder ähnliches habe ich nicht installiert. Den Rest verstehe ich leider nicht.
 
Tjoa, dann halt mal hunspell auf dem Server installieren :) Dein Server "kann" kein deutsch (für diesen Fall), oder Du gibst was simples wie "Example Text" mit und stellst auf en-US
 
Hmm, das hatte ich eigentlich schon gemacht, als ich das Ding aufgesetzt habe.

ubuntu@ubuntu:~$ sudo apt install hunspell hunspell-de-dsudo apt install hunspell hunspell-de-de hunspell-en-us
hunspell is already the newest version (1.7.2+really1.7.2-11).
hunspell-de-de is already the newest version (20161207-16).
hunspell-en-us is already the newest version (1:2020.12.07-4build1).
Summary:
Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 2
 
...ist das ein Docker-Container auf dem Server?

Ansonsten gib mal "en-US" mit, geht ja -erstmal- nur um die Erreichbarkeit
 
Nein, kein Docker.

ubuntu@ubuntu:~$ curl -X POST \
--data-urlencode "text=This is an example." \
--data-urlencode "language=en-US" \
http://192.168.178.43:8081/v2/check
{"software":{"name":"LanguageTool","version":"6.6","buildDate":"2025-03-27 20:50:25 +0100","apiVersion":1,"premium":false,"premiumHint":"You might be missing errors only the Premium version can find. Contact us at support<at>languagetoolplus.com.","status":""},"warnings":{"incompleteResults":false},"language":{"name":"English (US)","code":"en-US","detectedLanguage":{"name":"English (US)","code":"en-US","confidence":0.9999936,"source":"+fallback"}},"matches":[],"sentenceRanges":[[0,19]],"extendedSentenceRanges":[{"from":0,"to":19,"detectedLanguages":[{"language":"en","rate":1.0}]}]}
 
Dann antwortet der Server auch.

Installier nochmal zusätzlich "libhunspell" und die entsprechende Sprache, offenbar deutsch :)
 
Also libhunspell-1.7-0 habe ich installiert, mir ist aber unklar, wie oder wo ich dafür spezifische Sprachpakete finde.
 
Egal, vergiss meinen vorherigen Post :) libhunspell sollte einfach die installierten hunspell-Sprachen nutzen

Gib den curl-Befehl nochmal mit de-DE ein
 
Zurück
Oben