Guía paso a paso para instalar Mastodon en un servidor Ubuntu 24.04

watch 8m, 11s
views 2

10:53, 28.07.2026

Contenido del artículo
arrow

  • Descubre las características más destacadas de Mastodon
  • Características de Mastodon
  • Lo que necesitarás antes de empezar (requisitos previos)
  • Paso 1: Configura tu base de datos PostgreSQL como un profesional
  • Paso 2: Instalar Ruby en Ubuntu 24.04
  • Paso 3: Descarga Mastodon y prepáralo para su configuración
  • Paso 4: Inicia Mastodon y pon en marcha tu instancia.
  • Paso 5: Configuración avanzada del proxy inverso de Nginx para Mastodon
  • Paso 6: Protege tu sitio de Mastodon con HTTPS
  • Copia de seguridad y restauración de tu base de datos de Mastodon
  • Resuelve los errores de ejecución de Mastodon como un profesional
  • Actualización de PostgreSQL para Mastodon
  • Conclusión

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.

Compartir

¿Te ha resultado útil este artículo?

Ofertas populares de VPS

-22.2%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 4096 HK Linux

33 /mes

/mes

Facturado cada 12 meses

-9.5%

CPU
CPU
4 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-wKVM-SSD 8192 Windows

121.5 /mes

/mes

Facturado cada 12 meses

-13.1%

CPU
CPU
2 Xeon Cores
RAM
RAM
512 MB
Space
Space
10 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 512 HK Linux

7 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
12 TB
KVM-SSD 32768 Metered Linux

150 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 2048 Linux

8.3 /mes

/mes

Facturado cada 12 meses

-5.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 2048 Windows

11.88 /mes

/mes

Facturado cada 12 meses

-20.8%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
10 TB
wKVM-SSD 16384 Metered Windows

100 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-KVM-SSD 8192 Linux

115.5 /mes

/mes

Facturado cada 12 meses

-20.5%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
10 TB
KVM-SSD 16384 Metered Linux

95 /mes

/mes

Facturado cada 12 meses

-15.6%

CPU
CPU
2 Xeon Cores
RAM
RAM
512 MB
Space
Space
10 GB SSD
Bandwidth
Bandwidth
1 TB
KVM-SSD 512 Metered Linux

5.33 /mes

/mes

Facturado cada 12 meses

Otros artículos sobre este tema

cookie

¿Acepta las cookies y la política de privacidad?

Utilizamos cookies para asegurar que damos la mejor experiencia en nuestro sitio web. Si continúa sin cambiar la configuración, asumiremos que acepta recibir todas las cookies del sitio web HostZealot.