VPS: Instalação do Mastodon
Este guia foi criado com os seguintes produtos:
(Os detalhes podem variar com produtos de diferentes fornecedores, mas os conceitos principais permanecem os mesmos)
Introdução
Mastodon é um software livre e open-source para rodar serviços de redes sociais autogeridas.
Ele tem funcionalidades de microblogging similares ao serviço X (antigo Twitter), oferecidas por uma grande quantidade de nós independentes, conhecidos como instâncias,
cada uma com seu próprio código de conduta, termos de serviço, política de privacidade, opções de privacidade e políticas de moderação.
Este guia foca na instalação em uma distro baseada em Debian. Exemplos são Debian e Ubuntu. O guia varia dependendo do sistema operacional que você estiver usando.
Requisitos do sistema
Se você quer configurar uma instância Mastodon no seu servidor, precisa atender alguns pré-requisitos:
- Domínio
- Servidor Linux
- Servidor de email
Preparando seu sistema
É recomendado que você desative o login por senha no SSH antes, pois usar login por senha em servidores acessíveis pela internet é um risco de segurança.
Você pode fazer isso no painel web do seu servidor em Informação -> Acesso & Segurança -> Desativar login por senha
Depois disso, atualize seus pacotes com o comando:
apt update && apt upgrade -y
Agora você precisa instalar as dependências do Mastodon:
# Repositórios do sistema
apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates
# Node.JS
curl -sL https://deb.nodesource.com/setup_16.x | 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
Depois de instalar as dependências do Mastodon, podemos instalar os pacotes necessários do sistema. Faça isso com os dois comandos abaixo:
apt update
apt install -y \
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 redis-server redis-tools postgresql postgresql-contrib \
certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev
Deixe os pacotes instalarem, isso pode levar um tempo. Depois disso, configure o yarn, que é o gerenciador de pacotes para o Node.JS instalado anteriormente:
corepack enable
yarn set version stable
Instalando Ruby
Vamos criar um usuário separado, pois facilita gerenciar as versões do Ruby. Primeiro crie um usuário chamado mastodon, com login desativado. Depois, entre no usuário mastodon com os comandos:
# Você pode deixar os campos vazios
adduser --disabled-login mastodon
su - mastodon
Agora instalamos o gerenciador Ruby rbenv
, que facilita o gerenciamento das versões do Ruby. Use os comandos:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
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
Depois de rodar esses comandos, instale o Ruby e o bundler com:
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.3
rbenv global 3.0.3
gem install bundler --no-document
Isso pode demorar um pouco, então aproveite para pegar um café ou chá enquanto espera. Quando terminar, volte para o usuário root com o comando exit
.
Configurando o PostgreSQL
Mastodon usa PostgreSQL como sistema de banco de dados. Configure com:
sudo -u postgres psql
No prompt do PostgreSQL, digite:
CREATE USER mastodon CREATEDB;
\q
Configurando o Mastodon
Agora volte para o usuário mastodon:
su - mastodon
Use o git para baixar a versão mais recente do Mastodon com esses comandos:
git clone https://github.com/tootsuite/mastodon.git live && cd live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
Agora instale as últimas dependências para Ruby e Javascript:
bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)
yarn install --pure-lockfile
Crie o arquivo de configuração do Mastodon com:
RAILS_ENV=production bundle exec rake mastodon:setup
Se a configuração do banco de dados falhar, faça login no postgres com sudo -u postgres psql
e siga esta documentação:
Depois, volte para o usuário root com exit
.
Configurando o servidor web
Agora vem a parte mais delicada: configurar o servidor web. Primeiro, crie um registro A e/ou AAAA no seu DNS apontando diretamente para seu servidor. Alternativamente, você pode apontar o registro raiz para seu servidor.
Depois, copie e ative a configuração do servidor web do Mastodon com:
cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
Edite o arquivo /etc/nginx/sites-available/mastodon
com um editor de texto como vim ou nano e troque example.com pelo seu domínio.
Agora, adquira um certificado SSL para seu domínio facilmente com:
certbot --nginx -d <seu domínio>
Digite seu domínio. Você será perguntado sobre algumas credenciais. No final, será perguntado se deseja redirecionar automaticamente requisições http para https — recomendamos ativar essa opção.
Criando um serviço Mastodon
Por fim, vamos criar um serviço do sistema para o Mastodon. É bem simples. Copie a configuração padrão do serviço para o diretório de serviços da sua distro:
cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
Agora habilite e inicie os novos serviços com:
systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
Conclusão
Parabéns, você instalou e configurou o Mastodon com sucesso! Se tiver dúvidas ou problemas, nosso time de suporte está disponível todos os dias para te ajudar!