Files
2026-06-09 18:40:21 +02:00

137 lines
6.1 KiB
Markdown

---
title: Mbin
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, activitypub-fediverse, content-aggregator, link-aggregator, microblogging, lemmy, kbin, fediverse, symfony]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://github.com/MbinOrg/mbin]
---
# 🌐 Mbin
> **L'agrégateur de contenu fédéré qui réconcilie le threadiverse et le microblog** — successeur communautaire de Kbin, compatible Lemmy, Mastodon, Pleroma et le reste du Fediverse.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [mbin.org](https://mbin.org/) |
| **GitHub** | [MbinOrg/mbin](https://github.com/MbinOrg/mbin) |
| **Licence** | AGPL-3.0 |
| **Langage** | PHP, Symfony 7 |
| **Étoiles GitHub** | 30 ⭐ (en croissance rapide) |
| **Dernière MAJ** | 2026-06 |
| **Catégorie** | [[cat-activitypub-fediverse\|ActivityPub / Fediverse]] |
## 📝 Description
**Mbin** est né en 2024 de la **scission communautaire de Kbin**. Quand l'auteur principal de Kbin a annoncé un cap controversé sur la modération, la majorité des contributeurs a forké le projet pour créer Mbin, qui se veut un **agrégateur de contenu ActivityPub neutre, multi-tenant et performant**. En quelques mois, Mbin a dépassé Kbin en termes de contributions, d'instances et d'attention.
L'ambition est claire : être le **Reddit-like fédéré de référence**, tout en parlant nativement avec **Mastodon et Pleroma** (microblog) ET avec **Lemmy et PieFed** (threadiverse). Concrètement, depuis une instance Mbin vous pouvez suivre des magazines (équivalent subreddits), poster des liens et des threads, mais aussi suivre des comptes Mastodon et interagir avec leurs pouets. Cette **interopérabilité cross-protocole** est l'argument massue.
L'architecture technique est solide : **Symfony 7** (PHP 8.3), **PostgreSQL**, **Redis** pour le cache, **Mercure** pour le temps réel, et une **API REST + ActivityPub complète**. Le projet met l'accent sur la **performance** (là où Kbin souffrait de latence sur les grandes instances) et la **modération multi-niveau** (modérateurs de magazine, modérateurs d'instance, admins).
Cas d'usage : agrégateur d'actualités fédéré, communauté thématique (chaque magazine = un subreddit fédéré), alternative à Reddit sans tracking. Comparé à Lemmy, Mbin offre une **meilleure UX** (lecteur intégré, threads enrichis) au prix d'une stack plus lourde.
## 🚀 Installation
### Option recommandée : Docker Compose
```yaml
# docker-compose.yml
services:
mbin:
image: mbin/mbin:latest
container_name: mbin
restart: unless-stopped
environment:
- APP_ENV=prod
- APP_SECRET=changez-moi
- DATABASE_URL=postgresql://mbin:mbin@db/mbin?serverVersion=16&charset=utf8
- REDIS_URL=redis://redis:6379
- MERCURY_URL=http://mercure:3000/.well-known/mercure
- MERCURY_PUBLIC_URL=http://mercure:3000/.well-known/mercure
- MERCURY_JWT_SECRET=changez-moi-mercure
depends_on:
- db
- redis
- mercure
ports:
- "8000:8080"
db:
image: postgres:16-alpine
container_name: mbin-db
restart: unless-stopped
environment:
- POSTGRES_USER=mbin
- POSTGRES_PASSWORD=mbin
- POSTGRES_DB=mbin
volumes:
- ./pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
container_name: mbin-redis
restart: unless-stopped
mercure:
image: dunglas/mercure:latest
container_name: mbin-mercure
restart: unless-stopped
environment:
- SERVER_NAME=:3000
- MERCURE_PUBLISHER_JWT_KEY=changez-moi-mercure
- MERCURE_SUBSCRIBER_JWT_KEY=changez-moi-mercure
- ALLOW_ANONYMOUS=1
ports:
- "3000:3000"
```
## ⚙️ Configuration Initiale
1. **Premier démarrage** : suivre l'assistant web pour créer le compte administrateur.
2. **Configurer le domaine** : éditer `APP_ENV` et les variables `KBIN_DOMAIN` (cf. doc officielle).
3. **Activer la fédération** : tester en suivant `https://lemmy.world/c/news` depuis votre instance.
4. **Magazines** : créer les premiers magazines (équivalent subreddits) qui serviront de communautés thématiques.
5. **Modération** : configurer la file de signalements et la liste d'instances bloquées.
6. **Sauvegardes** : `pg_dump` quotidien + volume des médias uploadés.
## 🔄 Alternatives
### Open Source
- [[app-lemmy]] — Concurrent direct, plus mature, plus d'instances.
- [[app-piefed]] — Agrégateur Lemmy-like récent en Go.
- [[app-kbin]] — Le projet d'origine, désormais minoritaire.
- [[app-mastodon]] — Le microblogging fédéré (Mbin y est interopérable).
### Propriétaires (ce que cette app remplace)
- **Reddit** — modèle centralisé, déboires de l'API 2023.
- **Hacker News** — pas de fédération, mono-instance.
- **Voat** — historique chargé, fermé.
- **Lobsters** — invitation, pas de fédération.
## 🔐 Sécurité
- **Authentification** : locale (email + mot de passe) + OAuth via Mastodon pour lier des comptes.
- **CSRF / CORS** : Symfony gère nativement, mais il faut servir derrière HTTPS en production.
- **Fédération** : Mbin parle ActivityPub 1.0 et 2.0, ainsi qu'un pont avec Lemmy (qui utilise un dialecte ActivityPub spécifique). Les **fédérations rompues** sont loguées dans `/federation`.
- **Modération** : système à 3 niveaux (utilisateur / modérateur de magazine / admin instance) avec **suspension, ban, signalement à d'autres instances**.
- **Uploads** : par défaut stockés sur disque ; pour la prod, brancher un S3-compatible.
- **2FA** : non activée nativement, à compléter par un proxy (Authelia/Authentik).
## 📚 Ressources
- [Site officiel Mbin](https://mbin.org/)
- [GitHub MbinOrg/mbin](https://github.com/MbinOrg/mbin)
- [Documentation d'install officielle](https://docs.mbin.pub/)
- [Reddit r/fediverse — Mbin presentation](https://www.reddit.com/r/fediverse/comments/1i7nxdf/mbin_is_an_opensource_fediverse_server_that/)
## Pages Liées
- [[cat-activitypub-fediverse]] — Catégorie parente
- [[app-lemmy]] — Concurrent direct
- [[app-mastodon]] — Interopérable avec Mbin
- [[recettes-docker-compose]] — Templates Docker