Configurer un serveur Mastodon auto-hébergé sur un VPS à 5 €


Configurer un serveur Mastodon auto-hébergé sur un VPS à 5 €

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.

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
Architecture Docker de Mastodon sur VPS

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 un git pull, puis docker-compose build et docker-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.

Lire aussi  Le guide complet du Trust Flow : comprendre et optimiser votre profil de backlinks

Laisser un commentaire