Bot para o Fediverso que traduz posts automaticamente quando mencionado.
Mencione @translatebot@seu-dominio.com em qualquer post e ele responde com o conteúdo traduzido para o idioma configurado.
@fulano@mastodon.social
Bonjour tout le monde, comment ça va ? @translatebot@seu-dominio.com
@translatebot@seu-dominio.com
🌐 [FR → PT] Olá a todos, como vão vocês?
Testado e funcionando com Mastodon e instâncias compatíveis com ActivityPub.
https://riverfount.github.io/translate-bot/
- Instalação — rodar o bot a partir do código-fonte
- Configuração —
settings.toml, secrets e variáveis de ambiente - Deploy com Docker — imagem pronta, build local e HTTPS
- Arquitetura — como o bot processa uma menção
- Desenvolvimento — testes e comandos úteis
| apkit | Toolkit ActivityPub para Python — cuida de HTTP Signatures, WebFinger e NodeInfo |
| FastAPI | Servidor web assíncrono (vem como dependência do apkit) |
| LibreTranslate | Detecção automática de idioma e tradução — open source, self-hostável |
| Dynaconf | Configuração por ambiente com suporte a secrets |
| SQLAlchemy + SQLite | Persistência leve de followers, notas de resposta, fila e deduplicação — sem dependências externas |
| uv | Gerenciamento de dependências e ambiente virtual |
mkdir -p keys
docker run --rm -v "$(pwd)/keys:/app/keys" ghcr.io/riverfount/translate-bot:latest uv run --no-sync gen-keys
touch bot.db
docker run -d \
--name translate-bot \
-p 8000:8000 \
-v "$(pwd)/keys:/app/keys" \
-v "$(pwd)/bot.db:/app/bot.db" \
-e ENV_FOR_DYNACONF=production \
-e TRANSLATEBOT_DOMAIN=bot.seu-dominio.com \
-e TRANSLATEBOT_BOT_USERNAME=translatebot \
-e TRANSLATEBOT_TARGET_LANGUAGE=pt \
-e TRANSLATEBOT_LIBRETRANSLATE_URL=https://sua-instancia-libretranslate.com \
ghcr.io/riverfount/translate-bot:latestPasso a passo completo, pré-requisitos e configuração de HTTPS (obrigatório pro ActivityPub) em Deploy com Docker.
Releases são publicadas automaticamente. A cada tag
vX.Y.Zempurrada pramain, o workflowrelease.ymlroda a suíte completa, builda e publica a imagem emghcr.io/riverfount/translate-bote cria a release no GitHub com changelog gerado automaticamente a partir dos PRs mergeados.
apkit ainda não é estável. A versão está fixada no
pyproject.toml. Antes de atualizar, leia o CHANGELOG do projeto.
LibreTranslate é open source e self-hostável. Para maior controle e sem custos por caractere, considere rodar sua própria instância. Instruções em libretranslate.com.
Veja o guia de contribuição e o código de conduta.
Vicente Marçal — @riverfount@bolha.us
MIT