LibreTranslate
Machine translation API that runs offline on your own server.
- Replaces
-
Paid machine translation services, such as Google Translate and DeepL.
All open-source alternatives to DeepL, Google Translate
- Difficulty
-
Difficulty: Easy
1 service, 0 volume mounts, no env values to set, no elevated host access. Heuristic score 0 of 11: easy.
- Stack
Python (language)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
AGPL-3.0(OSI-approved open source)Read from github.com/LibreTranslate/LibreTranslate/blob/89e8a56/LICENSE
- Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/LibreTranslate/LibreTranslate/blob/89e8a56/README.md, read on .
- Repository
GitHub stats
- Stars
- 17,145
- Forks
- 1,784
- Open issues and pull requests
- 129
- Last push
- 2026-10-12
- Latest release
- v1.9.6
- Released
- 2026-05-26
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as AGPL-3.0.
Compose file
services:
libretranslate:
container_name: libretranslate
image: libretranslate/libretranslate:latest
ports:
- "5000:5000"
restart: unless-stopped
healthcheck:
test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
interval: 10s
timeout: 4s
retries: 4
start_period: 5s
## Uncomment this for logging in docker compose logs
# tty: true
## Uncomment above command and define your args if necessary
## Refer to the documentation for more information: https://docs.libretranslate.com/guides/installation/#arguments
# command: --ssl --req-limit 100 --char-limit 500
## Uncomment this section and the libretranslate_api_keys volume if you want to backup your API keys
# environment:
# - LT_API_KEYS=true
# - LT_API_KEYS_DB_PATH=/app/db/api_keys.db # Same result as `db/api_keys.db` or `./db/api_keys.db`
## Uncomment these vars and libretranslate_models volume to optimize loading time.
# - LT_UPDATE_MODELS=true
# - LT_LOAD_ONLY=en,fr
# volumes:
# - libretranslate_api_keys:/app/db
# Keep the models in a docker volume, to avoid re-downloading on startup
# - libretranslate_models:/home/libretranslate/.local:rw
# volumes:
# libretranslate_api_keys:
# libretranslate_models:
From the app's own repository: github.com/LibreTranslate/LibreTranslate/blob/89e8a56/docker-compose.yml.
Compose file from the app repository.
Install
- Docker with the Compose plugin (github.com/LibreTranslate/LibreTranslate/blob/89e8a56/docker-compose.yml)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the compose file as docker-compose.yml (github.com/LibreTranslate/LibreTranslate/blob/89e8a56/docker-compose.yml)
Use the compose file shown above.
- Start it (github.com/LibreTranslate/LibreTranslate/blob/89e8a56/docker-compose.yml)
docker compose up -d - Open the app (github.com/LibreTranslate/LibreTranslate/blob/89e8a56/docker-compose.yml)
Open http://localhost:5000. The compose file publishes host port 5000 for the libretranslate service.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: libretranslate: libretranslate/libretranslate:latest. A later pull can get a different version. (github.com/LibreTranslate/LibreTranslate/blob/89e8a56/docker-compose.yml, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 5000 (libretranslate). A port without a host address listens on all host network interfaces. (github.com/LibreTranslate/LibreTranslate/blob/89e8a56/docker-compose.yml, checked 2026-10-22)
Signals
- Open issues and pull requests: 129
- Last push: 2026-10-12 (9 days before this page was built)
- Latest release: v1.9.6 on 2026-05-26 (148 days before this page was built)