Autoalojar Mastodon con un presupuesto ajustado puede parecer arriesgado, pero con un VPS a 5 €, algunas optimizaciones y un método estructurado, es totalmente posible disponer de una red social descentralizada estable. Este artículo explora cada paso, desde los prerrequisitos hasta la puesta en producción segura, pasando por Docker, la configuración SSL y el mantenimiento diario.
Somaire
En resumen
🔑 En un **VPS a 5 €**, se privilegia **Ubuntu 22.04 LTS**, Docker y un proxy inverso. Esta combinación asegura una **simplicidad de despliegue** y un **coste controlado**.
⚙️ La **instalación** se realiza mediante Docker Compose: recuperación del repositorio Mastodon, edición del archivo **.env**, luego lanzamiento de los servicios. En 15 minutos, su contenedor dispondrá de **PostgreSQL**, **Redis**, y del servicio web.
🔒 Para garantizar una **seguridad mínima**, se utiliza Let’s Encrypt (Certbot) detrás de un **proxy inverso Nginx**. Los certificados se renuevan automáticamente y el tráfico HTTP se redirige a HTTPS.
💾 Las **copias de seguridad programadas** en forma de dumps PostgreSQL y archivos de los volúmenes Docker protegen sus datos. Un script cron puede enviar las copias a un almacenamiento remoto.
1. Elegir y preparar su VPS
1.1 Ofertas a 5 €: criterios de selección
Proveedores como Scaleway, OVHcloud o Hetzner ofrecen VPS de entrada a 5 € al mes, generalmente con 1 vCPU, 2 GB de RAM y 20 GB de almacenamiento SSD. Aunque estos recursos son limitados, Mastodon sigue siendo funcional si se limita la carga (número de usuarios, frecuencia de tareas en segundo plano). Antes de comenzar, verifique:
- El tipo de almacenamiento (SSD vs HDD): un SSD mejora notablemente las I/O básicas de la base de datos.
- El ancho de banda y la política de ráfagas.
- La localización del servidor para la latencia respecto a sus usuarios objetivo.
1.2 Preparar Ubuntu 22.04 LTS
Una distribución estable y reciente garantiza las actualizaciones de seguridad. Después de crear su instancia:
- Conéctese por SSH:
ssh root@votre-ip. - Actualice el sistema:
apt update && apt upgrade -y. - Crear un usuario no root:
adduser mastoadmin && usermod -aG sudo mastoadmin. - Instale las dependencias básicas:
apt install curl git ufw -y. - Active el firewall:
ufw allow OpenSSH && ufw enable.
2. Instalación de Mastodon con Docker
2.1 Instalar Docker y Docker Compose
Docker simplifica el despliegue aislando los servicios en contenedores. Ejecute:
curl -fsSL https://get.docker.com | sh
usermod -aG docker mastoadmin
apt install docker-compose -y
Cierre sesión y vuelva a conectarse para que el usuario se integre en el grupo Docker.
2.2 Clonar el repositorio y configurar el entorno
Cambie a mastoadmin y despliegue Mastodon:
git clone https://github.com/mastodon/mastodon.git ~/mastodon
cd ~/mastodon
cp .env.production.sample .env.production
Abra .env.production y ajuste:
- LOCAL_DOMAIN = su-dominio.tld
- DB_USER, DB_PASS, DB_NAME
- REDIS_URL y STREAMING_CLUSTER
2.3 Iniciar los servicios
Construya y arranque todos los contenedores:
docker-compose build
docker-compose up -d
Después de unos momentos, debería ver:
| Contenedor | Puerto | Descripción |
|---|---|---|
| web | 3000 | Interfaz Rails |
| streaming | 4000 | WebSocket |
| sidekiq | — | Tareas en segundo plano |
| postgres | 5432 | Base de datos |
| redis | 6379 | Cache y colas de tareas |
3. Configuración avanzada y optimización
3.1 Configurar SSL con Let’s Encrypt
La seguridad TLS es innegociable. Instale Certbot y un proxy inverso Nginx:
apt install nginx certbot python3-certbot-nginx -y
Creé un bloque de servidor en /etc/nginx/sites-available/mastodon :
server { listen 80; server_name votre-domaine.tld; location / { proxy_pass http://127.0.0.1:3000; include proxy_params; } }
Active el sitio y genere el certificado:
ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/
systemctl reload nginx
certbot --nginx -d votre-domaine.tld --agree-tos --no-eff-email --redirect
3.2 Optimización del rendimiento
En un VPS pequeño, cada recurso cuenta:
- Limite la RAM de Docker: en
/etc/docker/daemon.json, agregue"default-memory": "1G". - Configure sidekiq con un número reducido de hilos (ej.
threads: 5). - Active el modo producción de assets de Rails para reducir la carga de CPU.
3.3 Copias de seguridad y mantenimiento
Ejemplo de script de backup (cron diario):
#!/bin/bash
TIMESTAMP=$(date +%F)
docker exec mastodon_postgres pg_dumpall -U postgres > /var/backups/db_$TIMESTAMP.sql
tar czf /var/backups/masto_data_$TIMESTAMP.tar.gz ~/mastodon/public/system
Envíe estos archivos a un almacenamiento remoto (rsync, S3, Nextcloud) para evitar cualquier pérdida.
FAQ
- ¿Se necesita un VPS más potente si la comunidad crece?
Sí, pase a 4 GB de RAM y 2 vCPU tan pronto como observe un aumento significativo de la carga.
- ¿Cómo actualizar Mastodon?
En la carpeta
~/mastodon, ejecutegit pull, luegodocker-compose buildydocker-compose up -d. No olvide migrar la base si es necesario. - ¿Puedo personalizar la interfaz?
Modifique los archivos CSS/JS en
app/javascripty reconstruya la imagen Docker. Tenga cuidado con los conflictos en las actualizaciones oficiales. - ¿Cómo gestionar los picos de tráfico?
Active el escalado horizontal de los contenedores web y streaming distribuyendo la carga mediante un balanceador de carga.