Initial vault setup
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
---
|
||||
title: Mastodon
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, activitypub-fediverse, microblogging, reseau-social, ruby, fediverse]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://github.com/mastodon/mastodon, https://joinmastodon.org/]
|
||||
---
|
||||
|
||||
# 🐘 Mastodon
|
||||
|
||||
> **Le microblogueur fédéré de référence** : 500 caractères par message, chronologies inversées, instances souveraines qui se parlent via ActivityPub.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [https://joinmastodon.org](https://joinmastodon.org) |
|
||||
| **GitHub** | [https://github.com/mastodon/mastodon](https://github.com/mastodon/mastodon) |
|
||||
| **License** | AGPL-3.0 |
|
||||
| **Langage principal** | Ruby, JavaScript (React) |
|
||||
| **Étoiles GitHub** | 47 500 ⭐ |
|
||||
| **Dernière MAJ** | 2026-05 |
|
||||
| **Catégorie** | [[cat-activitypub-fediverse]] |
|
||||
|
||||
## Description
|
||||
|
||||
Mastodon est le logiciel qui a popularisé le **Fediverse** grand public après l'arrivée massive des déçus de Twitter fin 2022. C'est un serveur de **microblogage** (pouets / toots) fonctionnant sur le protocole **ActivityPub** du W3C, ce qui permet à n'importe quelle instance Mastodon de discuter avec un compte PeerTube, Pixelfed, Pleroma, Misskey, etc.
|
||||
|
||||
Chaque serveur (« instance ») est administré indépendamment avec ses propres règles de modération, mais le réseau global est unifié : `@moi@mastodon.social` peut être suivi depuis n'importe quelle autre instance, et la conversation traverse les frontières logicielles. La timeline est **algorithmiquement neutre** : pas de tri opaque, pas de publicités, pas de profilage publicitaire.
|
||||
|
||||
L'application couvre les usages classiques du microblogage : messages courts (500 caractères), images (jusqu'à 4), sondages, **CW** (Content Warning) pour les sujets sensibles, listes, marque-pages (« favoris »), boosts (repartages) et **chronologies** locale / federée / personnelle. Le projet est soutenu par une association à but non lucratif (Mastodon gGmbH).
|
||||
|
||||
**Points forts** : maturité (depuis 2016), outillage admin riche, sécurité solide, federation robuste, applications mobiles tierces (Mastodon, Tusky, Tootle, Ivory…).
|
||||
|
||||
**Points faibles** : consommation mémoire importante (≥ 4 Go RAM recommandé), Ruby on Rails demande un peu d'attention opérationnelle, recherche federated lente, pas de DM E2E (seuls les messages directs à 1 destinataire sont chiffrés en option).
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Docker (recommandé)
|
||||
|
||||
L'image officielle est `mastodon/mastodon` sur Docker Hub. Mastodon a besoin d'un reverse-proxy HTTPS (Traefik, Caddy ou Nginx) en amont, ainsi que de PostgreSQL et Redis.
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: mastodon
|
||||
POSTGRES_PASSWORD: change-me
|
||||
POSTGRES_DB: postgres
|
||||
volumes:
|
||||
- mastodon_db:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U mastodon"]
|
||||
interval: 5s
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- mastodon_redis:/data
|
||||
|
||||
web:
|
||||
image: mastodon/mastodon:v4.4
|
||||
restart: unless-stopped
|
||||
env_file: .env.production
|
||||
command: bash -c "bundle exec rails server -b 0.0.0.0"
|
||||
ports:
|
||||
- "3000:3000"
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
|
||||
streaming:
|
||||
image: mastodon/mastodon:v4.4
|
||||
restart: unless-stopped
|
||||
env_file: .env.production
|
||||
command: node ./streaming
|
||||
ports:
|
||||
- "4000:4000"
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
|
||||
sidekiq:
|
||||
image: mastodon/mastodon:v4.4
|
||||
restart: unless-stopped
|
||||
env_file: .env.production
|
||||
command: bundle exec sidekiq
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
|
||||
volumes:
|
||||
mastodon_db:
|
||||
mastodon_redis:
|
||||
```
|
||||
|
||||
### Installation manuelle
|
||||
|
||||
Pour une installation native Ruby, suivre la documentation officielle : `https://docs.joinmastodon.org/admin/install/`. Prévoir Ruby 3.2+, Node.js 18+, PostgreSQL 14+, Redis 7+, et les outils système `ffmpeg`, `libpq-dev`, `libxml2-dev`, `libprotobuf-dev`, `libidn-dev`.
|
||||
|
||||
## Configuration
|
||||
|
||||
1. Générer les secrets avec `docker compose run --rm web bundle exec rake secret`.
|
||||
2. Compléter `.env.production` (`LOCAL_DOMAIN`, `REDIS_HOST`, `DB_HOST`, `SMTP_*`, etc.).
|
||||
3. Préparer la base : `docker compose run --rm web bundle exec rails db:setup`.
|
||||
4. Pré-compiler les assets : `docker compose run --rm web bundle exec rails assets:precompile`.
|
||||
5. Lancer la stack et créer le compte admin via `tootctl accounts create`.
|
||||
6. **Configurer le reverse-proxy** : obligatoire pour HTTPS (Let's Encrypt via Traefik/Caddy).
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Open source
|
||||
- [[app-misskey]] — Fork de Mastodon avec UI plus riche, réactions, citations
|
||||
- **Pleroma / Akkoma** — Microblogage fédéré léger, en Elixir
|
||||
- **GoToSocial** — Implémentation Go, très peu gourmande
|
||||
- **Iceshrimp / Sharkey** — Forks Misskey en activité
|
||||
|
||||
### Propriétaires
|
||||
- **X (Twitter)** — Le modèle d'origine, centralisé
|
||||
- **Threads (Meta)** — Partiellement fédéré, contrôlé par Meta
|
||||
- **Bluesky** — Protocole AT (pas ActivityPub), pas self-hostable
|
||||
|
||||
## Sécurité
|
||||
|
||||
- ✅ **Authentification** : email + mot de passe (bcrypt), 2FA TOTP/WebAuthn
|
||||
- ✅ **OAuth2** pour applications tierces
|
||||
- ✅ **Modération** : blocages, masquages, listes de filtres, signalements inter-instances
|
||||
- ✅ **HTTPS** obligatoire (HSTS préchargé)
|
||||
- ⚠️ **DMs** : pas de chiffrement de bout en bout nativement (utiliser Signal pour le sensible)
|
||||
- ⚠️ **Fuite d'IP** : bien configurer `SMTP_RELAY_ENABLED` ou le header `X-Forwarded-For`
|
||||
- ⚠️ **Sécurité opérationnelle** : garder Mastodon à jour, surveiller les CVE Ruby/Rails
|
||||
|
||||
## Ressources
|
||||
|
||||
- [Site officiel](https://joinmastodon.org)
|
||||
- [Documentation admin](https://docs.joinmastodon.org/admin/)
|
||||
- [GitHub mastodon/mastodon](https://github.com/mastodon/mastodon)
|
||||
- [Serveurs Mastodon publics](https://joinmastodon.org/communities/)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-activitypub-fediverse]] — Catégorie parente
|
||||
- [[app-misskey]] — Concurrent direct, UI plus riche
|
||||
- [[app-pixelfed]] — Réseau photos du même écosystème
|
||||
- [[app-traefik]] — Reverse-proxy HTTPS recommandé
|
||||
- [[recettes-docker-compose]] — Templates Docker
|
||||
Reference in New Issue
Block a user