Mastodon · 13 min read · Oct 13, 2025

Como Instalar a Rede Social Mastodon no Debian 11

Mastodon é uma rede social gratuita, descentralizada e de código aberto, semelhante ao Twitter. No Mastodon, os usuários podem seguir uns aos outros e postar mensagens, imagens e vídeos. Mas, ao contrário do Twitter, não há um armazenamento central ou autoridade para o conteúdo.

Com a arquitetura descentralizada, o Mastodon opera em milhares de servidores diferentes, cada um gerido por vários membros da comunidade. Você pode criar seu servidor Mastodon sob seu domínio. Você também pode seguir outros usuários com diferentes domínios em outros servidores.

Neste tutorial, você instalará o Mastodon, uma plataforma de microblogging descentralizada em um servidor Debian 11. Com este guia, você configurará o Mastodon com PostgreSQL como o servidor de banco de dados e Nginx como um proxy reverso. Além disso, você protegerá a instalação do Mastodon através de certificados SSL gratuitos da Letsencrypt.

Pré-requisitos

Este guia assume que você tem os seguintes requisitos em vigor:

  • Um servidor Debian 11 - este exemplo usa o servidor Debian 11 mais recente com o nome do host ‘mastodon-server‘ e o endereço IP ‘192.168.5.40‘.
  • Um usuário não-root com privilégios de administrador sudo/root.
  • Um nome de domínio apontado e resolvido para seu servidor Debian público - este exemplo usa o subdomínio ‘mastodon.howtoforge.local‘.

Quando você tiver esses pré-requisitos em vigor, você está pronto para prosseguir com a instalação do Mastodon.

Configurando Repositórios e Instalando Dependências

Mastodon é um software livre e de código aberto para executar serviços de rede social auto-hospedados que são semelhantes ao serviço do Twitter. É principalmente escrito em Ruby, especialmente com o framework web Ruby on Rails e JavaScript com Reac.js e Redux.

Neste primeiro passo, você configurará repositórios adicionais em seu sistema e instalará as dependências de pacotes para a instalação do Mastodon. Isso inclui pacotes como build-essentials para compilar Ruby, PostgreSQL para o servidor de banco de dados, Nginx como o servidor web e proxy reverso, ferramenta certbot para adquirir certificados SSL via Letsencrypt, e o servidor Redis que será usado para armazenamento de chave-valor e gerenciamento de sessão para o Mastodon.

Antes de começar, execute o comando apt abaixo para instalar algumas dependências básicas que serão usadas para gerenciar repositórios e pacotes.

sudo apt install curl wget gnupg apt-transport-https lsb-release ca-certificates

Quando solicitado, digite y para confirmar e pressione ENTER para prosseguir.

instalar pacotes básicos

Em seguida, execute o comando abaixo para adicionar o repositório Node.js Nodesource. O pacote Node.js aqui será usado para compilar ativos estáticos do Mastodon. E no momento da redação deste texto, o Mastodon mais recente requer pelo menos Node.js v16.

curl -sL https://deb.nodesource.com/setup_16.x | bash -

Você receberá uma saída como a seguinte.

adicionar repositório nodejs

Após a adição do repositório Node.js, você configurará o repositório para o gerenciador de pacotes Yarn. Este repositório fornece o pacote Yarn que será usado para instalar dependências JavaScript.

Execute o comando abaixo para adicionar a chave GPG e o repositório do gerenciador de pacotes Yarn.

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null  
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

O terceiro repositório que você adicionará é o repositório PostgreSQL. Execute o comando abaixo para adicionar o repositório PostgreSQL ao seu servidor Debian.

wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc  
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \  
> /etc/apt/sources.list.d/postgresql.list

adicionar repositório yarn postgresql

Com os repositórios Node.js, Yarn e PostgreSQL adicionados, execute o comando apt abaixo para atualizar seu índice de pacotes.

sudo apt update

Você receberá uma saída como esta.

atualizar e atualizar repositório

Por fim, execute o comando apt abaixo para instalar as dependências de pacotes que serão usadas para instalar o Mastodon.

sudo apt install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \  
  g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \  
  bison build-essential libssl-dev libyaml-dev libreadline6-dev \  
  zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \  
  nginx nodejs yarn redis-server redis-tools postgresql postgresql-contrib \  
  certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev

