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.
- 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. - 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 comdocker --versionedocker compose version. - Clone o repositório do Mastodon
Executegit clone https://github.com/mastodon/mastodon.gitno 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). - Gere a configuração do Mastodon
Copie o arquivo de ambiente de exemplo:cp .env.production.sample .env.production. Executedocker 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. - Inicie os serviços do Mastodon
Executedocker 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. - 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 substituirexample.compelo seu domínio real. Defina o proxy_pass comohttp://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. Executesudo certbot --nginx -d seudominio.compara obter e instalar um certificado SSL Let’s Encrypt. Reinicie o Nginx:sudo systemctl restart nginx. - Crie a conta de administrador e desative registros
Acessehttps://seudominio.comem um navegador. Preencha o formulário de registro inicial para criar sua conta. Em seguida, executedocker compose run --rm web bin/tootctl accounts modify seunome --role adminpara promover a conta a administrador. Por fim, desative registros públicos definindoSINGLE_USER_MODE=trueno 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.