Auto-héberger Mastodon sur un budget serré peut sembler risqué, mais avec un VPS à 5 €, quelques optimisations et une méthode structurée, il devient tout à fait possible de disposer d’un réseau social décentralisé stable. Cet article explore chaque étape, des prérequis à la mise en production sécurisée, en passant par Docker, la configuration SSL et la maintenance quotidienne.
Somaire
En bref
🔑 Sur un **VPS à 5 €**, on privilégie **Ubuntu 22.04 LTS**, Docker et un reverse proxy. Cette combinaison assure une **simplicité de déploiement** et un **coût maîtrisé**.
⚙️ L’**installation** passe par Docker Compose : récupération du dépôt Mastodon, édition du fichier **.env**, puis lancement des services. En 15 minutes, votre conteneur disposera de **PostgreSQL**, **Redis**, et du service web.
🔒 Pour garantir une **sécurité minimale**, on utilise Let’s Encrypt (Certbot) derrière un **reverse proxy Nginx**. Les certificats sont renouvelés automatiquement et le trafic HTTP redirigé vers HTTPS.
💾 Les **sauvegardes programmées** sous forme de dumps PostgreSQL et d’archives des volumes Docker protègent vos données. Un script cron peut envoyer les backups vers un stockage distant.
1. Choisir et préparer votre VPS
1.1 Offres à 5 € : critères de sélection
Les fournisseurs comme Scaleway, OVHcloud ou Hetzner proposent des VPS d’entrée de gamme à 5 € par mois, offrant généralement 1 vCPU, 2 Go de RAM et 20 Go de stockage SSD. Bien que ces ressources soient réduites, Mastodon reste fonctionnel si l’on limite la charge (nombre d’usagers, fréquence des tâches de fond). Avant de vous lancer, vérifiez :
- Le type de stockage (SSD vs HDD) : un SSD améliore notablement les I/O de base de données.
- La bande passante et la politique de burst.
- La localisation du serveur pour la latence vis-à-vis de vos utilisateurs cibles.
1.2 Préparer Ubuntu 22.04 LTS
Une distribution stable et récente garantit les updates de sécurité. Après avoir créé votre instance :
- Connectez-vous en SSH :
ssh root@votre-ip
. - Mettez à jour le système :
apt update && apt upgrade -y
. - Créez un utilisateur non root :
adduser mastoadmin && usermod -aG sudo mastoadmin
. - Installez les dépendances de base :
apt install curl git ufw -y
. - Activez le pare-feu :
ufw allow OpenSSH && ufw enable
.
2. Installation de Mastodon avec Docker
2.1 Installer Docker et Docker Compose
Docker simplifie le déploiement en isolant les services dans des conteneurs. Exécutez :
curl -fsSL https://get.docker.com | sh
usermod -aG docker mastoadmin
apt install docker-compose -y
Déconnectez-vous puis reconnectez-vous pour que l’utilisateur intègre le groupe Docker.
2.2 Cloner le dépôt et configurer l’environnement
Switch en tant que mastoadmin
et déployez Mastodon :
git clone https://github.com/mastodon/mastodon.git ~/mastodon
cd ~/mastodon
cp .env.production.sample .env.production
Ouvrez .env.production
et ajustez :
- LOCAL_DOMAIN = votre-domaine.tld
- DB_USER, DB_PASS, DB_NAME
- REDIS_URL et STREAMING_CLUSTER

2.3 Lancer les services
Construisez et démarrez tous les conteneurs :
docker-compose build
docker-compose up -d
Après quelques instants, vous devriez voir :
Conteneur | Port | Description |
---|---|---|
web | 3000 | Interface Rails |
streaming | 4000 | WebSocket |
sidekiq | — | Tâches en arrière-plan |
postgres | 5432 | Base de données |
redis | 6379 | Cache & files queue |
3. Configuration avancée et optimisation
3.1 Mettre en place SSL avec Let’s Encrypt
La sécurité TLS est non négociable. Installez Certbot et un reverse proxy Nginx :
apt install nginx certbot python3-certbot-nginx -y
Créez un bloc serveur dans /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; } }
Activez le site et générez le certificat :
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 Optimisation des performances
Sur un petit VPS, chaque ressource compte :
- Limitez la RAM de Docker : dans
/etc/docker/daemon.json
, ajoutez"default-memory": "1G"
. - Configurer sidekiq avec un nombre de threads réduit (ex.
threads: 5
). - Activer le mode production d’assets Rails pour réduire la charge CPU.
3.3 Sauvegardes et maintenance
Exemple de script de backup (cron journalier) :
#!/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
Envoyez ces fichiers vers un stockage distant (rsync, S3, Nextcloud) pour éviter toute perte.
FAQ
- Faut-il un VPS plus puissant si la communauté grandit ?
Oui, passez à 4 Go de RAM et 2 vCPU dès que vous observez une montée en charge significative.
- Comment mettre à jour Mastodon ?
Dans le dossier
~/mastodon
, faites ungit pull
, puisdocker-compose build
etdocker-compose up -d
. N’oubliez pas de migrer la base si nécessaire. - Puis-je personnaliser l’interface ?
Modifiez les fichiers CSS/JS dans
app/javascript
et reconstruisez l’image Docker. Attention aux conflits sur les mises à jour officielles. - Comment gérer les pics de trafic ?
Activez le scaling horizontal des conteneurs web et streaming en répartissant la charge via un load balancer.