====== Installation de Libretranslate ======
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
Si c'est une ré-installation on pense à d'abord stopper l'instance en cours 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
====== Création du Proxypass pour apache ======
sudo nano /etc/apache2/sites-enabled/trad.domain.conf
ServerName trad.domain
DocumentRoot /var/www/html/
RewriteEngine on
RewriteCond %{SERVER_NAME} =trad.domain
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
sudo nano /etc/apache2/sites-enabled/trad.domain-le-ssl.conf
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
sudo systemctl restart apache2
Et pensez au certbot si besoin :)
===== Modifier le template =====
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
===== Modifier les langues =====
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