Tuto LanguageTool Self Hosted
  • 2 juin 2025
  • ComputaSYS
  • 0


I. Présentation

Comment installer un serveur LanguageTool sur un NAS Synology ? Si vous souhaitez auto-héberger votre propre correcteur d’orthographe en local, ce tutoriel devrait vous intéresser !

Dans un précédent article, nous avons évoqué LanguageTool, un correcteur d’orthographe open source et gratuit, qu’il est possible d’utiliser en tant que service ou d’auto-héberger. Ce même article évoque notamment le déploiement de l’outil dans un conteneur Docker, sur une machine Linux ou Windows. Cette fois-ci, nous allons aborder le déploiement de LanguageTool sur un NAS Synology. Pour en savoir plus sur les fonctionnalités de LanguageTool, consultez cet article :

Attention, LanguageTool est une application relativement gourmande, notamment si plusieurs utilisateurs s’appuient sur une même installation. Concrètement, LanguageTool peut consommer constamment 1 Go de RAM sur votre NAS : veillez donc à disposer d’un modèle assez costaud. Évitez les modèles livrés avec 2 Go de RAM, par exemple. Un modèle comme le DS923+ ou le DS925+ pourra convenir.

Pour mettre en œuvre cette configuration, il y a quelques prérequis à respecter :

Un NAS Synology compatible avec Docker (Container Manager)

Un certificat TLS pour les connexions sécurisées HTTPS (Let’s Encrypt avec le DDNS Synology est suffisant)

Un nom de domaine pour l’application LanguageTool (le DDNS Synology est suffisant)

La connexion en HTTPS est facultative, mais elle est recommandée pour un usage en production. Il est aussi recommandé d’avoir une bonne connaissance de DSM puisqu’il conviendra de manipuler Container Manager et la fonctionnalité de reverse proxy. Le serveur LanguageTool sera accessible via l’adresse suivante : https://languagetool.itc-14.synology.me:5001.

II. Configurer le reverse proxy DSM pour LanguageTool

Nous allons commencer par configurer le proxy inversé de DSM pour publier LanguageTool sur le port 5001. Vous pouvez choisir un autre port. Pour ma part, le nom de domaine DDNS Synology.me a déjà été déclaré et le certificat Let’s Encrypt pour *.itc-14.synology.me a déjà été obtenu. Le certificat wildcard (*) permet de couvrir tous les sous-domaines, ce qui va, de facto, englober le sous-domaine pour LanguageTool.

Pour éviter de me répéter à ce sujet, suivez ces tutoriels si nécessaire :

Connectez-vous à l’interface de DSM, ouvrez le “Panneau de configuration” et accédez à la section “Portail de connexion”. Ici, cliquez sur l’onglet “Avancé” puis sur le bouton nommé “Proxy inversé”. Créez une nouvelle entrée avec le bouton “Créer” puis déclarez votre application :

Nom du proxy inversé : languagetool

Source

Protocole : HTTPS

Nom d’hôte : le nom de domaine de l’application LanguageTool, ici languagetool.itc-14.synology.me

Port : port sur lequel vous souhaitez publier l’application. De préférence, choisissez autre chose que 5001 (car c’est le port par défaut de DSM en HTTPS)

Destination

Protocole : HTTP

Nom d’hôte : localhost, car notre conteneur LanguageTool est en local sur le NAS

Port : 8010, car le conteneur sera accessible sur ce port. S’il est déjà pris par un autre service, utilisez un autre port (vous adapterez la configuration du conteneur en conséquence).

Cliquez ensuite sur l’onglet “En-tête personnalisé”, puis cliquez sur le bouton “Créer” et choisissez “WebSocket”. Ceci permet d’avoir les bons en-têtes HTTP, sinon LanguageTool ne fonctionnera pas.

Validez. Voilà, vous venez d’accomplir la première étape importante de la configuration.

III. Préparer le conteneur LanguageTool

Avant de créer le conteneur en lui-même, nous allons préparer l’arborescence de dossiers qui lui sera associée. Dans le répertoire docker, créez un dossier nommé languagetool et à l’intérieur, créez un seul et unique sous-dossier : ngrams. Ce répertoire va nous servir à stocker les fichiers de métadonnées de LanguageTool, notamment pour le français.

Vous devez accéder à cette page pour télécharger l’archive ZIP du ngrams-fr (il est possible d’en récupérer plusieurs, pour supporter plusieurs langues). Ensuite, envoyez l’archive ZIP dans le répertoire ngrams de votre NAS. Puis :

1 – Effectuez un clic droit sur le fichier ZIP, et sous “Extraire”, cliquez sur “Extraire ici”.

2 – Vous obtenez alors l’arborescence suivante : /docker/languagetool/ngrams/fr.

3 – Supprimez l’archive ZIP, car elle n’a plus d’intérêt.

