Como Configurar uma Instância Mastodon de Usuário Único para Você
🔍 WiseChecker

Como Configurar uma Instância Mastodon de Usuário Único para Você

Ter sua própria instância Mastodon oferece controle total sobre sua presença nas redes sociais, dados e políticas de moderação. Uma instância de usuário único é um servidor Mastodon privado que só você usa, eliminando o ruído de federação de grandes instâncias públicas, mas ainda permitindo seguir e interagir com qualquer pessoa no fediverso. Este guia aborda todo o processo, desde a aquisição do servidor até a operação diária. Você aprenderá a implantar uma instância Mastodon segura e de usuário único usando um servidor em nuvem e Docker.

Principais Conclusões: Implantando uma Instância Mastodon Privada de Usuário Único

  • Nome de domínio e VPS em nuvem: Necessário mínimo de 2 GB de RAM e 50 GB de armazenamento SSD para uma instância Mastodon de usuário único.
  • Implantação com Docker Compose: O arquivo docker-compose.yml oficial do Mastodon automatiza a configuração do PostgreSQL, Redis e do serviço web do Mastodon.
  • Proxy reverso Nginx com Let’s Encrypt: Fornece criptografia HTTPS e roteia o tráfego para o contêiner Mastodon na porta 3000.

Entendendo os Requisitos para uma Instância Mastodon de Usuário Único

Uma instância Mastodon de usuário único é um servidor Mastodon totalmente funcional configurado para permitir apenas uma conta registrada. Diferente de instâncias públicas, você não precisa gerenciar registros de usuários, filtros de spam ou contenção de recursos. O servidor ainda federado com outras instâncias, ou seja, suas postagens aparecem em timelines públicas de outros lugares e você pode seguir usuários em outros servidores. Os componentes principais são um nome de domínio, um servidor virtual privado com pelo menos 2 GB de RAM e 50 GB de armazenamento, e um conhecimento básico da linha de comando Linux. O Mastodon usa PostgreSQL para armazenamento de banco de dados, Redis para cache e filas de tarefas em segundo plano, e Nginx como proxy reverso. Todos os serviços são executados dentro de contêineres Docker para facilitar o gerenciamento e as atualizações.

Pré-requisitos de Hardware e Software

Você precisa de um nome de domínio que aponte para o endereço IP do seu servidor. Qualquer provedor de DNS funciona. O servidor deve executar Ubuntu 22.04 ou Debian 12. Você também precisa de acesso SSH com um usuário com privilégios sudo. Instale o Docker e o Docker Compose no servidor antes de iniciar a instalação do Mastodon. Uma instância de usuário único normalmente usa cerca de 1 GB de RAM durante períodos ociosos e picos de 2 GB ao processar uploads de mídia ou atividades de federação. Escolha um plano VPS que ofereça pelo menos 2 GB de RAM e 50 GB de armazenamento SSD. Provedores como DigitalOcean, Linode ou Hetzner oferecem planos adequados a partir de cerca de 6 USD por mês.

Passos para Implantar uma Instância Mastodon de Usuário Único

