Tutorial Mastodon server: Criar servidor Mastodon

Com um servidor Mastodon próprio, você obtém total controle sobre os seus dados e a moderação da sua comunidade. Dessa forma é possível ter uma experiência de usuário personalizada, focada na privacidade e livre de anúncios.

Pré-requisitos para criar um servidor Mastodon

Você pode criar um servidor pequeno e escalá-lo sempre que necessário, para acompanhar o crescimento da sua comunidade. Para configurar um Mastodon server, você precisa de:

  • VPS ou outro servidor: Embora você possa operar o Mastodon em um servidor local, um servidor virtual privado (VPS) é uma solução mais flexível e fácil de gerenciar. Este servidor deve, de preferência, usar Ubuntu 20.04 ou Debian 11 como sistema operacional e fornecer acesso root para configurar o necessário.
  • Domínio ou subdomínio: Você precisa de um domínio próprio ou de um subdomínio para identificar seu Mastodon server. Isso permite que os usuários encontrem e se conectar à sua instância.
Consulta de Domínio
  • Disponibilidade on-line constante: Seu servidor deve estar on-line o tempo todo para que outros possam usar sua instância Mastodon.
  • Provedor de e-mail: O Mastodon envia notificações e links de confirmação por e-mail, portanto, você precisa de um provedor de e-mail para oferecer suporte a essas funções. Você pode instalar um servidor SMTP, mas geralmente, o software de terceiros é mais prático. O Mastodon recomenda, entre outros, Mailgun, SparkPost ou Sendgrid.
  • Provedor de armazenamento de objetos (object storage): Apesar de opcional, é recomendável usar um provedor de armazenamento de objetos compatível com Amazon S3, pois o Mastodon armazena dados como imagens, vídeos e outros mídias no servidor. O espaço adicional garante que sua instância Mastodon funcione sem problemas e tenha espaço suficiente para os dados dos usuários.
Object Storage da IONOS
É ideal para backups, assim como para arquivar dados corporativos.

Você pode armazenar qualquer quantidade de dados estáticos por preços acessíveis.

Seu servidor também deve atender aos seguintes requisitos técnicos mínimos:

  • CPU/Processamento: mín. 2 núcleos
  • RAM/Memória: mín. 2 GB
  • Espaço em disco: mín. 30 GB

O Mastodon utiliza um banco de dados (PostgreSQL) para armazenar dados dos usuários e outras informações. Com uma grande base de usuários, o número de acessos ao banco de dados pode ser alto. Certifique-se de que seu banco de dados esteja adequadamente otimizado e tenha recursos suficientes (CPU e RAM) para processar esses acessos de forma eficiente.

Hospedar servidor Mastodon com o VPS da IONOS

Quer começar com sua própria instância Mastodon, mas não tem certeza de qual plano VPS atenderá às suas necessidades? O IONOS oferece pacotes VPS poderosos com recursos dedicados e tráfego ilimitado a preços acessíveis.

Para um Mastodon server simples, o VPS Linux S da IONOS é a escolha perfeita. Ele oferece 80 GB de espaço e até 1 Gbit/s de largura de banda. Se precisar de mais recursos, basta escolher o pacote de desempenho adequado.

Servidores Mastodon e os planos da IONOS adequados

Ao escolher o pacote VPS mais adequado, você deve estimar o número potencial de usuários da sua instância Mastodon. Dependendo do tráfego esperado, recomendamos os seguintes planos da IONOS:

Cenário do servidor Mastodon Servidor VPS IONOS mais adequado
Até 100 pessoas VPS Linux M
100 a 1000 pessoas VPS Linux L
1000 a 10000 pessoas VPS Linux XL
A partir de 10000 pessoas VPS Linux XXL

Além disso, você pode executar seu Mastodon server em paralelo com outros serviços. Para uma base de usuários simples, você pode começar com esses planos:

Cenário do servidor Mastodon Servidor VPS IONOS mais adequado
Operação paralela de um site simples VPS Linux M
Operação paralela de um servidor de voz VPS Linux M
Operação paralela de uma loja on-line VPS Linux L

Criar servidor Mastodon: Passo a passo

Aprenda com as nossas instruções passo a passo como criar um servidor Mastodon.

Passo 1: Preparar o servidor