Désormais, lancez Container Manager puis créez un nouveau projet nommé languagetool. Ce projet contiendra un seul et unique conteneur. Spécifiez le répertoire /docker/languagetool créé précédemment et indiquez ce code pour Docker Compose :

services:
languagetool:
image: erikvl87/languagetool
container_name: languagetool
restart: unless-stopped
volumes:
– ‘/volume1/docker/languagetool/ngrams:/ngrams’
environment:
– Java_Xms=512m
– Java_Xmx=1g
– langtool_languageModel=/ngrams
ports:
– ‘8010:8010’

Ce fichier Docker Compose définit un service nommé languagetool basé sur l’image erikvl87/languagetool. Il s’agit d’une image proposée par la communauté LanguageTool et référencée sur le dépôt officiel de la solution : LanguageTool ne propose pas d’image Docker officielle.

Voici quelques précisions sur la configuration :

container_name: languagetool – nom personnalisé donné au conteneur Docker (au lieu d’un nom généré automatiquement).

restart: unless-stopped – redémarre automatiquement le conteneur, sauf s’il est arrêté manuellement.

volumes:

‘/volume1/docker/languagetool/ngrams:/ngrams’ – monte le dossier local /volume1/docker/languagetool/ngrams dans le conteneur à l’emplacement /ngrams, utile pour les modèles de langage (fichiers déposés précédemment).

Variables d’environnement pour configurer Java et LanguageTool :

Java_Xms=512m : alloue 512 Mo de mémoire RAM minimum à la JVM.

Java_Xmx=1g : alloue 1 Go de mémoire RAM maximum à la JVM. Si votre application est lente et que vous disposez de ressources confortables sur votre NAS, il sera nécessaire d’augmenter cette valeur.

langtool_languageModel=/ngrams : indique à LanguageTool où trouver les données de langage (dans /ngrams).

Redirection de port entre l’hôte et le conteneur :

‘8010:8010’ : le port 8010 de l’hôte est lié au port 8010 du conteneur (accès à l’API HTTP de LanguageTool).

Poursuivez et lancez la création du projet. Container Manager va télécharger l’image et créer le conteneur !

IV. Utiliser l’instance Self-Hosted de LanguageTool

Notre conteneur LanguageTool est en cours d’exécution. D’un autre côté, nous avons un ordinateur équipé de l’application LanguageTool ou de l’extension LanguageTool dans un navigateur. Néanmoins, par défaut, ce n’est pas notre instance auto-hébergée qui sera sollicitée… Donc, il est nécessaire de configurer l’extension pour spécifier notre serveur.

Note : si vous disposez d’un compte LanguageTool, y compris un compte premium, vous devez spécifier le serveur personnalisé avant de vous connecter.

Cliquez sur l’extension, puis sur l’icône représentant une roue crantée.

Descendez dans la page dans le but d’afficher les paramètres avancés. Ici, cochez l’option “Autre serveur – le serveur LanguageTool doit fonctionner ici”, puis spécifiez l’adresse complète de votre serveur. Pensez à préciser /v2 à la fin de l’URL. Sauvegardez. Pour travailler uniquement sur un réseau local, ou à des fins de tests, nous pourrions spécifier une URL telle que : http://192.168.1.148:8010/v2.

Ce qui donne :

Ensuite, pour voir si cela fonctionne, le plus simple, c’est d’utiliser l’éditeur intégré à l’extension. Cliquez de nouveau sur l’icône de l’extension, puis sur “Ouvrir l’éditeur”. Saisissez du texte et effectuez volontairement une faute… Cela va déclencher la vérification de l’orthographe et de la grammaire et mettre en évidence votre erreur.

Si votre installation fonctionne bien, vous devriez avoir la correction suggérée par LanguageTool (comme sur l’exemple ci-dessous). Sinon, il y aura un message d’erreur visible à l’écran. Par exemple, cette erreur peut indiquer que le serveur est introuvable.

Désormais, vous n’avez plus qu’à profiter de votre instance LanguageTool en local. Vous pouvez aussi vérifier le bon fonctionnement de votre instance avec une requête envoyée sur l’API de LanguageTool via l’outil curl. Sur Windows, vous pouvez l’utiliser nativement depuis l’Invite de commande :

curl –data “language=fr-FR&text=Ceci est un texte avec un fuate.” https://languagetool.itc-14.synology.me:5001/v2/check

V. Conclusion

Votre serveur LanguageTool est prêt à l’emploi ! Vous disposez d’une solution efficace, gratuite et respectueuse de la confidentialité des données pour corriger vos fautes d’orthographe et de grammaire. Le déploiement n’est pas difficile en soi, mais attention au matériel que vous utilisez : si les ressources ne sont pas suffisantes, l’expérience ne sera pas bonne et vous risquez de ralentir tout votre NAS.

Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *