Instalação¶
Passo a passo pra rodar o bot a partir do código-fonte. Se você só quer subir uma instância sem mexer no código, veja Deploy com Docker.
Pré-requisitos¶
- Docker (ou Podman)
- Um domínio com HTTPS apontando para o servidor (obrigatório para ActivityPub)
- Acesso a uma instância LibreTranslate (pública ou self-hosted)
Pra desenvolver ou buildar a partir do código-fonte, além do acima:
1. Instalar o uv¶
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Clonar o repositório¶
git clone https://github.com/Riverfount/translate-bot
cd translate-bot
3. Instalar as dependências¶
make install-dev
O uv cria automaticamente o ambiente virtual em .venv e instala tudo a partir do uv.lock. Não é necessário ativar o venv manualmente.
4. Gerar as chaves RSA do bot¶
make gen-keys
Isso cria keys/private.pem e keys/public.pem. A chave privada é usada para assinar as atividades enviadas — nunca a versione no git.
5. Configurar o ambiente¶
Edite o settings.toml com o domínio do seu bot:
[production]
domain = "bot.seu-dominio.com"
Crie o arquivo .secrets.toml com a API key da instância LibreTranslate, se necessário (já está no .gitignore):
[default]
libretranslate_api_key = "sua-chave-aqui"
Note
Instâncias self-hosted sem autenticação podem deixar a chave em branco. A instância padrão https://libretranslate.com exige chave.
Para definir o ambiente ativo, crie um .env na raiz:
ENV_FOR_DYNACONF=production
Veja todas as opções em Configuração.
6. Rodar o servidor¶
make run
Para desenvolvimento com hot-reload:
make dev
Teste local com ngrok¶
Para testar sem um servidor público, use o ngrok para expor o servidor local:
# Terminal 1 — túnel ngrok
ngrok http 8000
# Terminal 2 — servidor
make dev
Atualize o settings.toml com a URL do ngrok na seção [development] e defina ENV_FOR_DYNACONF=development no .env.