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.
- Atualize o servidor e instale os pré-requisitos
Faça login na sua VPS via SSH. Executesudo apt update && sudo apt upgrade -ypara atualizar todos os pacotes. Em seguida, instale curl, git e Docker usandosudo apt install curl git docker.io docker-compose-plugin -y. Habilite o Docker para iniciar na inicialização comsudo systemctl enable docker. - Clone o repositório do Mastodon
Navegue até o diretório home comcd ~. Clone o repositório oficial do Mastodon executandogit clone https://github.com/mastodon/mastodon.git. Entre no diretório do Mastodon comcd mastodon. - Copie e edite o arquivo de configuração de ambiente
Executecp .env.production.sample .env.productionpara criar o arquivo de ambiente. Abra o arquivo com um editor de texto como nano:nano .env.production. Defina os seguintes valores:
–LOCAL_DOMAINpara seu nome de domínio (exemplo:social.seudominio.com)
–DB_HOSTparadb
–DB_USERparamastodon
–DB_NAMEparamastodon_production
–DB_PASSpara uma senha forte aleatória
–SECRET_KEY_BASE,OTP_SECRET, eVAPID_PRIVATE_KEYeVAPID_PUBLIC_KEYpodem ser gerados depois. - Gere chaves secretas
Executedocker compose run --rm web rake secrettrês vezes para gerarSECRET_KEY_BASE,OTP_SECRETe as chaves VAPID. Para as chaves VAPID, executedocker compose run --rm web rake mastodon:webpush:generate_vapid_key. Copie cada saída para o arquivo.env.productionsob os nomes de variáveis correspondentes. - Inicie os serviços do Mastodon
Executedocker compose up -dpara iniciar o banco de dados, web, sidekiq e serviços de streaming em segundo plano. Aguarde dois minutos para o banco de dados inicializar. - Execute a migração do banco de dados
Executedocker compose run --rm web rails db:migratepara criar as tabelas do banco de dados. Em seguida, executedocker compose run --rm web rails assets:precompilepara compilar os assets estáticos. - Configure o Nginx como proxy reverso
Instale o Nginx comsudo 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 comsudo nano /etc/nginx/sites-available/mastodon. Substituaexample.compelo seu nome de domínio. Habilite o site executandosudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/. Em seguida, teste a configuração comsudo nginx -te reinicie o Nginx comsudo systemctl restart nginx. - Configure SSL com Let’s Encrypt
Instale o Certbot comsudo apt install certbot python3-certbot-nginx -y. Executesudo certbot --nginx -d seudominio.come siga as instruções para obter e instalar um certificado SSL gratuito. A renovação automática está habilitada por padrão. - Crie a conta de administrador
Após os serviços estarem em execução, crie seu usuário administrador executandodocker compose run --rm web rails mastodon:users:create. Forneça um e-mail, nome de usuário e senha. Confirme a conta quando solicitado. - 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.