Como Auto-Hospedar uma Instância do Mastodon em uma VPS
🔍 WiseChecker

Como Auto-Hospedar uma Instância do Mastodon em uma VPS

Auto-hospedar uma instância do Mastodon oferece controle total sobre seus dados de mídia social, políticas de moderação e configurações de federação. Em vez de depender de uma instância pública gerenciada por terceiros, você é dono do servidor e do conteúdo que ele hospeda. Este artigo explica como implantar uma instância do Mastodon em um Servidor Virtual Privado (VPS) rodando Ubuntu 22.04. Você aprenderá as etapas exatas para instalar, configurar e proteger seu próprio servidor Mastodon.

Principais Conclusões: Auto-Hospedar Mastodon em uma VPS

  • Ubuntu 22.04 LTS com Docker Compose: O método mais rápido e confiável para implantar o Mastodon em uma VPS.
  • Configuração do arquivo de ambiente (.env.production): Necessário para definir credenciais do banco de dados, chaves secretas e nome de domínio para operação segura.
  • Proxy reverso Nginx com SSL Let’s Encrypt: Garante que todo o tráfego para sua instância seja criptografado e o servidor seja acessível pelo domínio escolhido.

O Que Você Precisa Antes de Iniciar a Instalação

Auto-hospedar o Mastodon requer uma VPS com pelo menos 4 GB de RAM e 2 núcleos de CPU. O sistema operacional recomendado é Ubuntu 22.04 LTS. Você também precisa de um nome de domínio apontado para o endereço IP da VPS. Este guia usa Docker Compose para gerenciar o Mastodon e suas dependências. O Docker Compose simplifica as atualizações e reduz erros de configuração. Você deve ter acesso root ou sudo à VPS.

Passos para Implantar o Mastodon em uma VPS

Siga estas etapas em ordem. Não pule nenhuma. Cada etapa se baseia na anterior.

  1. Atualize o servidor e instale os pré-requisitos
    Faça login na sua VPS via SSH. Execute sudo apt update && sudo apt upgrade -y para atualizar todos os pacotes. Em seguida, instale curl, git e Docker usando sudo apt install curl git docker.io docker-compose-plugin -y. Habilite o Docker para iniciar na inicialização com sudo systemctl enable docker.
  2. Clone o repositório do Mastodon
    Navegue até o diretório home com cd ~. Clone o repositório oficial do Mastodon executando git clone https://github.com/mastodon/mastodon.git. Entre no diretório do Mastodon com cd mastodon.
  3. Copie e edite o arquivo de configuração de ambiente
    Execute cp .env.production.sample .env.production para criar o arquivo de ambiente. Abra o arquivo com um editor de texto como nano: nano .env.production. Defina os seguintes valores:
    LOCAL_DOMAIN para seu nome de domínio (exemplo: social.seudominio.com)
    DB_HOST para db
    DB_USER para mastodon
    DB_NAME para mastodon_production
    DB_PASS para uma senha forte aleatória
    SECRET_KEY_BASE, OTP_SECRET, e VAPID_PRIVATE_KEY e VAPID_PUBLIC_KEY podem ser gerados depois.
  4. Gere chaves secretas
    Execute docker compose run --rm web rake secret três vezes para gerar SECRET_KEY_BASE, OTP_SECRET e as chaves VAPID. Para as chaves VAPID, execute docker compose run --rm web rake mastodon:webpush:generate_vapid_key. Copie cada saída para o arquivo .env.production sob os nomes de variáveis correspondentes.
  5. Inicie os serviços do Mastodon
    Execute docker compose up -d para iniciar o banco de dados, web, sidekiq e serviços de streaming em segundo plano. Aguarde dois minutos para o banco de dados inicializar.
  6. Execute a migração do banco de dados
    Execute docker compose run --rm web rails db:migrate para criar as tabelas do banco de dados. Em seguida, execute docker compose run --rm web rails assets:precompile para compilar os assets estáticos.
  7. Configure o Nginx como proxy reverso
    Instale o Nginx com sudo apt install nginx -y. Copie a configuração de exemplo do Nginx do diretório do Mastodon: sudo cp ~/mastodon/dist/nginx.conf /etc/nginx/sites-available/mastodon. Edite o arquivo com sudo nano /etc/nginx/sites-available/mastodon. Substitua example.com pelo seu nome de domínio. Habilite o site executando sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/. Em seguida, teste a configuração com sudo nginx -t e reinicie o Nginx com sudo systemctl restart nginx.
  8. Configure SSL com Let’s Encrypt
    Instale o Certbot com sudo apt install certbot python3-certbot-nginx -y. Execute sudo certbot --nginx -d seudominio.com e siga as instruções para obter e instalar um certificado SSL gratuito. A renovação automática está habilitada por padrão.
  9. Crie a conta de administrador
    Após os serviços estarem em execução, crie seu usuário administrador executando docker compose run --rm web rails mastodon:users:create. Forneça um e-mail, nome de usuário e senha. Confirme a conta quando solicitado.
  10. Verifique se a instância está ativa
    Abra um navegador web e navegue até https://seudominio.com. Você deve ver a tela de login do Mastodon. Faça login com as credenciais de administrador que você criou.

Erros Comuns e Como Evitá-los

Docker Compose Falha com Permissão Negada

Este erro ocorre quando o usuário atual não foi adicionado ao grupo Docker. Execute sudo usermod -aG docker $USER e faça logout e login novamente. Em seguida, repita os comandos do Docker.

Interface Web do Mastodon Mostra Erro 502 Bad Gateway

O serviço web pode não ter iniciado corretamente. Verifique os logs com docker compose logs web. Causas comuns incluem chaves secretas ausentes no .env.production ou um banco de dados que não foi migrado completamente. Execute novamente a etapa de migração e reinicie os serviços com docker compose restart.

E-mails Não São Enviados pela Instância

O Mastodon requer um servidor SMTP para enviar e-mails de confirmação e notificação. Adicione as configurações SMTP ao seu arquivo .env.production. Por exemplo, se usar Mailgun: defina SMTP_SERVER=smtp.mailgun.org, SMTP_PORT=587, SMTP_LOGIN=seu_login, SMTP_PASSWORD=sua_senha e SMTP_AUTH_METHOD=plain. Em seguida, reinicie os serviços.

Mastodon Auto-Hospedado vs Hospedagem Gerenciada

Item Auto-Hospedado em VPS Hospedagem Gerenciada
Custo Taxa mensal da VPS ($10–$50) mais domínio Assinatura mensal ($20–$100)
Controle Acesso root completo, moderação personalizada Limitado às configurações do provedor
Manutenção Você gerencia atualizações, backups e segurança Provedor gerencia a manutenção
Escalabilidade Upgrade manual dos recursos da VPS Opções de escalonamento automático
Habilidade técnica necessária Linha de comando Linux, Docker, Nginx Conhecimento técnico mínimo

Auto-hospedar oferece propriedade total dos dados e a capacidade de personalizar sua instância. A hospedagem gerenciada é mais fácil para começar, mas limita seu controle. Escolha com base em sua familiaridade com administração de servidores.

Agora você pode executar sua própria instância do Mastodon com controle administrativo completo. Após a instância estar ativa, configure suas políticas de moderação e personalize o título e a descrição do site em Administração > Configurações do Site. Para manutenção contínua, configure backups automáticos do banco de dados PostgreSQL usando docker compose exec db pg_dump -U mastodon mastodon_production > backup.sql e agende com um cron job.