Quando a conexão de um relay do Mastodon é interrompida, sua instância para de receber postagens públicas de servidores federados que dependem desse relay. Isso geralmente acontece porque o servidor relay ficou offline, alterou seu endpoint ou o token de assinatura expirou. Sem um relay funcionando, sua timeline local fica mais silenciosa e os usuários podem perder conteúdo em alta de outras instâncias. Este artigo explica por que as assinaturas de relay falham e fornece um método passo a passo para reinscrever automaticamente usando um script e um agendador do sistema, para que você não precise readicionar relays manualmente toda vez que eles falharem.
Principais Conclusões: Automação de Reinscrição de Relay
- Admin > Relays > Adicionar novo relay: Inscreva-se manualmente em um relay inserindo sua URL e ativando a opção de assinatura.
- Tootctl relays subscribe: Comando CLI que reinscreve em todos os relays configurados em uma única operação.
- cron job ou Agendador de Tarefas: Automatiza o comando tootctl para ser executado diariamente e reinscrever relays com falha sem intervenção manual.
Por que as Assinaturas de Relay do Mastodon Falham
Um relay do Mastodon é um servidor especializado que redistribui postagens públicas de uma instância para muitas outras. Sua instância se inscreve em um relay enviando uma solicitação de assinatura. O relay então envia novas postagens públicas para sua instância. Se o relay ficar offline por um período, sua instância marca a assinatura como falha. Quando o relay volta, sua instância não reinscreve automaticamente.
As razões mais comuns de falha são:
Indisponibilidade do Servidor Relay
Se o servidor relay parar de responder por mais de alguns minutos, o Mastodon marca a assinatura como morta. O administrador do relay pode reiniciar o servidor, mas sua instância não reinscreverá até que você readicione o relay manualmente ou execute o comando de inscrição.
Tokens de Assinatura Expirados
Alguns relays exigem um token de assinatura que expira após 24 a 48 horas. O Mastodon não renova esses tokens automaticamente. Quando o token expira, o relay rejeita sua instância e a assinatura se torna inativa.
URL do Endpoint do Relay Alterada
Se o operador do relay mover o relay para um novo domínio ou caminho, sua instância ainda aponta para a URL antiga. O comando de inscrição falha silenciosamente até que você atualize a URL do relay no painel de administração.
Passos para Reinscrever em um Relay do Mastodon Automaticamente
Siga estes passos para configurar a reinscrição automática usando a CLI do Mastodon e um cron job no Linux ou Agendador de Tarefas no Windows. Este método funciona para instâncias do Mastodon em qualquer sistema operacional que suporte cron ou uma tarefa agendada.
Passo 1: Identificar o Status da Assinatura do Relay
- Acesse o painel de administração do Mastodon
Vá parahttps://suainstancia.com/admin/settings/relays. Você verá uma lista de todos os relays aos quais sua instância já se inscreveu. Cada relay mostra um indicador de status: verde para ativo, vermelho para falha e cinza para pendente. - Anote as URLs dos relays
Para cada relay com status vermelho, copie a URL completa do relay. Você precisará dessas URLs posteriormente para o script automatizado.
Passo 2: Criar o Script de Reinscrição
- Abra um terminal no seu servidor Mastodon
Use SSH ou o console do servidor para acessar a máquina que executa sua instância do Mastodon. - Crie um novo arquivo de script shell
Executenano /home/mastodon/resubscribe_relays.sh. Substituamastodonpelo nome de usuário sob o qual o Mastodon é executado no seu sistema. - Escreva o conteúdo do script
Cole as seguintes linhas no arquivo. Substitua/home/mastodon/livepelo caminho real do diretório de instalação do Mastodon.#!/bin/bash cd /home/mastodon/live RAILS_ENV=production bin/tootctl relays subscribe --all - Salve e saia
Pressione Ctrl+X, depois Y, depois Enter para salvar o arquivo. - Torne o script executável
Executechmod +x /home/mastodon/resubscribe_relays.sh.
Passo 3: Testar o Script Manualmente
- Execute o script
Executesudo -u mastodon bash /home/mastodon/resubscribe_relays.sh. Substituamastodonpelo usuário real do sistema Mastodon. - Verifique a saída
O script exibirá uma mensagem para cada relay: “Inscrito no relay” ou “Já inscrito.” Se você vir erros, verifique as URLs dos relays no painel de administração e garanta que o usuário do Mastodon tenha permissões de escrita no diretório live. - Verifique no painel de administração
Atualize a página de relays no seu navegador. O status dos relays que falharam anteriormente agora deve estar verde ou cinza. Se permanecer vermelho, o relay pode ainda estar offline.
Passo 4: Agendar Execução Automática
- Abra o crontab do usuário do Mastodon
Executesudo -u mastodon crontab -e. Se for a primeira vez, selecione um editor de texto quando solicitado. - Adicione uma linha de cron job
Insira a seguinte linha no final do arquivo:0 6 /home/mastodon/resubscribe_relays.sh
Isso executa o script todos os dias às 6:00. Ajuste o horário conforme sua preferência. Use uma calculadora de tempo cron, se necessário. - Salve e saia
Pressione Ctrl+X, depois Y, depois Enter. O cron confirmará que o novo job foi instalado.
Passo 5: Verificar a Tarefa Agendada
- Liste os cron jobs ativos
Executesudo -u mastodon crontab -l. Você deve ver a linha que adicionou. - Aguarde a execução agendada
Permita que o cron job seja executado no horário configurado. Após a execução, verifique o status dos relays no painel de administração. O script deve ter reinscrito todos os relays que estavam marcados como falha.
Se a Reinscrição Automatizada Ainda Falhar
URL do Relay Está Incorreta
Se o script for executado, mas o status do relay permanecer vermelho, a URL do relay armazenada no painel de administração pode estar desatualizada. Vá para Admin > Relays e clique no botão de editar ao lado do relay com falha. Verifique se a URL corresponde ao endpoint atual do relay. Se o operador do relay alterou a URL, você deve remover o relay antigo e adicionar o novo manualmente. Após atualizar, execute o script novamente.
Relay Está Permanentemente Offline
Alguns relays são desligados permanentemente. O script não pode reinscrever em um relay que não existe mais. Verifique a página de status do relay ou entre em contato com o operador. Se o relay não existir mais, remova-o do painel de administração e encontre um relay alternativo no registro de relays do Mastodon em https://relaylist.com.
Permissão Negada ao Executar o Script
Se você vir erros de “Permissão negada”, o usuário do Mastodon não tem permissão de execução no script ou o caminho do script está incorreto. Execute ls -l /home/mastodon/resubscribe_relays.sh para confirmar que o script existe e tem permissões executáveis. Certifique-se de que a linha do cron job use o caminho absoluto completo para o script.
Reinscrição Manual vs Script Automatizado
| Item | Reinscrição Manual | Script Automatizado com Cron |
|---|---|---|
| Tempo de configuração | 30 segundos por relay | 10 minutos uma vez |
| Confiabilidade | Depende da memória humana | Executa diariamente independentemente |
| Tratamento de erros | Nenhum | Registra saída no syslog |
| Velocidade de recuperação | Horas a dias | Em até 24 horas |
| Requer acesso ao servidor | Não | Sim |
A reinscrição automatizada é a melhor escolha para administradores de instância que gerenciam vários relays e não podem monitorá-los constantemente. A reinscrição manual funciona para instâncias pequenas com um ou dois relays que raramente falham.
Após configurar o cron job, sua instância do Mastodon reinscreverá automaticamente qualquer relay com falha em até 24 horas. Verifique o status dos relays uma vez por semana para confirmar que o script é executado sem erros. Se você gerencia várias instâncias, considere centralizar o gerenciamento de relays com um script compartilhado executado em cada servidor.