Ser dueño de tu cuenta social suena bien hasta que recuerdas que vive en el servidor de otro, con sus normas y su disponibilidad. Tener tu propia instancia de Mastodon lo arregla: tu usuario es @you@your-domain y nadie puede cerrarlo salvo tú. El problema es que Mastodon no es una aplicación pequeña. Conviene saber en qué te metes.
Para quién es
- Una instancia de un solo usuario para ti o para la cuenta oficial de tu empresa.
- Una comunidad pequeña de amigos o un equipo de proyecto: decenas de personas, no miles.
Para algo mayor estás gestionando un servicio con tareas de moderación, denuncias e infraestructura de verdad. Esa es otra conversación.
Lo que necesita de verdad
Mastodon ejecuta varios procesos a la vez: la app web en Rails, workers de Sidekiq en segundo plano, un servidor de streaming, PostgreSQL y Redis. Por la federación, tu servidor sigue trayendo publicaciones y medios de otros servidores incluso mientras duermes.
| Instancia | Plan |
|---|---|
| Un usuario, pocos seguidos | Small-IP — 2 vCPU, 4 GB, $16/mes |
| Comunidad pequeña, federación activa | Medium-IP — 4 vCPU, 6 GB, $20/mes |
Con 4 GB funciona, pero justo; las colas de Sidekiq se atascan cuando una publicación popular que sigues recibe miles de respuestas. 6 GB te dan margen. El otro límite es el disco: mira la sección de medios.
También necesitas un dominio y una IP dedicada: otros servidores entregan al tuyo por el puerto 443.
Instalación con Docker
El repositorio oficial incluye un docker-compose.yml. En un servidor Ubuntu 24.04 recién instalado con Docker instalado:
git clone https://github.com/mastodon/mastodon.git
cd mastodon
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
touch .env.production
docker compose run --rm -v $(pwd)/.env.production:/opt/mastodon/.env.production \
web bundle exec rake mastodon:setup
docker compose up -d
La tarea de configuración pregunta tu dominio, los ajustes de base de datos y Redis (los valores por defecto encajan con el archivo compose), el correo y la primera cuenta de administrador. Todo se escribe en .env.production. Lee las notas de la versión que hayas elegido: los pasos cambian de vez en cuando entre versiones mayores.
Mastodon trae una plantilla de nginx en dist/nginx.conf. Cópiala a /etc/nginx/sites-available/, cambia el dominio y obtén un certificado con certbot. Nuestras guías de proxy inverso y de dominio cubren ambas cosas.
Correo: usa un relay
Mastodon envía correos de confirmación y de restablecimiento de contraseña. Los puertos 25 y 465 están cerrados en nuestros servidores, así que apunta Mastodon a un proveedor externo de correo transaccional por el puerto 587:
SMTP_SERVER=smtp.your-provider.example
SMTP_PORT=587
SMTP_LOGIN=apikey
SMTP_PASSWORD=your-smtp-password
SMTP_FROM_ADDRESS=notifications@your-domain.example
Sinceramente, querrías un relay de todos modos. El correo de una IP de servidor recién estrenada suele acabar en spam; un relay tiene la reputación que tú aún no tienes.
Medios: el devorador de disco
Cada imagen y cada vídeo de las cuentas que ve tu servidor se guarda en caché localmente. En una instancia activa son gigabytes por semana. Limpia los medios remotos antiguos de forma programada:
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
Ponlo en un cron diario. Si tu instancia crece, mueve los medios a un almacenamiento de objetos compatible con S3 con los ajustes S3_* de .env.production; entonces el disco del VPS solo guarda la base de datos.
Mantenimiento
- Actualizaciones: trae la nueva etiqueta,
docker compose pull, ejecuta las migraciones según las notas de la versión y reinicia. No te saltes versiones mayores. - Copias: haz dump de PostgreSQL y guarda bien
.env.production; sin sus secretos, la restauración no funcionará. Nuestra guía de restic cubre las copias fuera del servidor, y Managed Backups añade puntos de restauración diarios de todo el servidor. - El dominio es para siempre. Va incrustado en la dirección de cada cuenta del fediverso. Elígelo antes de crear la primera cuenta.
¿Buscas algo más ligero para el chat de un equipo? Un servidor de Matrix quizá encaje mejor.
Comentarios
Aún no hay comentarios. Sé el primero.