Com um servidor Mastodon próprio, você obtém total controle sobre os seus dados e a moderação da sua co­mu­ni­dade. Dessa forma é possível ter uma ex­pe­ri­ên­cia de usuário per­so­na­li­zada, focada na pri­va­ci­dade e livre de anúncios.

Pré-re­qui­si­tos para criar um servidor Mastodon

Você pode criar um servidor pequeno e escalá-lo sempre que ne­ces­sá­rio, para acom­pa­nhar o cres­ci­mento da sua co­mu­ni­dade. Para con­fi­gu­rar 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 pre­fe­rên­cia, usar Ubuntu 20.04 ou Debian 11 como sistema ope­ra­ci­o­nal e fornecer acesso root para con­fi­gu­rar o ne­ces­sá­rio.
  • Domínio ou sub­do­mí­nio: Você precisa de um domínio próprio ou de um sub­do­mí­nio para iden­ti­fi­car seu Mastodon server. Isso permite que os usuários encontrem e se conectar à sua instância.
Consulta de Domínio
  • Dis­po­ni­bi­li­dade 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 no­ti­fi­ca­ções e links de con­fir­ma­çã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 ge­ral­mente, o software de terceiros é mais prático. O Mastodon recomenda, entre outros, Mailgun, SparkPost ou Sendgrid.
  • Provedor de ar­ma­ze­na­mento de objetos (object storage): Apesar de opcional, é re­co­men­dá­vel usar um provedor de ar­ma­ze­na­mento de objetos com­pa­tí­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 su­fi­ci­ente para os dados dos usuários.
IONOS Cloud Object Storage
Cloud storage at an un­be­a­ta­ble price
  • Perfect for backups and archiving.
  • Redundant and secure data storage across multiple regions.
  • Un­be­a­ta­ble price-per­for­mance ratio at $4.99/TB.

