Redes sociales · 13 min read · Oct 13, 2025

Cómo instalar la red social Mastodon en Debian 11

Mastodon es una red social gratuita, descentralizada y de código abierto similar a Twitter. En Mastodon, los usuarios pueden seguirse entre sí y publicar mensajes, imágenes y videos. Pero a diferencia de Twitter, no hay un almacén central o autoridad para el contenido.

Con la arquitectura descentralizada, Mastodon opera en miles de servidores diferentes, cada uno administrado por varios miembros de la comunidad. Puedes crear tu servidor Mastodon bajo tu dominio. También puedes seguir a otros usuarios con diferentes dominios en otros servidores.

En este tutorial, instalarás Mastodon, una plataforma de microblogging descentralizada en un servidor Debian 11. Con esta guía, configurarás Mastodon con PostgreSQL como el servidor de base de datos y Nginx como un proxy inverso. Además, asegurarás la instalación de Mastodon a través de certificados SSL gratuitos de Letsencrypt.

Requisitos previos

Esta guía asume que tienes los siguientes requisitos:

  • Un servidor Debian 11 - este ejemplo utiliza el último servidor Debian 11 con el nombre de host ‘ mastodon-server ‘ y la dirección IP ‘ 192.168.5.40 ‘.
  • Un usuario no root con privilegios de administrador sudo/root.
  • Un nombre de dominio apuntado y resuelto a tu servidor Debian público - este ejemplo utiliza el subdominio ‘ mastodon.howtoforge.local ‘.

Cuando tengas esos requisitos previos, estás listo para proceder con la instalación de Mastodon.

Configuración de repositorios e instalación de dependencias

Mastodon es un software gratuito y de código abierto para ejecutar servicios de redes sociales autohospedados similares al servicio de Twitter. Está escrito principalmente en Ruby, especialmente con el marco web Ruby on Rails y JavaScript con Reac.js y el marco Redux.

En este primer paso, configurarás repositorios adicionales en tu sistema e instalarás las dependencias de paquetes para la instalación de Mastodon. Esto incluye paquetes como build-essentials para compilar Ruby, PostgreSQL para el servidor de base de datos, Nginx como servidor web y proxy inverso, la herramienta certbot para adquirir certificados SSL a través de Letsencrypt, y el servidor Redis que se utilizará para el almacenamiento de clave-valor y la gestión de sesiones para Mastodon.

Antes de comenzar, ejecuta el siguiente comando apt para instalar algunas dependencias básicas que se utilizarán para gestionar repositorios y paquetes.

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

Cuando se te pida, ingresa y para confirmar y presiona ENTER para continuar.

instalar paquetes básicos

A continuación, ejecuta el siguiente comando para agregar el repositorio de Node.js Nodesource. El paquete de Node.js aquí se utilizará para compilar activos estáticos de Mastodon. Y en el momento de escribir esto, el último Mastodon requería al menos Node.js v16.

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

Luego recibirás una salida como la siguiente.

agregar repositorio nodejs

Después de agregar el repositorio de Node.js, configurarás el repositorio para el gestor de paquetes Yarn. Este repositorio proporciona el paquete Yarn que se utilizará para instalar dependencias de JavaScript.

Ejecuta el siguiente comando para agregar la clave GPG y el repositorio del gestor de paquetes 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

El tercer repositorio que agregarás es el repositorio de PostgreSQL. Ejecuta el siguiente comando para agregar el repositorio de PostgreSQL a tu 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

agregar repositorio yarn postgresql

Con los repositorios de Node.js, Yarn y PostgreSQL agregados, ejecuta el siguiente comando apt para actualizar tu índice de paquetes.

sudo apt update

Recibirás una salida como esta.

actualizar y refrescar repositorio

Por último, ejecuta el siguiente comando apt para instalar las dependencias de paquetes que se utilizarán para instalar 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

Ingresa y cuando se te pida confirmación y presiona ENTER para continuar.

instalar dependencias

Con esto, has instalado las dependencias básicas para Mastodon y agregado algunos repositorios de terceros a tu sistema Debian.

En los siguientes pasos, instalarás Ruby a través de rbenv - El gestor de versiones de Ruby.

