−25%

en Windows con pago anual, hasta el 31/10. Ver planes

EQVPS

VPS para Mastodon: tu propia instancia pequeña

Aloja una instancia pequeña de Mastodon en un VPS: RAM y disco sin rodeos, instalación con Docker, correo por un relay SMTP y limpieza de medios para que el disco no se llene.

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

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.

InstanciaPlan
Un usuario, pocos seguidosSmall-IP — 2 vCPU, 4 GB, $16/mes
Comunidad pequeña, federación activaMedium-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

¿Buscas algo más ligero para el chat de un equipo? Un servidor de Matrix quizá encaje mejor.

¿Listo para desplegar? Paga en cripto, sin KYC — en línea en aproximadamente un minuto.

Desplegar →

Preguntas frecuentes

¿Cuánta RAM necesita una instancia de Mastodon?

Para una instancia de un usuario o pequeña, 4 GB es el mínimo realista y 6 GB lo cómodo. Mastodon ejecuta a la vez un proceso web, workers de Sidekiq, PostgreSQL y Redis, y la federación mantiene ocupado a Sidekiq aunque nadie publique.

¿Por qué Mastodon necesita una IP dedicada?

Otros servidores entregan publicaciones al tuyo por HTTPS en el puerto 443, y la gente abre tu instancia en el navegador. Eso requiere 443 entrante en tu propia IP, algo que los planes NAT no tienen.

¿Cómo envío correo desde Mastodon?

Con un proveedor externo de correo transaccional por SMTP en el puerto 587. Los puertos 25 y 465 están cerrados en nuestros servidores, y un relay además te da mucha mejor entregabilidad que una IP nueva.

¿Por qué se llena tan rápido el disco?

Tu servidor guarda en caché los medios de todas las cuentas que ve. Ejecuta 'tootctl media remove --days 7' de forma programada o mueve los medios a un almacenamiento de objetos compatible con S3.

¿Puedo cambiar el dominio más adelante?

No. Tu dominio forma parte de la identidad de cada cuenta en todo el fediverso. Elígelo con cuidado antes de crear la primera cuenta.

Comentarios

Aún no hay comentarios. Sé el primero.

Deja un comentario

Los comentarios se moderan antes de aparecer.