Configuração de Nó Relay Mastodon para Autogestão: Guia Passo a Passo
🔍 WiseChecker

Configuração de Nó Relay Mastodon para Autogestão: Guia Passo a Passo

Se você gerencia um servidor Mastodon, a linha do tempo local pode parecer vazia quando a instância é nova ou pequena. Um nó relay Mastodon resolve isso compartilhando automaticamente postagens públicas entre todos os servidores conectados a ele. Este guia aborda a instalação e configuração de um nó relay no seu próprio servidor Linux para aumentar o fluxo de conteúdo para sua comunidade. Você aprenderá os comandos e ajustes exatos necessários para colocar um relay em funcionamento e conectá-lo à sua instância Mastodon.

Principais Pontos: Configuração de Relay Mastodon Autogerenciado

  • Pré-requisitos Node.js e npm: Instale a versão correta do Node.js antes de clonar o software do relay.
  • Arquivo de configuração config.json: Defina o domínio, porta e email do administrador para habilitar o registro do relay.
  • Arquivo de serviço systemd: Crie um serviço persistente para que o relay reinicie automaticamente após uma reinicialização do servidor.

ADVERTISEMENT

O que um Nó Relay Mastodon Faz e Por Que Você Precisa de Um

Um relay Mastodon é um servidor leve que encaminha postagens públicas de uma instância conectada para todas as outras instâncias conectadas. Quando você entra em um relay, seu servidor envia suas postagens públicas locais para o relay, e o relay as redistribui para todos os outros servidores no pool do relay. Isso aumenta a quantidade de conteúdo visível na sua linha do tempo federada sem exigir seguidores manuais dos seus usuários.

O software oficial do relay Mastodon é chamado mastodon-relay e é mantido pela equipe de desenvolvimento do Mastodon. Ele é escrito em Node.js e usa ActivityPub para se comunicar com servidores Mastodon. Você não precisa de uma instalação completa do Mastodon para executar um relay. O relay armazena apenas referências de postagens temporariamente e não hospeda contas de usuário ou arquivos de mídia.

Pré-requisitos para Autogerenciar um Relay

Antes de começar, confirme que seu servidor atende a estes requisitos:

  • Um servidor Linux rodando Ubuntu 20.04 ou superior, Debian 11 ou uma distribuição compatível.
  • Node.js versão 16 ou superior. Você pode verificar com node --version.
  • Gerenciador de pacotes npm versão 8 ou superior.
  • Um nome de domínio ou subdomínio apontado para o endereço IP do servidor. Exemplo: relay.seudominio.com.
  • Portas 80 e 443 abertas no firewall. O relay usa HTTPS.
  • Software de proxy reverso como Nginx ou Caddy para lidar com certificados TLS.

Passos para Instalar e Configurar um Nó Relay Mastodon