Seu servidor também deve atender aos seguintes re­qui­si­tos técnicos mínimos:

  • CPU/Pro­ces­sa­mento: 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 (Post­greSQL) para armazenar dados dos usuários e outras in­for­ma­ções. Com uma grande base de usuários, o número de acessos ao banco de dados pode ser alto. Cer­ti­fi­que-se de que seu banco de dados esteja ade­qua­da­mente otimizado e tenha recursos su­fi­ci­en­tes (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 ne­ces­si­da­des? O IONOS oferece pacotes VPS poderosos com recursos dedicados e tráfego ilimitado a preços aces­sí­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 de­sem­pe­nho adequado.

Ser­vi­do­res 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. De­pen­dendo do tráfego esperado, re­co­men­da­mos 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 ins­tru­ções passo a passo como criar um servidor Mastodon.

Passo 1: Preparar o servidor

A maioria dos pro­ve­do­res de hos­pe­da­gem oferece a pos­si­bi­li­dade de escolher o sistema ope­ra­ci­o­nal durante a con­fi­gu­ra­ção. O Mastodon funciona melhor em Ubuntu 20.04 e Debian 11. Se possível, selecione um desses sistemas ope­ra­ci­o­nais. Depois que seu VPS estiver con­fi­gu­rado, 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 con­fi­gu­rar 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 sub­do­mí­nio para o IP do VPS. Para IPv6, adicione também um registro AAAA.

Execute uma atu­a­li­za­ção do ge­ren­ci­a­dor de pacotes e dos pacotes do sistema:

apt update && apt upgrade -y
bash

Passo 2: Instalar as de­pen­dên­cias

O Mastodon requer vários pacotes e de­pen­dên­cias para funcionar cor­re­ta­mente, incluindo Node.js, Yarn, Post­greSQL, 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

Post­greSQL

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. Pri­mei­ra­mente, 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: Con­fi­gu­rar o Post­greSQL

O Post­greSQL é 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 Post­greSQL:

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 cor­res­pon­der. Execute os seguintes comandos no shell do Post­greSQL para criar o banco de dados:

CREATE USER mastodon CREATEDB;
\q
sql

Você pode melhorar o de­sem­pe­nho do seu banco de dados Post­greSQL ajustando os recursos do sistema dis­po­ní­veis. Uma fer­ra­menta útil para isso é o gerador de con­fi­gu­ra­ções pgTune. Nele, você insere in­for­ma­ções como o número de núcleos de CPU e o tamanho da RAM, e obtém uma con­fi­gu­ra­ção otimizada do Post­greSQL, que você es­pe­ci­fica 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 de­pen­dên­cias do Ruby e do Ja­vaS­cript:

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

Execute o as­sis­tente de con­fi­gu­ra­ção do Mastodon:

RAILS_ENV=production bundle exec rake mastodon:setup
bash

Você será per­gun­tado sobre pre­fe­rên­cias de con­fi­gu­ra­çã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
  • Post­greSQL host: default - Enter
  • Post­greSQL port: default - Enter
  • Name of Post­greSQL database: default - Enter
  • Name of Post­greSQL user: default - Enter
  • Password of Post­greSQL 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 authen­ti­ca­tion: plain
  • SMTP OpenSSL verify mode: none
  • E-mail address to send e-mails “from”: ge­ral­mente igual ao login SMTP
  • Send a test e-mail with this con­fi­gu­ra­tion right now?: Y
  • Send test e-mail to: Informe um endereço de e-mail qualquer como des­ti­na­tá­rio
  • Save con­fi­gu­ra­tion?: 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 cer­ti­fi­cado SSL

Os ser­vi­do­res VPS da IONOS já incluem um cer­ti­fi­cado SSL por padrão. No entanto, se o seu pacote não incluir um cer­ti­fi­cado, você pode instalá-lo fa­cil­mente.

Você pode obter um cer­ti­fi­cado SSL gratuito do Let’s Encrypt. O Let’s Encrypt oferece cer­ti­fi­ca­dos au­to­ma­ti­za­dos que são fáceis de instalar e renovar.

certbot certonly --nginx -d example.com
bash

O cer­ti­fi­cado será salvo no diretório /etc/letsencrypt/live/example.com/ no seu servidor Mastodon.

Passo 6: Con­fi­gu­rar o Nginx

Você precisará copiar o template de con­fi­gu­ra­çã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 con­fi­gu­ra­ção em sites-enabled para ativá-lo e remova a con­fi­gu­ra­çã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 con­fi­gu­ra­çã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 co­men­tá­rios das linhas ssl_certificate e ssl_certificate_key, e substitua os res­pec­ti­vos caminhos pelos caminhos do seu cer­ti­fi­cado SSL. Se você estiver usando o cer­ti­fi­cado auto assinado padrão, mantenha os caminhos inal­te­ra­dos:

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

Após ajustar a con­fi­gu­ra­ção, você precisará re­car­re­gar o Nginx para que as al­te­ra­ções entrem em vigor:

systemctl reload nginx
bash

Passo 7: Con­fi­gu­rar serviços Systemd

Ao con­fi­gu­rar os serviços Systemd, a aplicação web Mastodon e as funções de streaming em tempo real serão iniciadas au­to­ma­ti­ca­mente quando o servidor for rei­ni­ci­ado. Isso garante que seu servidor Mastodon esteja sempre dis­po­ní­vel.

Copie os templates de serviço Systemd do Mastodon para o diretório apro­pri­ado:

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

Se você tiver feito al­te­ra­çõ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 con­fi­gu­ra­çã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 res­pon­sá­veis pela aplicação web, pro­ces­sa­mento em segundo plano e funções de streaming em tempo real do Mastodon.

Passo 8: Alterar o limite de ca­rac­te­res

Ao operar seu próprio Mastodon server, você tem a liberdade de ajustar con­fi­gu­ra­ções que nor­mal­mente não estão dis­po­ní­veis em ser­vi­do­res públicos. Um exemplo é a per­so­na­li­za­ção do limite de ca­rac­te­res para posts. O padrão é de 500 ca­rac­te­res, mas você pode aumentar ou diminuir esse valor.

Pri­mei­ra­mente, altere para o usuário Mastodon no console. Em seguida, edite dois arquivos es­pe­cí­fi­cos.

Defina o valor desejado para o limite de ca­rac­te­res 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 al­te­ra­ções, os serviços do Mastodon devem ser rei­ni­ci­a­dos. Isso é feito como usuário root com o comando:

service mastodon-* restart
bash

Agora você pode escrever posts com um limite de 1000 ca­rac­te­res.

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

A função de moderação em “Con­fi­gu­ra­ções > Moderação” em seu servidor Mastodon permite que você, como ad­mi­nis­tra­dor, monitore e controle os conteúdos e ati­vi­da­des dos usuários em sua instância para garantir que as di­re­tri­zes da co­mu­ni­dade sejam seguidas e para remover conteúdos in­de­se­ja­dos.

Você tem a opção de bloquear, des­blo­quear ou excluir contas, domínios, endereços IP ou ser­vi­do­res de e-mail. Além disso, você pode moderar conteúdos pu­bli­ca­dos por usuários, removendo ou editando posts ina­de­qua­dos ou ofensivos.

Teste o VPS da IONOS grátis

Ex­pe­ri­mente seu vServer de graça agora - Teste um servidor virtual por 30 dias!

  • Recursos dedicados
  • Tráfego ilimitado
  • Consultor pessoal
Ir para o menu principal