Relays Mastodon ajudam a federar conteúdo entre instâncias sem exigir seguidores diretos. Se você administra uma instância pequena ou média, seguir contas manualmente para preencher timelines é impraticável. Um relay assina postagens públicas de instâncias conectadas e as redistribui para todos os pares. Este artigo explica como implantar o Lite-Relay, um servidor de relay leve, em sua própria infraestrutura.
Principais Conclusões: Implantando o Lite-Relay para Federação Mastodon
- Repositório GitHub do Lite-Relay: Fornece o código-fonte e scripts de implantação para o servidor relay.
- Implantação com Docker Compose: Simplifica a execução do Lite-Relay com PostgreSQL e Redis em contêineres.
- Variáveis de ambiente no arquivo .env: Controlam o domínio do relay, credenciais do banco de dados e configurações de administrador.
O que o Lite-Relay Faz e Por Que Você Precisa Dele
Lite-Relay é um servidor relay independente que implementa a API de relay do Mastodon. Quando você adiciona um relay à sua instância Mastodon, seu servidor envia postagens públicas para o relay. O relay então encaminha essas postagens para todas as outras instâncias inscritas no mesmo relay. Esse processo é chamado de federação baseada em relay.
Executar seu próprio relay oferece controle sobre quais instâncias podem se inscrever. Você pode colocar domínios na lista de permissões ou bloqueio, monitorar o tráfego e evitar depender de relays públicos que podem ser não confiáveis ou desativados. O Lite-Relay é escrito em Node.js e usa PostgreSQL para armazenamento e Redis para filas de tarefas.
O relay não armazena postagens permanentemente. Ele apenas as armazena em cache brevemente para redistribuição. Isso mantém o uso de recursos baixo. Um relay lidando com 50 instâncias usa aproximadamente 2 GB de RAM e CPU mínima.
Pré-requisitos para Implantar o Lite-Relay
Antes de começar, certifique-se de ter o seguinte:
- Um servidor Linux com pelo menos 2 GB de RAM e 20 GB de espaço em disco. Recomenda-se Ubuntu 22.04 ou Debian 12.
- Docker e Docker Compose instalados. Versão 20.10 ou posterior para Docker, versão 2.x para Compose.
- Um nome de domínio apontando para seu servidor. Exemplo: relay.seudominio.com. O relay deve rodar na porta 80 ou 443.
- Certificado SSL. Use Let’s Encrypt com Certbot ou um proxy reverso como Nginx com terminação SSL.
- Instância Mastodon com acesso de administrador. Você precisa da capacidade de adicionar uma URL de relay no painel de administração.
Passos para Instalar e Executar o Lite-Relay
- Clone o repositório do Lite-Relay
Abra um terminal no seu servidor. Executegit clone https://github.com/kaniini/lite-relay.git. Em seguida, entre no diretório comcd lite-relay. - Crie o arquivo de configuração de ambiente
Copie o arquivo de exemplo:cp .env.example .env. Abra.envem um editor de texto. DefinaRELAY_DOMAINpara o domínio do seu relay. DefinaPOSTGRES_PASSWORDcomo uma string aleatória forte. DefinaREDIS_PASSWORDda mesma forma. Opcionalmente, definaADMIN_EMAILpara notificações do administrador. Salve o arquivo. - Inicie os serviços do relay com Docker Compose
Executedocker compose up -d. Isso baixa as imagens necessárias e inicia os contêineres PostgreSQL, Redis e Lite-Relay. Verifique se todos os contêineres estão em execução comdocker compose ps. - Configure SSL com um proxy reverso
Instale o Nginx:sudo apt install nginx. Crie um novo arquivo de configuração em/etc/nginx/sites-available/relay. Defina o server_name para o domínio do seu relay. Faça proxy das requisições parahttp://127.0.0.1:3000. Obtenha um certificado SSL com Certbot:sudo certbot --nginx -d relay.seudominio.com. Ative o site comsudo ln -s /etc/nginx/sites-available/relay /etc/nginx/sites-enabled/e recarregue o Nginx:sudo systemctl reload nginx. - Teste o endpoint do relay
Abra um navegador web e acessehttps://relay.seudominio.com/api/v1/instance. Você deve ver uma resposta JSON com a versão do relay e informações de contato. Se vir um erro, verifique os logs comdocker compose logs. - Adicione o relay à sua instância Mastodon
Faça login no painel de administração do Mastodon. Navegue até Preferências > Administração > Relays. Clique no botão Adicionar Novo Relay. Cole a URL do seu relay:https://relay.seudominio.com. Clique em Salvar e depois em Ativar. Sua instância agora começa a enviar postagens públicas para o relay. - Convide outros administradores de instância para se inscrever
Compartilhe a URL do seu relay com outros administradores Mastodon. Eles podem adicioná-la da mesma forma. O relay começa a distribuir postagens entre todas as instâncias inscritas em alguns minutos.
Gerenciando e Monitorando Seu Relay
O Lite-Relay inclui uma interface de administração básica. Acesse-a em https://relay.seudominio.com/admin. Faça login usando o e-mail e senha definidos no arquivo .env. No painel de administração você pode:
- Visualizar uma lista de instâncias inscritas e seu status.
- Bloquear ou desbloquear instâncias por domínio.
- Monitorar a taxa de transferência do relay e a atividade recente.
Para atualizar o Lite-Relay, baixe o código mais recente com git pull e reinicie os contêineres com docker compose up -d --build. Sempre faça backup do seu arquivo .env e banco de dados antes de atualizar.
Problemas Comuns e Como Corrigi-los
Relay retorna erros 404 ou 502 ao ser acessado
Isso geralmente significa que o proxy reverso não está encaminhando corretamente para a porta 3000. Verifique se a diretiva proxy_pass do Nginx aponta para http://127.0.0.1:3000. Confirme se o contêiner do Lite-Relay está em execução com docker compose ps. Se o contêiner saiu, veja os logs com docker compose logs relay para identificar erros de inicialização.
Instância Mastodon mostra relay como offline
A instância envia uma requisição de teste ao relay a cada poucos minutos. Se o domínio do relay estiver inacessível, verifique a resolução DNS a partir do servidor da instância. Também certifique-se de que a porta 443 está aberta no firewall. Execute sudo ufw status para verificar. Adicione uma regra com sudo ufw allow 443/tcp se necessário.
Relay consome muita memória
O Lite-Relay usa Redis como fila de tarefas. Se muitas instâncias se inscreverem, a fila pode crescer. Reduza o valor de QUEUE_CONCURRENCY no .env para limitar tarefas paralelas. Reinicie o relay com docker compose restart. Considere também aumentar a RAM do servidor para 4 GB se você tiver mais de 100 instâncias.
Lite-Relay vs Relays Públicos: Principais Diferenças
| Item | Lite-Relay (Auto-hospedado) | Relays Públicos (ex.: relay.fedifriends.com) |
|---|---|---|
| Controle | Controle total sobre lista de permissões e bloqueio de instâncias | Sem controle; o operador do relay decide as políticas |
| Privacidade | Postagens permanecem dentro da sua rede confiável | Postagens vão para instâncias terceiras desconhecidas |
| Confiabilidade | Depende do tempo de atividade do seu servidor | Depende do tempo de atividade do operador do relay público |
| Custo | Custos de hospedagem do servidor (aprox. $5–$15/mês) | Gratuito |
| Esforço de configuração | Requer habilidades de administração de servidores | Sem configuração; basta adicionar a URL |
Executar seu próprio relay oferece independência e privacidade. Relays públicos são mais fáceis, mas não oferecem garantias. Escolha com base no tamanho da sua instância e requisitos de confiança.
Agora você pode executar um relay Mastodon usando o Lite-Relay. Comece clonando o repositório e configurando o arquivo .env. O painel de administração permite gerenciar inscrições e bloquear domínios indesejados. Para controle avançado, considere configurar um relay apenas com lista de permissões. Edite a variável .env RELAY_OPEN_REGISTRATION=false e adicione manualmente as instâncias permitidas através da interface de administração.