# LibreTranslate ## Install libretranslate Installing pipx, then, adding an unprivileged user 'libretranslate' that will install libretranslate in its $HOME directory. ```shell apt install pipx useradd -m -s /bin/sh libretranslate sudo -i -u libretranslate pipx install libretranslate ``` ## Run libretranslate Run for the first time to install languages, stop whenever you want, or sin this at any time to update or finishing Installing models. ```shell sudo -i -u libretranslate /home/libretranslate/.local/bin/libretranslate --update-models ``` ## Nginx Add to `/etc/nginx/sites-available/libretranslate.conf` ```nginx server { listen 80; listen [::]:80; server_name translate.example.org; location / { proxy_pass http://localhost:5000/; } } ``` Enable the site ``` ln -s /etc/nginx/sites-available/libretranslate.conf /etc/nginx/sites-enabled/ ``` Generate a certificate, select your domain. ``` certbot --nginx ``` Restart nginx ``` systemctl restart nginx ``` ## Enable as a service Create: `/etc/systemd/system/libretranslate.service`. ```systemd [Unit] Description=LibreTranslate - Free and Open Source Machine Translation API After=network.target [Service] User=libretranslate Group=libretranslate WorkingDirectory=/home/libretranslate Environment="PATH=/home/libretranslate/.local/pipx/venvs/libretranslate/bin" ExecStart=/home/libretranslate/.local/bin/libretranslate Restart=always ExecReload=/bin/kill -s HUP $MAINPID KillMode=mixed TimeoutStopSec=1 [Install] WantedBy=multi-user.target ``` ```shell systemctl enable --now libretranslate ``` ## Done Your own translation website and API should be available through `translate.exmaple.org` (the server_name set in `/etc/nginx/sites-available/libretranslate.conf`)