guides/self_hosting/services/libretranslate/README.md
2024-02-04 09:11:50 -06:00

92 lines
1.7 KiB
Markdown

# 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`)