Como Executar Seu Próprio Relay Mastodon com Lite-Relay
🔍 WiseChecker

Como Executar Seu Próprio Relay Mastodon com Lite-Relay

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.

ADVERTISEMENT

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.

ADVERTISEMENT

Passos para Instalar e Executar o Lite-Relay

  1. Clone o repositório do Lite-Relay
    Abra um terminal no seu servidor. Execute git clone https://github.com/kaniini/lite-relay.git. Em seguida, entre no diretório com cd lite-relay.
  2. Crie o arquivo de configuração de ambiente
    Copie o arquivo de exemplo: cp .env.example .env. Abra .env em um editor de texto. Defina RELAY_DOMAIN para o domínio do seu relay. Defina POSTGRES_PASSWORD como uma string aleatória forte. Defina REDIS_PASSWORD da mesma forma. Opcionalmente, defina ADMIN_EMAIL para notificações do administrador. Salve o arquivo.
  3. Inicie os serviços do relay com Docker Compose
    Execute docker 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 com docker compose ps.
  4. 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 para http://127.0.0.1:3000. Obtenha um certificado SSL com Certbot: sudo certbot --nginx -d relay.seudominio.com. Ative o site com sudo ln -s /etc/nginx/sites-available/relay /etc/nginx/sites-enabled/ e recarregue o Nginx: sudo systemctl reload nginx.
  5. Teste o endpoint do relay
    Abra um navegador web e acesse https://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 com docker compose logs.
  6. 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.
  7. 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.

ADVERTISEMENT

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.

ADVERTISEMENT