Guía paso a paso para instalar Mastodon en un servidor Ubuntu 24.04
10:53, 28.07.2026
Descubre las características más destacadas de Mastodon
Mastodon ha ganado popularidad como plataforma de redes sociales descentralizada y autohospedada, que ofrece a los usuarios y administradores la posibilidad de crear una comunidad en línea abierta y centrada en la privacidad.
En esta guía, te guiaremos a través del proceso de instalación de Mastodon en un servidor Ubuntu 24.04, desde la configuración de la base de datos hasta la configuración de Nginx y la protección de tu servidor con HTTPS.
Características de Mastodon
- Control total sobre tus datos.
- Descentralización, ya que Mastodon no está controlado por una única entidad.
- Autonomía de las instancias de Mastodon.
- Diseño web adaptativo e intuitivo.
- Gratuito y de código abierto.
- Compatibilidad con las aplicaciones móviles oficiales de Mastodon para iOS y Android.
Lo que necesitarás antes de empezar (requisitos previos)
Antes de empezar, asegúrate de que dispones de lo siguiente:
- Un servidor Ubuntu 24.04 con acceso de root y al menos 2 GB de RAM.
- Un nombre de dominio con el DNS apuntando a la dirección IP de tu servidor.
- Un servicio SMTP.
- Certificados SSL (en esta guía utilizaremos Let’s Encrypt).
- Conocimientos básicos de los comandos de terminal.
Paso 1: Configura tu base de datos PostgreSQL como un profesional
Inicia sesión en tu servidor a través de SSH.
Añade el repositorio upstream:
echo "deb [signed-by=/etc/apt/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
Transfiere la clave pública de PostgreSQL:
sudo mkdir -p /etc/apt/keyrings/
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/keyrings/postgresql.asc
Actualiza el índice del repositorio e instala PostgreSQL:
sudo apt update
sudo apt upgrade
sudo apt install -y postgresql postgresql-contrib
Crear una base de datos y un usuario de Mastodon:
sudo -u postgres psql CREATE USER mastodon WITH CREATEDB PASSWORD 'securepassword'; CREATE DATABASE mastodon_production OWNER mastodon; \q
Asegúrate de sustituir 'securepassword' por una contraseña segura.
Paso 2: Instalar Ruby en Ubuntu 24.04
Dado que el repositorio de Ubuntu 24.04 incluye el paquete ruby y Mastodon requiere Ruby 3.0 - 3.2, puedes ejecutar el siguiente comando:
sudo apt install ruby ruby-dev
Comprueba el número de versión de Ruby con el siguiente comando:
ruby -v
El resultado debería ser similar a este:
ruby 3.2.3 (18/01/2024, revisión 52bb2ac0a6) [x86_64-linux-gnu]
Paso 3: Descarga Mastodon y prepáralo para su configuración
Crea un usuario de Mastodon:
sudo adduser mastodon --system --group --disabled-login
Instala la herramienta git:
sudo apt install git
Clona el repositorio de código de Mastodon desde GitHub con el siguiente comando:
git clone https://github.com/tootsuite/mastodon.git
Crea el directorio /var/www/ (omite este paso si ya existe):
sudo mkdir -p /var/www/
Mueve el directorio mastodon a /var/www/:
sudo mv mastodon/ /var/www/
Establece mastodon como propietario:
sudo chown mastodon:mastodon /var/www/mastodon/ -R
Descarga la última versión estable de Mastodon:
cd /var/www/mastodon/
sudo -u mastodon git checkout v4.2.8
Instala bundler: el gestor de dependencias de Ruby:
sudo gem install bundler
Instala Node.js v18:
curl -sL https://deb.nodesource.com/setup_18.x | sudo bash -
sudo apt install nodejs
Instala Yarn (un gestor de paquetes de Node.js):
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo apt update
sudo apt -y install yarn
Instala los paquetes necesarios para compilar el código fuente:
sudo apt install redis-server optipng pngquant jhead jpegoptim gifsicle nodejs imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file 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 libidn11-dev libicu-dev libjemalloc-dev
Instala los paquetes de dependencias para Mastodon:
sudo -u mastodon bundle config deployment 'true'
sudo -u mastodon bundle config without 'development test'
sudo -u mastodon bundle install -j$(getconf _NPROCESSORS_ONLN)
sudo -u mastodon yarn install
Ejecuta el asistente de configuración:
sudo -u mastodon RAILS_ENV=production bundle exec rake mastodon:setup
En primer lugar, te hará una serie de preguntas.
- Nombre de dominio: Elige un nombre de dominio para tu instancia de Mastodon.
- Habilitar el modo de usuario único: Habilita el modo de usuario único si quieres que los visitantes puedan registrarse en tu instancia de Mastodon.
- ¿Utilizas Docker para ejecutar Mastodon?: No.
- Host de PostgreSQL: 127.0.0.1
- Puerto de PostgreSQL: 5432
- Base de datos de PostgreSQL: mastodon
- Usuario de PostgreSQL: mastodon
- Contraseña del usuario de PostgreSQL: La contraseña del usuario «mastodon» se creó en el paso 1.
- Host de Redis: 127.0.0.1
- Puerto de Redis: 6379
- Contraseña de Redis: Pulsa Intro.
- ¿Quieres almacenar los archivos subidos en la nube? Si quieres almacenar los archivos en tu propio servidor, selecciona «No».
- ¿Quieres enviar correos electrónicos desde localhost? Si este es tu servidor de correo o has configurado un relé SMTP, puedes seleccionar «Sí»; de lo contrario, introduce tus credenciales de inicio de sesión en el servidor SMTP.
- Dirección de correo electrónico «de» la que se enviarán los correos electrónicos: Pulsa Intro para utilizar la dirección de correo electrónico de remitente predeterminada.
- Enviar un correo electrónico de prueba con esta configuración ahora mismo. Selecciona «Sí» para enviar un correo electrónico de prueba.
- Enviar un correo electrónico de prueba a: Introduce la dirección de correo electrónico de prueba.
- ¿Guardar la configuración? Selecciona «Sí».
A continuación, pulsa «Sí» para configurar la base de datos. Ahora que la configuración está guardada, hay que cargar el esquema de la base de datos. A continuación, selecciona «Sí» para compilar los recursos CSS/JS. Por último, compila los recursos CSS/JS.
Ahora puedes crear un usuario administrador.
Paso 4: Inicia Mastodon y pon en marcha tu instancia.
Copia las plantillas de servicio de systemd al directorio /etc/systemd/system/:
sudo cp /var/www/mastodon/dist/mastodon.service /etc/systemd/system/
Cambia el directorio a /var/www/mastodon/:
sudo sed -i 's/home\/mastodon\/live/var\/www\/mastodon/g' /etc/systemd/system/mastodon-.service
Cambia /home/mastodon/.rbenv/shims/bundle por /usr/local/bin/bundle:
sudo sed -i 's/home\/mastodon\/.rbenv\/shims/usr\/local\/bin/g' /etc/systemd/system/mastodon-.service
Recarga systemd para activar los cambios:
sudo systemctl daemon-reload
Inicia los servicios de systemd:
sudo systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
Comprueba el estado:
sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming
Ejecuta el siguiente comando para comprobar si Mastodon está listening en el puerto 3000:
sudo ss -lnpt | grep 3000
Si el puerto 3000 ya está ocupado por otro proceso, debes editar el archivo /etc/systemd/system/mastodon-web.service:
sudo nano /etc/systemd/system/mastodon-web.service
Cambia el número de puerto a 3001, recarga systemd y reinicia Mastodon:
sudo systemctl daemon-reload
sudo systemctl restart mastodon-web
Paso 5: Configuración avanzada del proxy inverso de Nginx para Mastodon
Instala el servidor web Nginx desde el repositorio de software de Ubuntu 24.04:
sudo apt install nginx
Copia el archivo de configuración de plantilla de Nginx:
sudo cp /var/www/mastodon/dist/nginx.conf /etc/nginx/conf.d/mastodon.conf
Edita el nuevo archivo:
sudo nano /etc/nginx/conf.d/mastodon.conf
Busca la línea server_name example.com en el bloque de servidor del puerto 80 y en el del puerto 443. Cambia el nombre del servidor y añade un registro A de DNS para el nombre de dominio:
server_name social.example.com;
Busca la siguiente línea en el bloque de servidor del puerto 80 y en el del puerto 443:
root /home/mastodon/live/public;
Cámbiala por:
root /var/www/mastodon/public;
Busca las dos líneas siguientes:
# ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Cámbialas por lo siguiente:
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
Guarda y cierra el archivo. Crea el directorio de caché:
sudo mkdir -p /var/nginx/cache/
Comprueba la configuración de Nginx:
sudo nginx -t
Recarga Nginx para que los cambios surtan efecto:
sudo systemctl reload nginx
Paso 6: Protege tu sitio de Mastodon con HTTPS
Utiliza Let’s Encrypt para proteger tu sitio con HTTPS.
Instala Certbot:
sudo apt install certbot python3-certbot-nginx
Obtén un certificado SSL:
sudo certbot --nginx -d example.com
Configura la renovación automática:
sudo certbot renew --dry-run
Copia de seguridad y restauración de tu base de datos de Mastodon
Realizar copias de seguridad periódicas garantiza la seguridad de los datos. A continuación te mostramos una forma sencilla de hacer una copia de seguridad.
Haz una copia de seguridad de tu base de datos:
sudo -u postgres pg_dump mastodon_production > mastodon_backup.sql
Restaura desde una copia de seguridad:
sudo -u postgres psql mastodon_production < mastodon_backup.sql
Resuelve los errores de ejecución de Mastodon como un profesional
Basándonos en nuestra experiencia en la resolución de errores de Mastodon, prueba lo siguiente para solucionarlos:
- Comprueba los registros con journalctl -u mastodon o tail -f log/production.log.
- Reinicia los servicios: Reinicia Nginx o los servicios de Mastodon si es necesario.
- Actualiza las dependencias: Mantén Ruby, PostgreSQL y Mastodon actualizados.
Actualización de PostgreSQL para Mastodon
Si necesitas actualizar PostgreSQL, asegúrate de hacer una copia de seguridad de tu base de datos antes de continuar:
pg_dump -U mastodon mastodon_production > mastodon_backup.sql
A continuación, sigue las instrucciones de actualización de PostgreSQL y vuelve a importar los datos después.
Conclusión
¡Enhorabuena! Has instalado y configurado con éxito Mastodon en tu servidor Ubuntu 24.04. Ahora que tu instancia está en funcionamiento, estás listo para dar la bienvenida a los usuarios a una nueva experiencia social descentralizada. Asegúrate de supervisar tu servidor, mantenerlo actualizado y realizar copias de seguridad periódicas de tu base de datos para garantizar un funcionamiento fluido y seguro.