Instalando rbenv y Ruby

rbenv es una herramienta de gestión de versiones para el lenguaje de programación Ruby en sistemas similares a Unix. Es útil para cambiar entre múltiples versiones de Ruby en la misma máquina y para asegurarte de que cada proyecto en el que trabajas siempre se ejecute en la versión correcta de Ruby.

Para comenzar, ejecuta el siguiente comando para crear un nuevo usuario ‘ mastodon ‘ en tu sistema. Este nuevo usuario se utilizará para ejecutar servicios relacionados con Mastodon, y el código fuente de Mastodon se almacenará en el directorio personal de este usuario.

sudo adduser --disabled-login mastodon

Durante el proceso, se te pedirá que configures los detalles del usuario. Ingresa tu información de usuario y luego ingresa y para confirmar y presiona ENTER.

agregar nuevo usuario

Después de que se cree el usuario ‘ mastodon ‘, ejecuta el siguiente comando para iniciar sesión.

su - mastodon

A continuación, descarga el código fuente de rbenv a través del comando git a continuación.

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

Luego ejecuta el siguiente comando para instalar rbenv en tu sistema.

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

Recibirás una salida como esta después de que se instale rbenv.

descargar e instalar rbenv

A continuación, ejecuta el siguiente comando para agregar el directorio ‘bin’ de rbenv a la ruta del sistema y cargar rbenv cada vez que el usuario inicie sesión en una nueva sesión.

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

Ahora recarga tu shell actual recargando el archivo de configuración bashrc. Luego ingresa el comando ‘rbenv’ en tu shell y presiona TAB.

source ~/.bashrc  
rbenv TAB

En la siguiente captura de pantalla, rbenv está instalado y ahora puedes ejecutar el comando rbenv para instalar Ruby.

Antes de instalar Ruby, necesitas instalar el plugin de rbenv llamado ‘ruby-build’. Este plugin proporciona herramientas de línea de comandos que simplifican la instalación de Ruby desde el código fuente, especialmente para sistemas operativos similares a UNIX.

Descarga el ‘ruby-build’ plugin a través del comando git.

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

descargar ruby_plugin

Después de agregar el plugin ‘ruby-build’, ejecuta el siguiente comando para instalar Ruby v3.0.4, que es necesario para la versión actual de Mastodon.

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4

Después de que finalice la instalación, recibirás una salida similar a esta.

instalar ruby

Ahora ejecuta el siguiente comando para configurar la versión predeterminada de Ruby a 3.0.4. Luego verifica usando el comando ruby como se muestra a continuación. Verás que Ruby v3.0.4 está instalado en tu sistema Debian.

rbenv global 3.0.4  
ruby --version

verificar ruby

Por último, debes instalar un bundler como tu gestión de paquetes de Ruby. Ejecuta el comando gem a continuación para instalar ‘bundler’.

gem install bundler --no-document

En este punto, has terminado la instalación de las dependencias del paquete de Mastodon en tu sistema. Has instalado Ruby 3.0.4 a través del gestor de versiones de Ruby rbenv y has instalado bundler, la herramienta de gestión de paquetes de Ruby.

En los siguientes pasos, configurarás el usuario de PostgreSQL que se utilizará para la instalación de Mastodon.

Configuración del servidor de base de datos PostgreSQL

En este paso, verificarás el servicio de PostgreSQL para asegurarte de que el servicio esté habilitado y en ejecución. Luego, crearás un nuevo usuario/rol de PostgreSQL ‘mastodon’ a través de la consola de PostgreSQL.

Asegúrate de ejecutar estos comandos a continuación con privilegios de usuario root.

Antes de comenzar, ejecuta el siguiente comando systemctl para asegurarte de que el servicio de PostgreSQL esté en funcionamiento y habilitado.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

Deberías recibir una salida similar a esta.

verificar postgresql

Con PostgreSQL en funcionamiento, ejecuta el siguiente comando para iniciar sesión en la consola de PostgreSQL.

cd /etc/postgresql  
sudo -u postgres psql

