Gettinga self hosting language tool to work

Hello

Has anybody got a self hosting language tool to work? I have a url setup https://corrector.domain.ca/v2 for the langtool

I’ve gone into the coolwsd.xml and have edited like they have mentioned in their doc

but it just does nothing and I see no calls out in the network console log, no logs to troubleshoot, nothing in the UI I can see. journaclt has nothing. Not sure where to go

any ideas?

hi @gstlouis

It’s been long time since we see you back into collabora forum. Welcome back :slight_smile:

So about your issue

This is a common struggle with the Collabora + self-hosted LanguageTool setup. Here are some things to check and try:

Verify the LanguageTool API is actually responding — hit it directly from the Collabora server to rule out network/DNS issues:

curl -X POST "https://corrector.domain.ca/v2/check" \
  -d "language=en-US&text=This is a tset."

If that doesn’t return JSON with a match for “tset,” the problem is on the LanguageTool side before Collabora is even involved.

Check your coolwsd.xml config carefully. The setting should look something like:

<languagetool>
    <base_url type="string" desc="..." default="">https://corrector.domain.ca/v2</base_url>
    <enabled type="bool" desc="..." default="false">true</enabled>
</languagetool>

A few things people commonly miss: make sure enabled is explicitly set to true, and make sure you’re editing the active coolwsd.xml (not a default/template copy that gets overridden).

Restart the service after changes — Collabora doesn’t pick up XML config changes on the fly:

systemctl restart coolwsd

SSL/TLS issues are a frequent silent killer here. If your LanguageTool instance uses a self-signed cert or a Let’s Encrypt cert that the Collabora container doesn’t trust, the request will fail silently. Check whether Collabora is running in Docker — if so, the container needs to trust the CA. You can test by exec-ing into the container and running the curl command above from inside it.

CORS could also be the issue if the check is supposed to happen client-side (browser → LanguageTool). Your LanguageTool instance would need to allow the origin of your Collabora/Nextcloud domain. Though in most configurations, the call goes server-side (COOL backend → LanguageTool), so this may not apply.

Bump up logging to see if Collabora is even attempting the call:

<logging>
    <level type="string" desc="..." default="warning">trace</level>
</logging>

Then restart and check the logs again. At trace level you should see HTTP requests being made (or errors about why they aren’t).

Other things worth confirming: which version of Collabora/CODE are you running? LanguageTool integration was added in a specific version and has had some bugs in earlier releases. Also, are you accessing it through Nextcloud or directly? If through Nextcloud, sometimes the Nextcloud COOL integration has its own config that can override or conflict.

The “no calls in network console” part is the biggest clue — it suggests the feature either isn’t enabled from Collabora’s perspective, or the config isn’t being read. I’d start with the trace logging and verifying the correct config file is being loaded.