A maioria dos provedores de hospedagem oferece a possibilidade de escolher o sistema operacional durante a configuração. O Mastodon funciona melhor em Ubuntu 20.04 e Debian 11. Se possível, selecione um desses sistemas operacionais. Depois que seu VPS estiver configurado, conecte-se ao seu servidor via SSH. Para isso, use um terminal (Linux/Mac) ou um cliente SSH como o PuTTY (Windows).

ssh root@your_server_ip
bash

Substitua your_server_ip pelo endereço IP do seu VPS.

Para proteger seu sistema, você deve usar chaves SSH e configurar regras de firewall com iptables para liberar apenas as portas HTTP(S) e SSH. Em seguida, você precisa apontar o registro A do seu domínio ou subdomínio para o IP do VPS. Para IPv6, adicione também um registro AAAA.

Execute uma atualização do gerenciador de pacotes e dos pacotes do sistema:

apt update && apt upgrade -y
bash

Passo 2: Instalar as dependências

O Mastodon requer vários pacotes e dependências para funcionar corretamente, incluindo Node.js, Yarn, PostgreSQL, Redis e Nginx.

Primeiro, instale os pacotes básicos:

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

Node.js

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
bash

PostgreSQL

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
bash

Pacotes do sistema

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

Yarn

corepack enable
yarn set version classic
bash

Ruby

Como o Mastodon é escrito em Ruby, ele requer Ruby e Bundler. Primeiramente, crie o usuário no qual o Mastodon será executado:

adduser --disabled-login mastodon
bash

Em seguida, troque para a conta de usuário criada:

su - mastodon
bash

Instale rbenv e rbenv-build:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
bash

Após concluir essa parte, instale a versão correta do Ruby e o Bundler:

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.2.3
rbenv global 3.2.3
gem install bundler --no-document
bash

Volte para o usuário root com exit.

Passo 3: Configurar o PostgreSQL

O PostgreSQL é utilizado pelo servidor Mastodon para armazenar e gerenciar dados. Você já instalou o servidor de banco de dados na etapa anterior. Agora vá para o usuário postgres para acessar o shell do PostgreSQL:

sudo -u postgres psql
bash

O Mastodon se conecta ao servidor de banco de dados sem senha. Portanto, o nome de usuário do sistema Linux e o nome de usuário do banco de dados devem corresponder. Execute os seguintes comandos no shell do PostgreSQL para criar o banco de dados:

CREATE USER mastodon CREATEDB;
\q
sql

Você pode melhorar o desempenho do seu banco de dados PostgreSQL ajustando os recursos do sistema disponíveis. Uma ferramenta útil para isso é o gerador de configurações pgTune. Nele, você insere informações como o número de núcleos de CPU e o tamanho da RAM, e obtém uma configuração otimizada do PostgreSQL, que você especifica em postgresql.conf.

Passo 4: Instalar o Mastodon

Em seguida, volte para o usuário Mastodon:

su - mastodon
bash

Baixe a versão estável mais recente do Mastodon:

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

Instale também as dependências do Ruby e do JavaScript:

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

Execute o assistente de configuração do Mastodon:

RAILS_ENV=production bundle exec rake mastodon:setup
bash

Você será perguntado sobre preferências de configuração, que serão salvas no final no arquivo .env.production.

  • Domain name: Informe o nome de domínio do servidor VPS
  • Do you want to enable single user mode?: N
  • Are you using Docker to run Mastodon?: N
  • PostgreSQL host: default - Enter
  • PostgreSQL port: default - Enter
  • Name of PostgreSQL database: default - Enter
  • Name of PostgreSQL user: default - Enter
  • Password of PostgreSQL user: deixar em branco - Enter
  • Redis host: default - Enter
  • Redis port: default - Enter
  • Redis password: default – Enter
  • Do you want to store uploaded files on the cloud?: N
  • Do you want to send e-mails from localhost?: N
  • SMTP server: Informe o servidor SMTP
  • SMTP port: Informe a porta do servidor SMTP
  • SMTP username: Nome de usuário para login
  • SMTP authentication: plain
  • SMTP OpenSSL verify mode: none
  • E-mail address to send e-mails “from”: geralmente igual ao login SMTP
  • Send a test e-mail with this configuration right now?: Y
  • Send test e-mail to: Informe um endereço de e-mail qualquer como destinatário
  • Save configuration?: Y
  • Prepare the database now?: Y
  • Compile the assets now?: Y
  • Do you want to create an admin user straight away?: Y
  • Username: admin
  • E-Mail: Informe seu próprio endereço de e-mail