Después de iniciar sesión en la consola de PostgreSQL, ejecuta la siguiente consulta de PostgreSQL para crear un nuevo rol/usuario ‘ mastodon ‘. Además, asegúrate de cambiar la contraseña predeterminada por una nueva contraseña fuerte.

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

A continuación, ejecuta la siguiente consulta para asegurarte de que el nuevo usuario/rol de PostgreSQL se haya creado. Luego ingresa ‘ q ‘ para salir de la consola de PostgreSQL.


du  

d

La salida a continuación te muestra que el nuevo usuario/rol de PostgreSQL ‘mastodon’ se ha creado.

configurar rol/usuario postgresql

Con el usuario/rol de PostgreSQL creado, estarás listo para instalar Mastodon en tu sistema Debian.

Instalando Mastodon

Instalarás y configurarás Mastodon en tu servidor Debian en este paso. También instalarás las dependencias de Ruby y JavaScript para Mastodon. Y por último, comenzarás a configurar Mastodon para tu implementación, esto incluye la configuración del dominio, la configuración de la base de datos y redis, la configuración de SMTP, y también la configuración del usuario administrador de Mastodon.

Antes de comenzar, inicia sesión en el usuario ‘mastodon’ a través del siguiente comando.

su - mastodon

Ahora descarga el código fuente de Mastodon a través del comando git y cambia la rama a la última versión estable de Mastodon. En el momento de escribir esto, la versión estable de Mastodon es 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)

descargar mastodon

A continuación, ejecuta el siguiente comando para configurar la implementación de Mastodon e instalar las dependencias de Ruby.

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

La instalación de las dependencias de Ruby de Mastodon tomará tiempo. A continuación, se muestra una salida similar que recibirás en tu terminal.

configurar implementación e instalar dependencias

Después de haber instalado las dependencias de Ruby de Mastodon, ejecuta el siguiente comando yarn para instalar las dependencias de JavaScript para Mastodon.

yarn install --pure-lockfile

Luego recibirás una salida similar a esta.

instalar dependencias de javascript

Con las dependencias de Ruby y JavaScript instaladas, configurarás tu instalación de Mastodon.

Ejecuta el siguiente comando para configurar Mastodon para el entorno de producción.

RAILS_ENV=production bundle exec rake mastodon:setup

Se te preguntará sobre algunas configuraciones de Mastodon.

  • ¿El nombre de dominio de Mastodon? Este ejemplo utiliza el dominio ‘mastodon.howtoforge.local’.
  • ¿Habilitar el modo de un solo usuario? Ingresa y.
  • ¿Usar Docker para ejecutar Mastodon? Ingresa n para no.
  • Ingresa el usuario y la contraseña de PostgreSQL y asegúrate de recibir el mensaje ‘¡La configuración de la base de datos funciona!’.
  • ¿Configuración de Redis? déjalo como predeterminado presionando ENTER.
  • ¿Habilitar la carga de archivos en la nube? Ingresa n para no.
  • ¿Permitir el envío de correos electrónicos desde localhost? Ingresa y para sí o n para no. Esto depende de tu entorno, también puedes usar un servidor SMTP de terceros.
  • ¿Guardar la configuración? Ingresa y para sí.
  • Para la creación de la base de datos. Ingresa y para crear la base de datos de Mastodon.
  • Ingresa y para compilar activos y archivos estáticos para Mastodon.
  • ¿Configurar usuario administrador? Ingresa el nuevo usuario administrador y el correo electrónico para tu instalación de Mastodon. Y luego recibirás la contraseña generada automáticamente en tu pantalla.

Configuración de Mastodon para el nombre de dominio, PostgreSQL, servidor Redis y servidor de correo SMTP.

configurar mastodon

Mastodon genera activos y archivos estáticos.

generar activos

El usuario administrador de mastodon se crea y la contraseña también se genera en la pantalla del terminal.

En este punto, has terminado la instalación y configuración de Mastodon en Debian 11. En los siguientes pasos, configurarás Mastodon como un servicio systemd.

Ejecutando Mastodon como servicio Systemd

Por defecto, Mastodon proporciona una muestra de archivos de servicio systemd que están disponibles en el directorio ‘ /home/mastodon/live/dist/ ‘.

Ejecuta el siguiente comando para copiar los archivos de servicio de Mastodon al directorio ‘ /etc/systemd/system ‘.

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