Digite y quando solicitado para a confirmação e pressione ENTER para prosseguir.

instalar dependências

Com isso, você instalou as dependências básicas para o Mastodon e adicionou alguns repositórios de terceiros ao seu sistema Debian.

Nos próximos passos, você instalará o Ruby via rbenv - O gerenciador de versões Ruby.

Instalando rbenv e Ruby

rbenv é uma ferramenta de gerenciamento de versões para a linguagem de programação Ruby em sistemas semelhantes ao Unix. É útil para alternar entre várias versões do Ruby na mesma máquina e para garantir que cada projeto em que você está trabalhando sempre seja executado na versão correta do Ruby.

Para começar, execute o comando abaixo para criar um novo usuário ‘mastodon‘ em seu sistema. Este novo usuário será usado para executar serviços relacionados ao Mastodon, e o código-fonte do Mastodon será armazenado no diretório home deste usuário.

sudo adduser --disabled-login mastodon

Durante o processo, você será solicitado a configurar os detalhes do usuário. Insira suas informações de usuário e digite y para confirmar e pressione ENTER.

adicionar novo usuário

Após a criação do usuário ‘mastodon‘, execute o comando abaixo para fazer login.

su - mastodon

Em seguida, baixe o código-fonte do rbenv via o comando git abaixo.

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

Então execute o comando abaixo para instalar o rbenv em seu sistema.

cd ~/.rbenv && src/configure && make -C src

Você receberá uma saída como esta após a instalação do rbenv.

baixar e instalar rbenv

Em seguida, execute o comando abaixo para adicionar o diretório ‘bin’ do rbenv ao PATH do sistema e carregar o rbenv toda vez que o usuário fizer login em uma nova sessão.

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc  
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Agora recarregue seu shell atual recarregando o arquivo de configuração bashrc. Em seguida, insira o comando ‘rbenv’ em seu shell e pressione TAB.

source ~/.bashrc  
rbenv TAB

Na captura de tela a seguir, o rbenv está instalado e você pode agora executar o comando rbenv para instalar o Ruby.

Antes de instalar o Ruby, você precisa instalar o plugin rbenv chamado ‘ruby-build’. Este plugin fornece ferramentas de linha de comando que simplificam a instalação do Ruby a partir do código-fonte, especialmente para sistemas operacionais semelhantes ao UNIX.

Baixe o plugin ‘ruby-build’ via o comando git.

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

baixar ruby_plugin

Após a adição do plugin ‘ruby-build’, execute o comando abaixo para instalar o Ruby v3.0.4, que é necessário para a versão atual do Mastodon.

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4

Após a instalação ser concluída, você receberá uma saída semelhante a esta.

instalar ruby

Agora execute o comando abaixo para definir a versão padrão do Ruby para 3.0.4. Em seguida, verifique usando o comando ruby como abaixo. Você verá que o Ruby v3.0.4 está instalado em seu sistema Debian.

rbenv global 3.0.4  
ruby --version

verificar ruby

Por fim, você deve instalar um bundler como seu gerenciamento de pacotes Ruby. Execute o comando gem abaixo para instalar ‘bundler’.

gem install bundler --no-document

Neste ponto, você terminou a instalação das dependências do pacote Mastodon em seu sistema. Você instalou o Ruby 3.0.4 via o gerenciador de versões Ruby rbenv e instalou o bundler, a ferramenta de gerenciamento de pacotes Ruby.

Nos próximos passos, você configurará o usuário PostgreSQL que será usado para a instalação do Mastodon.

Configurando o Servidor de Banco de Dados PostgreSQL

Neste passo, você verificará o serviço PostgreSQL para garantir que o serviço esteja habilitado e em execução. Em seguida, você criará um novo usuário/papel PostgreSQL ‘mastodon’ via o shell PostgreSQL.

Certifique-se de executar esses comandos abaixo com usuário/root.

Antes de começar, execute o comando systemctl abaixo para garantir que o serviço PostgreSQL esteja em execução e habilitado.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

Você deve receber uma saída semelhante a esta.

verificar postgresql

Com o PostgreSQL em execução, execute o comando abaixo para fazer login no shell PostgreSQL.

cd /etc/postgresql  
sudo -u postgres psql

