On installe python et venv
sudo apt update && sudo apt upgrade && sudo apt install python3 python3-venv python3-pip apache2
On crée un user dédié
sudo useradd --system --no-create-home --user-group libretranslate sudo mkdir -p /home/libretranslate sudo chown libretranslate:libretranslate /home/libretranslate
On se rend dans le dossier
cd /home/libretranslate
sudo systemctl stop libretranslate.service
En tant que libretranslate on active venv, on installe pip et libretranslate :
sudo -u libretranslate bash python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install libretranslate deactivate
On peut reactiver venv après un deactivate en se rendant de nouveau dans le dossier puis avec la commande source :
cd /home/libretranslate source venv/bin/activate
On peut effectuer un premier lancement avec quelques langues :
libretranslate --update-models --load-only fr,en
On quitte l'user :
exit
On crée un service :
sudo nano /etc/systemd/system/libretranslate.service
[Unit] Description=LibreTranslate Documentation=https://github.com/LibreTranslate/LibreTranslate Wants=network.target After=network.target [Service] User=libretranslate Group=libretranslate Type=idle Restart=on-failure RestartSec=10 WorkingDirectory=/home/libretranslate Environment="PATH=/home/libretranslate/venv/bin" Environment="LT_LOAD_ONLY=fr,en,es,it,de,ja" ExecStart=/home/libretranslate/venv/bin/libretranslate --host 127.0.0.1 --port 5000 --load-only fr,en,es,it,de,ja --api-keys --ssl #EnvironmentFile=/home/libretranslate/pyvenv.cfg ExecReload=/bin/kill -s HUP $MAINPID KillMode=mixed TimeoutStopSec=1 [Install] WantedBy=multi-user.target
Puis on active le service (et on le lance directement avec –now) et on vérifie son status :
sudo systemctl enable --now libretranslate.service sudo systemctl status libretranslate.service
sudo nano /etc/apache2/sites-enabled/trad.domain.conf
<VirtualHost *:80> ServerName trad.domain DocumentRoot /var/www/html/ RewriteEngine on RewriteCond %{SERVER_NAME} =trad.domain RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
sudo nano /etc/apache2/sites-enabled/trad.domain-le-ssl.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName trad.domain DocumentRoot /var/www/html/ ProxyPass / http://127.0.0.1:5000/ ProxyPassReverse / http://127.0.0.1:5000/ ProxyPreserveHost On Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/trad.domain/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/trad.domain/privkey.pem </VirtualHost> </IfModule>
sudo systemctl restart apache2
Et pensez au certbot si besoin :)
nano /home/libretranslate/venv/lib/python3.13/site-packages/libretranslate/templates/index.htm
Et on relance le service pour voir les modifications :
sudo systemctl restart libretranslate.service
La liste est disponible ici : https://docs.libretranslate.com/fr/guides/supported_languages/
On stoppe le service et on va modifier les 2 lignes suivantes en ajoutant les codes correspondants :
Environment="LT_LOAD_ONLY=fr,en,es,it,de,ja" ExecStart=/home/libretranslate/venv/bin/libretranslate --host 127.0.0.1 --port 5000 --load-only fr,en,es,it,de,ja --api-keys --ssl
On recharge puis on redémarre le service pour la prise en compte.
systemctl daemon-reload
sudo systemctl restart libretranslate.service
Pour supprimer une langue, le plus simple est de supprimer les langues installées et de relancer libretranslate avec les langues désirées uniquement :
ls -l ~/.local/share/argos-translate/packages/ rm -rf ~/.local/share/argos-translate/packages/*
Puis de mettre à jour le service comme pour l'ajout de langues. Et dans les 2 cas, on recharge puis on redémarre le service pour la prise en compte.
systemctl daemon-reload
sudo systemctl restart libretranslate.service