Files
wiki/Catalogue-Self-Hosted/apps/app-mastodon.md
T
2026-06-09 18:40:21 +02:00

6.2 KiB


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
GitHub 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.

# 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

Pages Liées