Após fazer login no shell PostgreSQL, execute a consulta PostgreSQL abaixo para criar um novo papel/usuário ‘mastodon‘. Além disso, certifique-se de alterar a senha padrão para uma nova senha forte.

CREATE USER mastodon CREATEDB;  
ALTER USER mastodon PASSWORD 'p4ssw0rd';

Em seguida, execute a consulta abaixo para garantir que o novo usuário/papel PostgreSQL seja criado. Em seguida, digite ‘\q‘ para sair do shell PostgreSQL.

\du  
\q

A saída abaixo mostra que o novo usuário/papel PostgreSQL ‘mastodon’ foi criado.

configurar papel/usuário postgresql

Com o usuário/papel PostgreSQL criado, você estará pronto para instalar o Mastodon em seu sistema Debian.

Instalando o Mastodon

Você instalará e configurará o Mastodon em seu servidor Debian neste passo. Você também instalará dependências Ruby e dependências JavaScript para o Mastodon. E por fim, você começará a configurar o Mastodon para sua implantação, isso inclui a configuração do domínio, configuração do banco de dados e redis, configuração SMTP e também a configuração do usuário administrador do Mastodon.

Antes de começar, faça login no usuário ‘mastodon’ via o comando abaixo.

su - mastodon

Agora baixe o código-fonte do Mastodon via o comando git e mude o branch para a versão estável mais recente do Mastodon. No momento da redação deste texto, a versão estável do Mastodon é v4.0.2.

git clone https://github.com/mastodon/mastodon.git live && cd live  
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

baixar mastodon

Em seguida, execute o comando abaixo para configurar a implantação do Mastodon e instalar as dependências Ruby.

bundle config deployment 'true'  
bundle config without 'development test'  
bundle install -j$(getconf _NPROCESSORS_ONLN)

A instalação das dependências Ruby do Mastodon levará tempo. Abaixo está a saída semelhante que você receberá em seu terminal.

configurar implantação e instalar dependências

Após instalar as dependências Ruby do Mastodon, execute o comando yarn abaixo para instalar as dependências JavaScript para o Mastodon.

yarn install --pure-lockfile

Você receberá uma saída semelhante a esta.

instalar dependências javascript

Com as dependências Ruby e JavaScript instaladas, você configurará sua instalação do Mastodon.

Execute o comando abaixo para configurar o Mastodon para o ambiente de produção.

RAILS_ENV=production bundle exec rake mastodon:setup

Você será questionado sobre algumas configurações do Mastodon.

  • O nome de domínio do Mastodon? Este exemplo usa o domínio ‘mastodon.howtoforge.local’.
  • Ativar modo de usuário único? Digite y.
  • Usar Docker para executar o Mastodon? Digite n para não.
  • Digite o usuário e a senha do PostgreSQL e certifique-se de receber a mensagem ‘A configuração do banco de dados funciona!’.
  • Configuração do Redis? deixe como padrão pressionando ENTER.
  • Habilitar upload de arquivos para a nuvem? Digite n para não.
  • Permitir o envio de e-mails do localhost? Digite y para sim ou n para não. Isso depende do seu ambiente, você também pode usar um servidor SMTP de terceiros.
  • Salvar a configuração? Digite y para sim.
  • Para a criação do banco de dados. Digite y para criar o banco de dados do Mastodon.
  • Digite y para compilar ativos e arquivos estáticos para o Mastodon.
  • Configurar usuário administrador? Digite o novo usuário administrador e e-mail para sua instalação do Mastodon. E você receberá a senha gerada automaticamente na tela.

Configuração do Mastodon para nome de domínio, PostgreSQL, servidor Redis e servidor de e-mail SMTP.

configurar mastodon

Mastodon gera ativos e arquivos estáticos.

gerar ativos

O usuário administrador do mastodon é criado e a senha também é gerada na tela do terminal.

Neste ponto, você terminou a instalação e configuração do Mastodon no Debian 11. Nos próximos passos, você configurará o Mastodon como um serviço systemd.

Executando o Mastodon como Serviço Systemd

Por padrão, o Mastodon fornece um exemplo de arquivos de serviço systemd que estão disponíveis no diretório ‘/home/mastodon/live/dist/‘.

Execute o comando abaixo para copiar os arquivos de serviço do Mastodon para o diretório ‘/etc/systemd/system‘.