Ahora recarga el gestor systemd para aplicar los cambios en el systemd.

sudo systemctl daemon-reload

Después de eso, inicia y habilita los servicios de Mastodon a través del comando systemctl a continuación.

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

configurar mastodon systemd

Los servicios de Mastodon deberían estar ahora en funcionamiento y habilitados. Verifica usando el siguiente comando systemctl.

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

Recibirás una salida similar a las siguientes capturas de pantalla.

El servicio mastodon-web está en funcionamiento y habilitado.

servicio mastodon-web

El mastodon-sidekiq también está en funcionamiento y habilitado.

servicio sidekiq de mastodon

El servicio de transmisión de mastodon también está en funcionamiento y habilitado.

servicio de transmisión de mastodon

Con todos los servicios de Mastodon en funcionamiento y habilitados, a continuación configurarás Nginx como un proxy inverso para Mastodon y generarás SSL Letsencrypt.

Configuración de Nginx como proxy inverso

En este paso, configurarás el servidor web Nginx como el proxy inverso para Mastodon. También generarás SSL Letsencrypt a través del comando certbot y asegurarás Mastodon a través de una conexión segura HTTPS.

Copia la configuración de bloque de servidor Nginx predeterminada de Mastodon a ‘/etc/nginx/sites-available/mastodon’. Luego activa la nueva configuración de bloque 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

A continuación, abre el archivo de configuración del bloque de servidor de Mastodon ‘/etc/nginx/sites-available/mastodon’ usando el siguiente comando del editor nano.

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

Cambia el nombre de dominio predeterminado por tu dominio de Mastodon. En este ejemplo, el dominio para Mastodon es ‘ mastodon.howtoforge.local ‘.

cambiar dominio

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para generar certificados SSL de Letsencrypt. Asegúrate de cambiar el nombre de dominio por tu dominio.

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

Después de que se generen los certificados SSL, ejecuta el siguiente comando para verificar la configuración de Nginx. Si obtienes un mensaje de salida como ‘test successful - syntax ok ‘, eso significa que tienes la configuración adecuada. Luego, reinicia el servicio Nginx para aplicar los nuevos cambios.

sudo nginx -t  
sudo systemctl restart nginx

verificar configuración de nginx

Por último, ejecuta el siguiente comando systemctl para verificar el servicio Nginx y asegurarte de que el servicio esté en funcionamiento y habilitado.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Recibirás una salida similar a esta - El servicio Nginx está actualmente en funcionamiento y habilitado. El servicio Nginx se ejecutará automáticamente al iniciar.

verificar nginx

Con toda la configuración completada, tu Mastodon ahora es accesible a través del navegador web.

Accediendo a la instalación de Mastodon

Abre tu navegador web y visita el nombre de dominio de tu instalación de Mastodon (es decir: https://mastodon.howtoforge.local/). Ahora verás la página de inicio predeterminada de Mastodon.

página de inicio de mastodon

Haz clic en el botón ‘ Iniciar sesión ‘ para verificar tu usuario.

Ahora ingresa tu usuario administrador y la contraseña generada para Mastodon. Luego haz clic en Iniciar sesión.

página de inicio de sesión de mastodon

Luego verás la página de inicio del usuario de Mastodon.

tablero de usuario de mastodon

A continuación, haz clic en el menú Preferencias para acceder a la página de preferencias del usuario. Luego, haz clic en el menú Administración en el lado izquierdo. Y deberías obtener la página de administración de Mastodon a continuación.

Puedes ver los detalles de la pila de software que estás utilizando actualmente en tu instalación de Mastodon.

administración de mastodon

Conclusión

¡Felicidades! Ahora has terminado la instalación de la plataforma de microblogging Mastodon en un servidor Debian 11. Has instalado Mastodon con PostgreSQL como el servidor de base de datos y Nginx como el proxy inverso. También has asegurado la implementación de Mastodon a través de conexiones HTTPS seguras.

Después de toda la instalación, ahora puedes configurar la regla de Mastodon para el soporte de federación. También puedes agregar una capa de seguridad adicional a tu instalación de Mastodon.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.