BentoPDF
PDF toolkit that runs in your browser, so files never leave your machine. Merge, split, compress, convert, sign and edit.
Documents / Tools
Machine translation server with a page for translating text and documents, plus a JSON API for other apps to call. Runs its own models, so nothing you translate leaves the box.
It isn't in the main Portainer Templates list yet, so use this one. Portainer takes one URL at a time, so it swaps out whatever list you had before.
In Portainer, head to Settings --> App Templates, paste this in as the URL and save.
https://raw.githubusercontent.com/NotAFlightRisk/portainer-templates-extras/main/templates.json http://<your-server>:5100 in a browser.The same file Portainer deploys. It reads its settings from a .env next to it.
services:
libretranslate:
image: libretranslate/libretranslate:latest
restart: unless-stopped
ports:
- "${LIBRETRANSLATE_PORT:-5100}:5000"
environment:
LT_LOAD_ONLY: ${LIBRETRANSLATE_LANGUAGES:-en,es,fr,de}
LT_UPDATE_MODELS: "true"
healthcheck:
test: ["CMD-SHELL", "./venv/bin/python scripts/healthcheck.py"]
interval: 10s
timeout: 4s
retries: 4
start_period: 5s
volumes:
- libretranslate-models:/home/libretranslate/.local
volumes:
libretranslate-models:
All optional, the defaults are fine.
# Languages - Two-letter codes, comma separated, like en,es,fr,de,it,ja. Each one is a couple of hundred MB of models to download.
LIBRETRANSLATE_LANGUAGES=en,es,fr,de
# Host port for the web UI
LIBRETRANSLATE_PORT=5100 Grab the file and start it.
mkdir libretranslate && cd libretranslate
curl -fsSL -o compose.yml https://raw.githubusercontent.com/NotAFlightRisk/portainer-templates-extras/main/apps/libretranslate/compose.yml
# save the .env tab here as .env first
docker compose up -d Open http://<your-host>:5100 (or whichever port you picked). The first start downloads models for the languages you listed, about 900 MB for the default four, so give it a minute or two before the page answers. There are no accounts, so anyone who can reach it can use it and its API (reference at /docs). Keep it on your LAN, or see the docs for API keys and rate limits. To add languages later, change the list and update the stack, and the new ones download on the next start. Each start also checks for model updates. The models live in the libretranslate-models volume. Codes: supported languages. Docs: docs.libretranslate.com
What the Portainer form asks for. With compose they go in the .env file instead.
| Variable | What it's for | Default |
|---|---|---|
LIBRETRANSLATE_LANGUAGES | Languages Two-letter codes, comma separated, like en,es,fr,de,it,ja. Each one is a couple of hundred MB of models to download. | en,es,fr,de |
LIBRETRANSLATE_PORT | Host port for the web UI | 5100 |
The containers this stack runs, with ports as they come out of the box.
| Service | Image | Ports |
|---|---|---|
libretranslate | libretranslate/libretranslate:latest | 5100:5000 |