sudo cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/

Agora recarregue o gerenciador systemd para aplicar as alterações no systemd.

sudo systemctl daemon-reload

Após isso, inicie e habilite os serviços do Mastodon via o utilitário de comando systemctl abaixo.

sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming  
sudo systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming

configurar mastodon systemd

Os serviços do Mastodon devem agora estar em funcionamento e também habilitados. Verifique usando o comando systemctl abaixo.

sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

Você receberá uma saída semelhante às capturas de tela a seguir.

O serviço mastodon-web está em execução e habilitado.

serviço mastodon-web

O mastodon-sidekiq também está em execução e habilitado.

serviço sidekiq mastodon

O serviço mastodon-streaming também está em execução e habilitado.

serviço streaming mastodon

Com todos os serviços do Mastodon em execução e habilitados, você configurará o Nginx como um proxy reverso para o Mastodon e gerará SSL Letsencrypt.

Configurando o Nginx como um Proxy Reverso

Neste passo, você configurará o servidor web Nginx como o proxy reverso para o Mastodon. Você também gerará SSL Letsencrypt via o comando certbot e protegerá o Mastodon via conexão segura HTTPS.

Copie a configuração padrão do bloco de servidor Nginx do Mastodon para ‘/etc/nginx/sites-available/mastodon’. Em seguida, ative a nova configuração do bloco de servidor ‘/etc/nginx/sites-available/mastodon‘.

sudo cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon  
sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

Em seguida, abra o arquivo de configuração do bloco de servidor do Mastodon ‘/etc/nginx/sites-available/mastodon’ usando o comando do editor nano abaixo.

sudo nano /etc/nginx/sites-available/mastodon

Altere o nome de domínio padrão para o seu domínio do Mastodon. Neste exemplo, o domínio para o Mastodon é ‘mastodon.howtoforge.local‘.

alterar domínio

Salve o arquivo e saia do editor quando terminar.

Em seguida, execute o comando abaixo para gerar certificados SSL da Letsencrypt. Certifique-se de alterar o nome do domínio para o seu domínio.

sudo certbot --nginx -d mastodon.howtoforge.local

Após os certificados SSL serem gerados, execute o comando abaixo para verificar a configuração do Nginx. Se você receber a mensagem de saída como ‘teste bem-sucedido - sintaxe ok‘, isso significa que você tem a configuração adequada. Em seguida, reinicie o serviço Nginx para aplicar novas alterações.

sudo nginx -t  
sudo systemctl restart nginx

verificar configuração nginx

Por fim, execute o utilitário de comando systemctl abaixo para verificar o serviço Nginx e garantir que o serviço esteja em execução e habilitado.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Você receberá uma saída semelhante a esta - O serviço Nginx está atualmente em execução e habilitado. O serviço Nginx será executado automaticamente na inicialização.

verificar nginx

Com toda a configuração concluída, seu Mastodon agora está acessível via navegador web.

Acessando a Instalação do Mastodon

Abra seu navegador web e visite o nome de domínio da sua instalação do Mastodon (ou seja: https://mastodon.howtoforge.local/). Você agora verá a página inicial padrão do Mastodon.

página inicial do mastodon

Clique no botão ‘Entrar‘ para verificar seu usuário.

Agora insira seu usuário administrador e a senha gerada para o Mastodon. Em seguida, clique em Entrar.

página de login do mastodon

Você verá então a página inicial do usuário do Mastodon.

painel do usuário mastodon

Em seguida, clique no menu Preferências para acessar a página de preferências do usuário. Depois, clique no menu Administração no lado esquerdo. E você deve obter a página de administração do Mastodon abaixo.

Você pode ver os detalhes da pilha de software que está atualmente usando em sua instalação do Mastodon.

administração do mastodon

Conclusão

Parabéns! Você agora terminou a instalação da plataforma de microblogging Mastodon em um servidor Debian 11. Você instalou o Mastodon com PostgreSQL como o servidor de banco de dados e Nginx como o proxy reverso. Você também protegeu a implantação do Mastodon através de conexões HTTPS seguras.

Após toda a instalação, você pode agora configurar a regra do Mastodon para suportes de federação. Você também pode adicionar uma camada de segurança adicional à sua instalação do Mastodon.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.