LibreTranslate with Cloudron Mastodon Server
@shanelord01 OK - worked it out.
- Open the web UI for LibreTranslate after setting it up.
- In the "Request" box, there is a line with "const res = await fetch("https://translate.your.domain/translate", "
- Copy the main domain URL (ie https://translate.your.domain" )without the /translate and without quotation marks.
- Open your Cloudron Mastodon app, and open its file manager and edit "env.production"
- At the bottom, add the "#translate section" below here:
# Optionally change default language # DEFAULT_LOCALE=en # translate LIBRE_TRANSLATE_ENDPOINT=https://translate.your.domain LIBRE_TRANSLATE_API_KEY=YOUR_API_KEY
Save this. Restart the Mastodon app.
If you don't have your API key, open the LibreTranslate Cloudron App Terminal, and issue:
su - cloudron -c 'ltmanage keys --api-keys-db-path /app/data/api_keys.db add 120'
You'll get a key like "f67d5afe-aa14-4d37-90f7-f7d9636b721e" in response - use the one you got in reponse.
Optional; set your default language:
# Optionally change default language DEFAULT_LOCALE=en
After completing setup and ensuring everything works, if you want to stop people from using the Web UI to translate, you can disable it by editing the LibreTranslate "env.sh" file via its Cloudron File Manager, and adding this (then save env.sh and restart LT):
Note: After doing this I've noted the app is stuck reporting as "Starting" in the Cloudron "My Apps" even though it is running fine. Not sure if this is a health check failing in the Cloudron app? @nebulon Any way to do this without causing this issue?
@shanelord01 My VPS is at ~ 30% most of the time, but I found the LT API to be awfully slow. Mastodon also gave too many 503 errors (due to timeouts? I don't know). And the translation quality is just too poor compared to DeepL. However, I'm happy to have LT available via Cloudron and will certainly give it another try at a later time. I still like the idea of in-house translation without submitting data to a third party.
After doing this I've noted the app is stuck reporting as "Starting" in the Cloudron "My Apps" even though it is running fine
This seems like maybe the box cron job got stuck for some reason. Can you try if
systemctl restart boxfixes the state?
I have enabled this also with our cloudron mastodon instance now and it works mostly. For some reason mastodon does not always show the translate button and sometimes it also shows it for english posts, which then results in a 503 response error, since libretranslate got the request to translate from en -> en which is wrong.
Just sharing this here, to set expectations.
I think Mastodon's translate button only appears if the poster has set a language for his / hear toot that's different from your language settings.
It could be that the LT API relies on the source and destination language settings that are submitted by Mastodon. That could be an explanation for the errors I received, b/c not everyone sets the language correct. Maybe the DeepL API is more flexible here.