−25%

no Windows com pagamento anual, até 31/10. Ver planos

EQVPS

VPS para Mastodon: sua própria instância pequena

Hospede uma pequena instância Mastodon num VPS: RAM e disco sem rodeios, instalação com Docker, e-mail via relay SMTP e limpeza de mídia para o disco não lotar.

Ser dono da sua conta social parece ótimo, até você perceber que a conta vive no servidor de outra pessoa, sob as regras e a disponibilidade dela. Ter sua própria instância Mastodon resolve isso: seu identificador é @you@your-domain e ninguém pode derrubá-lo além de você. O porém é que o Mastodon não é um app pequeno. Vale saber no que você está se metendo.

Para quem é

Acima disso, você está operando um serviço com obrigações de moderação, denúncias e infraestrutura de verdade. Aí é outra conversa.

Do que precisa de verdade

O Mastodon roda vários processos ao mesmo tempo: o app web em Rails, workers do Sidekiq em segundo plano, um servidor de streaming, PostgreSQL e Redis. Com a federação, seu servidor continua buscando posts e mídia de outros servidores mesmo enquanto você dorme.

InstânciaPlano
Um usuário, poucas contas seguidasSmall-IP — 2 vCPU, 4 GB, $16/mês
Comunidade pequena, federação ativaMedium-IP — 4 vCPU, 6 GB, $20/mês

4 GB funcionam, mas no limite; as filas do Sidekiq acumulam quando um post popular que você segue recebe milhares de respostas. 6 GB dão folga. A outra restrição é o disco — veja a seção de mídia abaixo.

Você também precisa de um domínio e de um IP dedicado: outros servidores entregam ao seu na porta 443.

Instalação com Docker

O repositório oficial traz um docker-compose.yml. Num servidor Ubuntu 24.04 limpo com o Docker instalado:

git clone https://github.com/mastodon/mastodon.git
cd mastodon
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
touch .env.production
docker compose run --rm -v $(pwd)/.env.production:/opt/mastodon/.env.production \
  web bundle exec rake mastodon:setup
docker compose up -d

A tarefa de setup pergunta o domínio, as configurações de banco e Redis (os padrões batem com o arquivo compose), as configurações de e-mail e a primeira conta de administrador. Ela grava tudo em .env.production. Leia as notas de versão da tag escolhida — os passos às vezes mudam entre versões principais.

O Mastodon inclui um modelo de nginx em dist/nginx.conf. Copie para /etc/nginx/sites-available/, troque o domínio e obtenha um certificado com o certbot. Nossos guias de proxy reverso e de domínio cobrem as duas coisas.

E-mail: use um relay

O Mastodon envia e-mails de confirmação e de redefinição de senha. As portas 25 e 465 são fechadas nos nossos servidores, então aponte o Mastodon para um provedor externo de e-mail transacional pela porta 587:

SMTP_SERVER=smtp.your-provider.example
SMTP_PORT=587
SMTP_LOGIN=apikey
SMTP_PASSWORD=your-smtp-password
SMTP_FROM_ADDRESS=notifications@your-domain.example

Sinceramente, você ia querer um relay de qualquer jeito. E-mail saindo de um IP de servidor recém-criado tende a cair no spam; o relay tem a reputação que você ainda não tem.

Mídia: a devoradora de disco

Cada imagem e vídeo das contas que seu servidor vê fica em cache localmente. Numa instância movimentada são gigabytes por semana. Limpe a mídia remota antiga periodicamente:

docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30

Coloque isso num cron diário. Se a instância crescer, mova a mídia para um storage de objetos compatível com S3 usando as configurações S3_* em .env.production — aí o disco do VPS guarda só o banco de dados.

Manutenção

Quer algo mais leve para o chat de um time? Um servidor Matrix pode servir melhor.

Pronto para implantar? Pague com cripto, sem KYC — online em cerca de um minuto.

Implantar agora →

FAQ

Quanta RAM uma instância Mastodon precisa?

Para uma instância pessoal ou pequena, 4 GB é o mínimo realista e 6 GB é confortável. O Mastodon roda ao mesmo tempo um processo web, workers do Sidekiq, PostgreSQL e Redis, e a federação mantém o Sidekiq ocupado mesmo quando ninguém está postando.

Por que o Mastodon precisa de IP dedicado?

Outros servidores entregam posts ao seu via HTTPS na porta 443, e as pessoas abrem sua instância no navegador. Isso exige 443 de entrada no seu próprio IP, o que planos NAT não têm.

Como envio e-mail pelo Mastodon?

Use um provedor externo de e-mail transacional via SMTP na porta 587. As portas 25 e 465 são fechadas nos nossos servidores, e um relay ainda entrega muito melhor do que um IP novo entregaria.

Por que meu disco enche tão rápido?

Seu servidor guarda em cache a mídia de todas as contas que ele vê. Rode 'tootctl media remove --days 7' periodicamente ou mova a mídia para um storage de objetos compatível com S3.

Posso trocar o domínio depois?

Não. O domínio faz parte da identidade de cada conta em todo o fediverso. Escolha com cuidado antes de criar a primeira conta.

Comentários

Nenhum comentário ainda. Seja o primeiro.

Deixe um comentário

Os comentários são moderados antes de aparecerem.