VPS: Instalación de Mastodon
Esta guía fue creada con los siguientes productos:
(Los detalles pueden variar según los productos de diferentes proveedores, pero los conceptos principales permanecen igual)
Introducción
Mastodon es un software libre y de código abierto para ejecutar servicios de redes sociales autoalojados.
Tiene funciones de microblogging similares al servicio X (antes Twitter), que son ofrecidas por una gran cantidad de nodos independientes, conocidos como instancias,
cada una con su propio código de conducta, términos de servicio, política de privacidad, opciones de privacidad y políticas de moderación.
Esta guía se centra en la instalación en una distro basada en Debian. Ejemplos son Debian y Ubuntu. Esta guía varía según el sistema operativo que uses.
Requisitos del sistema
Si quieres montar una instancia de Mastodon en tu servidor, debes cumplir algunos requisitos:
- Dominio
- Servidor Linux
- Servidor de correo electrónico
Preparando tu sistema
Se recomienda desactivar el inicio de sesión por contraseña en SSH antes, ya que usar contraseña en servidores accesibles desde Internet es un riesgo de seguridad.
Puedes hacerlo en el panel web de tu servidor bajo Información -> Acceso y Seguridad -> Desactivar inicio de sesión por contraseña
Luego, actualiza tus paquetes con el siguiente comando:
apt update && apt upgrade -y
A continuación, instala las dependencias de Mastodon:
# Repositorios del 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
Después de instalar las dependencias para Mastodon, instala los paquetes necesarios del sistema con estos dos comandos:
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
Deja que se instalen los paquetes, esto puede tardar un poco. Luego configura yarn, que es el gestor de paquetes para Node.JS instalado antes:
corepack enable
yarn set version stable
Instalando Ruby
Crearemos un usuario distinto para facilitar la gestión de versiones de Ruby. Primero crea un usuario llamado mastodon, con inicio de sesión deshabilitado. Luego cambia a ese usuario con estos comandos:
# Puedes dejar los campos vacíos
adduser --disabled-login mastodon
su - mastodon
Ahora instalamos el gestor de Ruby rbenv
, que facilita manejar versiones de Ruby. Instálalo con estos 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
Cuando termines, instala Ruby y bundler con:
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.3
rbenv global 3.0.3
gem install bundler --no-document
Esto puede tardar, así que paciencia y aprovecha para tomar un té o café. Cuando termines, vuelve al usuario root con exit
.
Configurando PostgreSQL
Mastodon usa PostgreSQL como base de datos. Configúralo así:
sudo -u postgres psql
Dentro del prompt de PostgreSQL, ejecuta:
CREATE USER mastodon CREATEDB;
\q
Configurando Mastodon
Cambia otra vez al usuario mastodon:
su - mastodon
Descarga la versión más reciente de Mastodon con git:
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)
Ahora instala las últimas dependencias de Ruby y Javascript con estos comandos:
bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)
yarn install --pure-lockfile
Crea el archivo de configuración de Mastodon con:
RAILS_ENV=production bundle exec rake mastodon:setup
Si la configuración de la base de datos falla, entra a postgres con sudo -u postgres psql
y sigue esta documentación:
Luego vuelve al usuario root con exit
.
Configurando el servidor web
Aquí viene la parte más delicada. Primero crea un registro A y/o AAAA en tu DNS apuntando directamente a tu servidor. Alternativamente, puedes apuntar el registro raíz a tu servidor.
Luego copia y habilita la configuración del servidor web de Mastodon con estos comandos:
cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
Edita el archivo /etc/nginx/sites-available/mastodon
con un editor como vim o nano y cambia example.com por tu dominio.
Después, consigue un certificado SSL para tu dominio con este comando:
certbot --nginx -d <tu dominio>
Introduce tu dominio. Te pedirá varios datos. Al final te preguntará si quieres redirigir automáticamente las peticiones http a https, te recomendamos activarlo.
Creando un servicio para Mastodon
Por último, creamos un servicio de sistema para Mastodon. Es bastante sencillo.
Copia la configuración por defecto del servicio al directorio de servicios de tu distro con:
cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
Ahora habilita y arranca los servicios con estos comandos:
systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
Conclusión
¡Felicidades, has instalado y configurado Mastodon con éxito! Si tienes más preguntas o problemas, contacta con nuestro equipo de soporte, ¡están disponibles para ayudarte todos los días!