LanguageTool — a self-hosted grammar, style and spell-checking server for 25+ languages, with browser extensions and editor integrations. Deployed as a single stateless host-networked Nomad service.
Needs nomad-pack on PATH. The script only adds the nomploy registry and runs this pack.
Source ↗ Project ↗ ★ 15.1k ⚑ Report an issue
Save as values.hcl, edit, then run:
# The name of the Nomad job.
job_name = "languagetool"
# The Nomad namespace to deploy into.
namespace = "default"
# The datacenters to deploy to.
datacenters = ["*"]
# The LanguageTool container image. Pin a tag in production.
image = "erikvl87/languagetool:latest"
# Host port for the LanguageTool HTTP API. Fixed at 8010 inside the image.
port = 8010
# JVM initial heap size (Java_Xms).
java_xms = "256m"
# JVM maximum heap size (Java_Xmx). Keep this below the task memory limit.
java_xmx = "512m"
# Placement constraints. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []
# The task resources.
resources = {
cpu = 500
memory = 768
}
| Name | Type | Default | Description |
|---|---|---|---|
| job_name | string | "languagetool" | The name of the Nomad job. |
| namespace | string | "default" | The Nomad namespace to deploy into. |
| datacenters | list | ["*"] | The datacenters to deploy to. |
| image | string | "erikvl87/languagetool:latest" | The LanguageTool container image. Pin a tag in production. |
| port | number | 8010 | Host port for the LanguageTool HTTP API. Fixed at 8010 inside the image. |
| java_xms | string | "256m" | JVM initial heap size (Java_Xms). |
| java_xmx | string | "512m" | JVM maximum heap size (Java_Xmx). Keep this below the task memory limit. |
| constraints | list | [] | Placement constraints. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true". |
| resources | object | {
cpu = 500
memory = 768
} | The task resources. |
No variables match.
LanguageTool — a self-hosted grammar, style and spell checker for 25+ languages. Run your own API endpoint and point the browser extensions, mobile keyboards, and editor integrations (LibreOffice, Obsidian, Joplin, Nextcloud, …) at it, so your text never leaves your server.
Single stateless host-networked Nomad service (no volume). Exposes the LanguageTool HTTP API on /v2/check.
nomad-pack registry add nomploy https://github.com/Nomploy/nomad-packs
nomad-pack run languagetool --registry=nomploy
| Variable | Default | Description |
|---|---|---|
port |
8010 |
HTTP API port. Fixed at 8010 inside the image. |
java_xms |
256m |
JVM initial heap size (Java_Xms). |
java_xmx |
512m |
JVM maximum heap size (Java_Xmx). Keep below the task memory limit. |
image |
erikvl87/languagetool:latest |
Container image. Pin a tag in production. |
resources |
{ cpu = 500, memory = 768 } |
Task resources. The JVM needs headroom above java_xmx. |
Better suggestions (optional): mount an n-gram dataset at
/ngramsand setlangtool_languageModel=/ngramsto catch confused words (there/their). This needs several GB of disk — add the volume and env to the task if you want it. The base service is stateless and needs no storage.