Siga estes passos para configurar sua instância Mastodon privada. O processo leva cerca de uma hora do início ao fim.

  1. Aponte seu domínio para o IP do servidor
    Acesse o painel de controle do seu provedor de DNS. Crie um registro A para seu domínio (por exemplo, social.exemplo.com) que aponte para o endereço IPv4 público do seu servidor. Aguarde a propagação do DNS, que geralmente leva menos de 10 minutos.
  2. Conecte-se via SSH ao servidor e instale o Docker
    Execute o script oficial de instalação do Docker: curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh. Em seguida, instale o Docker Compose: sudo apt-get install docker-compose-plugin. Verifique ambas as instalações com docker --version e docker compose version.
  3. Clone o repositório do Mastodon
    Execute git clone https://github.com/mastodon/mastodon.git no seu diretório home. Entre no diretório mastodon: cd mastodon. Faça checkout da tag de versão estável mais recente: git checkout $(git tag -l | grep '^v' | sort -V | tail -n 1).
  4. Gere a configuração do Mastodon
    Copie o arquivo de ambiente de exemplo: cp .env.production.sample .env.production. Execute docker compose run --rm web bundle exec rake mastodon:setup. Este script interativo solicita seu nome de domínio, e-mail do administrador e credenciais do banco de dados. Aceite todos os padrões para as configurações do PostgreSQL e Redis. O script gera automaticamente as chaves SECRET_KEY_BASE, OTP_SECRET e VAPID.
  5. Inicie os serviços do Mastodon
    Execute docker compose up -d. Isso inicia os contêineres PostgreSQL, Redis, web, sidekiq e streaming. Aguarde 30 segundos para o banco de dados inicializar. Verifique os logs: docker compose logs -f web. Procure pela linha que diz “Listening on http://0.0.0.0:3000” para confirmar que o serviço web está em execução.
  6. Configure o proxy reverso Nginx com HTTPS
    Copie a configuração Nginx de exemplo: sudo cp nginx.conf /etc/nginx/sites-available/mastodon. Edite o arquivo para substituir example.com pelo seu domínio real. Defina o proxy_pass como http://127.0.0.1:3000. Ative o site: sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/. Instale o Certbot: sudo apt-get install certbot python3-certbot-nginx. Execute sudo certbot --nginx -d seudominio.com para obter e instalar um certificado SSL Let’s Encrypt. Reinicie o Nginx: sudo systemctl restart nginx.
  7. Crie a conta de administrador e desative registros
    Acesse https://seudominio.com em um navegador. Preencha o formulário de registro inicial para criar sua conta. Em seguida, execute docker compose run --rm web bin/tootctl accounts modify seunome --role admin para promover a conta a administrador. Por fim, desative registros públicos definindo SINGLE_USER_MODE=true no arquivo .env.production e reinicie: docker compose restart web.

Problemas Comuns de Configuração e Como Evitá-los

Falha na configuração de entrega de e-mail durante a configuração inicial

O script de configuração do Mastodon solicita credenciais SMTP. Se você pular esta etapa, e-mails de redefinição de senha e e-mails de confirmação não serão enviados. Use um serviço de e-mail transacional como Mailgun ou SendGrid. Insira o host SMTP, porta, nome de usuário e senha durante o script de configuração. Alternativamente, edite o .env.production posteriormente e reinicie os contêineres.

Interface web exibe erro 502 Bad Gateway após a implantação

Isso geralmente significa que o Nginx não consegue alcançar o contêiner web do Mastodon. Verifique se o contêiner web está em execução com docker compose ps. Verifique se o contêiner está ouvindo na porta 3000: curl http://127.0.0.1:3000. Se o contêiner não estiver em execução, verifique os logs: docker compose logs web. Causas comuns incluem falhas de conexão com o banco de dados ou chaves secretas ausentes no .env.production.

Federação não funciona após a instância entrar no ar

Outras instâncias não conseguem ver suas postagens se o firewall do seu servidor bloquear as portas de saída 443 e 80. Certifique-se de que o firewall do seu VPS permita tráfego HTTPS de saída. Verifique também se o registro A do seu domínio aponta para o IP correto. Use o testador de federação do Mastodon em https://fedi.tips/mastodon-instance-check para confirmar que sua instância está acessível externamente.

Item Instância de Usuário Único Instância Pública
Descrição Servidor privado com uma conta de usuário Servidor com registro aberto para muitos usuários
Uso de recursos 1-2 GB RAM, 50 GB armazenamento 4-16 GB RAM, 100+ GB armazenamento
Esforço de moderação Nenhum necessário Moderação diária de denúncias e spam
Controle de federação Controle total sobre instâncias bloqueadas Controle compartilhado com outros administradores
Custo mensal 6-12 USD 20-100+ USD

Agora você tem uma instância Mastodon de usuário único totalmente funcional sob seu próprio domínio. Faça login e publique seu primeiro toot para verificar se a federação funciona. Para controle avançado, explore o painel de administração em https://seudominio.com/admin para configurar bloqueios de instância, emojis personalizados e políticas de retenção de conteúdo. Configure backups automáticos do banco de dados PostgreSQL adicionando um cron job que execute docker compose exec db pg_dump -U postgres mastodon_production > backup.sql diariamente.