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.
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.
- Atualize o servidor e instale o Node.js
Executesudo 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 porsudo apt install -y nodejs. Verifique comnode --version. - 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. - Instale as dependências npm
Executenpm 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. - 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. - 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 (substituarelay.seudominio.compelo 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. - 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. - 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
seuusuariopelo 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 veractive (running). - 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.
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.