Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup.
Find a file
Piero Toffanin 84a6a9466c
Merge pull request #4 from vemonet/add-docker-workflows
Automated workflows to publish the docker image
2020-12-29 10:20:47 -05:00
.github/workflows add 2 GitHub Actions workflows to build and publish the docker image to DockerHub and GitHub Container Registry 2020-12-29 01:02:36 +01:00
app Rate limit behind proxy 2020-12-21 11:16:49 -05:00
models@3d5ca0a2c3 UI mostly working 2020-12-20 11:55:56 -05:00
.gitignore First commit 2020-12-19 17:40:37 -05:00
.gitmodules First commit 2020-12-19 17:40:37 -05:00
docker-compose.yml Add Dockerfile to build and run LibreTranslate as a Docker image. Also added a docker-compose.yml file to provide a reproducible way to run the Docker image. And finally added how to build and run the Docker image to the README.md. Tested with local deployment on port 5000 and public HTTPS deployment using a docker based nginx-proxy 2020-12-21 19:39:53 +01:00
Dockerfile Add Dockerfile to build and run LibreTranslate as a Docker image. Also added a docker-compose.yml file to provide a reproducible way to run the Docker image. And finally added how to build and run the Docker image to the README.md. Tested with local deployment on port 5000 and public HTTPS deployment using a docker based nginx-proxy 2020-12-21 19:39:53 +01:00
install_models.py UI mostly working 2020-12-20 11:55:56 -05:00
LICENSE Initial commit 2020-12-19 14:19:35 -05:00
main.py int arg 2020-12-20 16:57:31 -05:00
README.md Update README.md 2020-12-21 14:31:50 -05:00
requirements.txt Waitress support 2020-12-20 15:05:22 -05:00

LibreTranslate

Try it online! | API Docs

Free and Open Source Machine Translation API, entirely self-hosted and works even in offline environments. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations.

image

Try it online! | API Docs

API Examples

Request:

const res = await fetch("https://libretranslate.com/translate", {
	method: "POST",
	body: JSON.stringify({
		q: "Hello!",
		source: "en",
		target: "es"
	}),
	headers: {
		"Content-Type": "application/json"
	});

console.log(await res.json());

Response:

{
    "translatedText": "¡Hola!"
}

Build and Run

You can run your own API server in just a few lines of setup!

Make sure you have installed Python (3.8 or higher), then simply issue:

git clone https://github.com/uav4geo/LibreTranslate --recurse-submodules
cd LibreTranslate
pip install -r requirements.txt
python main.py [args]

Then open a web browser to http://localhost:5000

Run with Docker

Make sure you cloned the models submodule before building the Docker image:

docker build -t libretranslate .

Run the built image:

docker run -it -p 5000:5000 libretranslate [args]

Or build and run using docker-compose:

docker-compose up -d --build

Feel free to change the docker-compose.yml file to adapt it to your deployment needs, or use an extra docker-compose.prod.yml file for your deployment configuration.

Arguments

Argument Description Default
--host Set host to bind the server to 127.0.0.1
--port Set port to bind the server to 5000
--char-limit Set character limit No limit
--req-limit Set maximum number of requests per minute per client No limit
--ga-id Enable Google Analytics on the API client page by providing an ID No tracking
--debug Enable debug environment False
--ssl Whether to enable SSL False

Roadmap

Help us by opening a pull request!

  • A docker image (thanks @vemonet !)
  • Auto-detect input language
  • User authentication / tokens
  • Language bindings for every computer language

Credits

This work is largely possible thanks to Argos Translate, which powers the translation engine.

License

GNU Affero General Public License v3