Posséder son compte social paraît séduisant jusqu'à ce qu'on réalise qu'il vit sur le serveur de quelqu'un d'autre, avec ses règles et sa disponibilité. Votre propre instance Mastodon règle ça : votre identifiant est @you@your-domain, et personne ne peut le fermer à part vous. Le hic, c'est que Mastodon n'est pas une petite application. Mieux vaut savoir dans quoi on s'engage.
Pour qui
- Une instance mono-utilisateur pour vous ou pour le compte officiel de votre entreprise.
- Une petite communauté d'amis ou une équipe projet — des dizaines de personnes, pas des milliers.
Au-delà, vous gérez un service avec des obligations de modération, des signalements et une vraie infrastructure. C'est une autre conversation.
Ce qu'il faut vraiment
Mastodon fait tourner plusieurs processus à la fois : l'application web Rails, des workers Sidekiq en arrière-plan, un serveur de streaming, PostgreSQL et Redis. Avec la fédération, votre serveur continue de récupérer publications et médias d'autres serveurs même pendant que vous dormez.
| Instance | Offre |
|---|---|
| Un utilisateur, peu d'abonnements | Small-IP — 2 vCPU, 4 Go, $16/mois |
| Petite communauté, fédération active | Medium-IP — 4 vCPU, 6 Go, $20/mois |
4 Go fonctionnent mais c'est serré ; les files Sidekiq s'engorgent quand une publication populaire que vous suivez reçoit des milliers de réponses. 6 Go laissent de la marge. L'autre contrainte est le disque — voir la partie médias.
Il vous faut aussi un domaine et une IP dédiée : les autres serveurs livrent au vôtre sur le port 443.
Installation avec Docker
Le dépôt officiel fournit un docker-compose.yml. Sur un serveur Ubuntu 24.04 neuf avec Docker installé :
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 tâche d'installation demande votre domaine, les réglages de base de données et de Redis (les valeurs par défaut correspondent au fichier compose), les réglages e-mail et le premier compte administrateur. Tout est écrit dans .env.production. Lisez les notes de version du tag choisi — les étapes changent parfois entre versions majeures.
Mastodon fournit un modèle nginx dans dist/nginx.conf. Copiez-le dans /etc/nginx/sites-available/, remplacez le domaine et obtenez un certificat avec certbot. Nos guides du reverse proxy et du domaine couvrent les deux.
E-mail : passez par un relais
Mastodon envoie des e-mails de confirmation et de réinitialisation de mot de passe. Les ports 25 et 465 sont fermés sur nos serveurs, alors dirigez Mastodon vers un fournisseur externe d'e-mails transactionnels via le port 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
Honnêtement, vous voudriez un relais de toute façon. Les e-mails d'une IP de serveur toute neuve finissent souvent en spam ; un relais a la réputation que vous n'avez pas encore.
Médias : le dévoreur de disque
Chaque image et chaque vidéo des comptes que voit votre serveur est mise en cache localement. Sur une instance active, ce sont des gigaoctets par semaine. Nettoyez régulièrement les anciens médias distants :
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
Mettez-le dans une tâche cron quotidienne. Si votre instance grandit, déplacez les médias vers un stockage objet compatible S3 avec les réglages S3_* de .env.production — le disque du VPS ne garde alors que la base de données.
Entretien
- Mises à jour : récupérez le nouveau tag,
docker compose pull, lancez les migrations selon les notes de version, redémarrez. Ne sautez pas de version majeure. - Sauvegardes : faites un dump de PostgreSQL et conservez
.env.productionen lieu sûr — sans ses secrets, une restauration ne fonctionnera pas. Notre guide restic couvre les copies hors site, et les Managed Backups ajoutent des points de restauration quotidiens du serveur entier. - Le domaine est définitif. Il est inscrit dans l'adresse de chaque compte à travers le fédivers. Choisissez-le avant de créer le premier compte.
Vous cherchez plutôt quelque chose de plus léger pour la discussion d'une équipe ? Un serveur Matrix conviendra peut-être mieux.
Commentaires
Pas encore de commentaires. Soyez le premier.