Volte para o usuário root:

exit
bash

Passo 5: Instalar certificado SSL

Os servidores VPS da IONOS já incluem um certificado SSL por padrão. No entanto, se o seu pacote não incluir um certificado, você pode instalá-lo facilmente.

Você pode obter um certificado SSL gratuito do Let’s Encrypt. O Let’s Encrypt oferece certificados automatizados que são fáceis de instalar e renovar.

certbot certonly --nginx -d example.com
bash

O certificado será salvo no diretório /etc/letsencrypt/live/example.com/ no seu servidor Mastodon.

Passo 6: Configurar o Nginx

Você precisará copiar o template de configuração para o Nginx do diretório Mastodon e colá-lo no diretório sites-available do Nginx:

cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
bash

Crie um link simbólico do arquivo de configuração em sites-enabled para ativá-lo e remova a configuração padrão:

ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
rm /etc/nginx/sites-enabled/default
bash

Abra o arquivo de configuração para o seu Mastodon server:

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

Substitua example.com pelo seu próprio nome de domínio.

Apague os comentários das linhas ssl_certificate e ssl_certificate_key, e substitua os respectivos caminhos pelos caminhos do seu certificado SSL. Se você estiver usando o certificado auto assinado padrão, mantenha os caminhos inalterados:

ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
bash

Após ajustar a configuração, você precisará recarregar o Nginx para que as alterações entrem em vigor:

systemctl reload nginx
bash

Passo 7: Configurar serviços Systemd

Ao configurar os serviços Systemd, a aplicação web Mastodon e as funções de streaming em tempo real serão iniciadas automaticamente quando o servidor for reiniciado. Isso garante que seu servidor Mastodon esteja sempre disponível.

Copie os templates de serviço Systemd do Mastodon para o diretório apropriado:

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

Se você tiver feito alterações nos valores padrão, verifique se o nome de usuário e os caminhos nos templates de serviço estão corretos:

$EDITOR /etc/systemd/system/mastodon-*.service
bash

Inicie e habilite os serviços Systemd:

systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
bash
  • systemctl daemon-reload: Atualiza a configuração do Systemd para incluir os novos templates de serviço.
  • systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming: Esses serviços são responsáveis pela aplicação web, processamento em segundo plano e funções de streaming em tempo real do Mastodon.

Passo 8: Alterar o limite de caracteres

Ao operar seu próprio Mastodon server, você tem a liberdade de ajustar configurações que normalmente não estão disponíveis em servidores públicos. Um exemplo é a personalização do limite de caracteres para posts. O padrão é de 500 caracteres, mas você pode aumentar ou diminuir esse valor.

Primeiramente, altere para o usuário Mastodon no console. Em seguida, edite dois arquivos específicos.

Defina o valor desejado para o limite de caracteres nos seguintes arquivos:

  • compose_form.js no diretório ~/live/app/javascript/mastodon/features/compose/components/
  • status_length_validator.rb em ~/live/app/validators/

No arquivo instance_serializer.rb no diretório ~/live/app/serializers/rest/, encontre a linha que contém :languages, :registrations, e adicione :max_toot_chars, logo após.

Além disso, adicione o seguinte código abaixo da linha que começa com private, ajustando o valor de max_toot_chars conforme desejado:

def max_toot_chars
    1000
end
ruby

Depois de fazer essas alterações, os serviços do Mastodon devem ser reiniciados. Isso é feito como usuário root com o comando:

service mastodon-* restart
bash

Agora você pode escrever posts com um limite de 1000 caracteres.

Passo 9: Função de moderação

A função de moderação em “Configurações > Moderação” em seu servidor Mastodon permite que você, como administrador, monitore e controle os conteúdos e atividades dos usuários em sua instância para garantir que as diretrizes da comunidade sejam seguidas e para remover conteúdos indesejados.

Você tem a opção de bloquear, desbloquear ou excluir contas, domínios, endereços IP ou servidores de e-mail. Além disso, você pode moderar conteúdos publicados por usuários, removendo ou editando posts inadequados ou ofensivos.

Teste o VPS da IONOS grátis

Experimente seu vServer de graça agora - Teste um servidor virtual por 30 dias!

  • Recursos dedicados
  • Tráfego ilimitado
  • Consultor pessoal
Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top