Siga estas instruções em ordem. Cada passo se baseia no anterior.

  1. Atualize o servidor e instale o Node.js
    Execute sudo apt update && sudo apt upgrade -y. Em seguida, instale o Node.js usando o repositório NodeSource: curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - seguido por sudo apt install -y nodejs. Verifique com node --version.
  2. Clone o repositório mastodon-relay
    Vá para o diretório home: cd ~. Clone o repositório oficial: git clone https://github.com/mastodon/mastodon-relay.git. Depois entre no diretório: cd mastodon-relay.
  3. Instale as dependências npm
    Execute npm install. Isso baixa todos os pacotes necessários. O processo pode levar um ou dois minutos. Não prossiga até que o comando termine sem erros.
  4. Crie o arquivo de configuração
    Copie a configuração de exemplo: cp config.json.example config.json. Abra o arquivo com um editor de texto: nano config.json. Edite os seguintes valores:

    "domain": "relay.seudominio.com" — substitua pelo seu domínio real
    "port": 3000 — a porta que o relay escuta internamente
    "admin_email": "admin@seudominio.com" — usado para registro do certificado Let’s Encrypt
    "registration_mode": "open" — permite que qualquer administrador Mastodon entre no relay
    Salve o arquivo e saia do editor.

  5. Configure um proxy reverso com Nginx
    Instale o Nginx: sudo apt install nginx -y. Crie uma nova configuração de site: sudo nano /etc/nginx/sites-available/relay. Adicione o seguinte conteúdo (substitua relay.seudominio.com pelo seu domínio real):
    server {
        listen 80;
        server_name relay.seudominio.com;
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

    Ative o site: sudo ln -s /etc/nginx/sites-available/relay /etc/nginx/sites-enabled/. Teste a configuração: sudo nginx -t. Recarregue o Nginx: sudo systemctl reload nginx.

  6. Obtenha um certificado TLS com Certbot
    Instale o Certbot: sudo apt install certbot python3-certbot-nginx -y. Execute o Certbot: sudo certbot --nginx -d relay.seudominio.com. Siga as instruções para inserir seu email de administrador e concordar com os termos. O Certbot configura automaticamente HTTPS para seu domínio do relay.
  7. Crie um serviço systemd para o relay
    Crie um arquivo de serviço: sudo nano /etc/systemd/system/mastodon-relay.service. Adicione o seguinte conteúdo (ajuste o caminho se seu nome de usuário for diferente):
    [Unit]
    Description=Mastodon Relay Service
    After=network.target
    
    [Service]
    Type=simple
    User=seuusuario
    WorkingDirectory=/home/seuusuario/mastodon-relay
    ExecStart=/usr/bin/node index.js
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target

    Substitua seuusuario pelo seu nome de usuário Linux real. Salve o arquivo. Recarregue o systemd: sudo systemctl daemon-reload. Habilite o serviço para iniciar na inicialização: sudo systemctl enable mastodon-relay. Inicie o serviço: sudo systemctl start mastodon-relay. Verifique o status: sudo systemctl status mastodon-relay. Você deve ver active (running).

  8. Conecte sua instância Mastodon ao relay
    Faça login na sua instância Mastodon como administrador. Vá para Preferências > Administração > Relés. Insira a URL do relay: https://relay.seudominio.com. Clique em Ativar relay. A instância envia uma solicitação de seguir para o relay. O relay aceita automaticamente e começa a encaminhar postagens públicas.

ADVERTISEMENT

Problemas Comuns na Configuração do Relay e Como Resolvê-los

Relay aparece como inativo ou inacessível no painel de administração do Mastodon

Verifique se o serviço do relay está em execução: sudo systemctl status mastodon-relay. Se não estiver, veja os logs: sudo journalctl -u mastodon-relay -n 50. Causas comuns incluem arquivo config.json ausente, valores de domínio ou porta incorretos, ou firewall bloqueando a porta 443. Confirme que o Nginx está escutando no domínio correto e que o destino do proxy corresponde à porta em config.json.

Falha na renovação do certificado para o domínio do relay

O Certbot renova certificados automaticamente por meio de um timer systemd. Se a renovação falhar, o relay pode ficar inacessível via HTTPS. Execute sudo certbot renew --dry-run para testar a renovação. Certifique-se de que a porta 80 esteja aberta para o desafio ACME. Se o domínio mudou, reconfigure o Certbot com sudo certbot --nginx -d novodominio.com.

Relay consome muita memória em um servidor pequeno

O relay armazena referências de postagens na memória por um tempo limitado. Em servidores com menos de 1 GB de RAM, considere reduzir o valor max_queue_size em config.json. Um valor de 1000 em vez do padrão 5000 reduz o uso de memória. Reinicie o relay após alterar o valor: sudo systemctl restart mastodon-relay.

Relay Mastodon vs Seguir Manualmente: Comparação de Distribuição de Conteúdo

Item Relay Mastodon Seguir Manualmente
Esforço de configuração Configuração única no servidor Cada usuário segue contas individualmente
Alcance do conteúdo Todas as postagens públicas de todas as instâncias conectadas Apenas postagens de contas seguidas
Uso de recursos do servidor Baixo a moderado uso de memória e CPU Mínimo para o servidor; alto para os usuários
Controle do usuário Controlado pelo administrador; usuários não podem optar por sair Cada usuário controla sua própria linha do tempo
Confiabilidade Depende do tempo de atividade do relay Depende da disponibilidade da instância remota

Após concluir este guia, você terá um nó relay Mastodon funcional que distribui postagens públicas entre todas as instâncias conectadas. Tente conectar uma segunda instância ao mesmo relay para verificar o fluxo de conteúdo entre instâncias. Para ajustes avançados, modifique os valores max_queue_size e max_connections em config.json para adequar à capacidade do seu servidor.

ADVERTISEMENT