Initial vault setup
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
---
|
||||
title: Mitra
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, activitypub-fediverse, microblogging, rust, single-user, fediverse, lightweight, pleroma]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://codeberg.org/silverpill/mitra]
|
||||
---
|
||||
|
||||
# 🦀 Mitra
|
||||
|
||||
> **Le microblog Fediverse en Rust signé silverpill, ex-auteur de Pleroma** — un serveur ActivityPub minimaliste, rapide et conçu pour tourner sur un Raspberry Pi.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [silverpill.eu/mitra](https://silverpill.eu/mitra/) |
|
||||
| **GitHub / Codeberg** | [silverpill/mitra](https://codeberg.org/silverpill/mitra) |
|
||||
| **Licence** | AGPL-3.0 |
|
||||
| **Langage** | Rust, Actix |
|
||||
| **Étoiles GitHub** | 23 ⭐ |
|
||||
| **Dernière MAJ** | 2026-04 |
|
||||
| **Catégorie** | [[cat-activitypub-fediverse\|ActivityPub / Fediverse]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Mitra** est un **serveur microblog ActivityPub en Rust**, développé par **silverpill** — figure historique de Pleroma (un des auteurs originaux du projet). Mitra est né en 2023 du souhait de réécrire Pleroma "from scratch" en s'appuyant sur les leçons apprises : une base de code plus compacte, des choix techniques plus radicaux (PostgreSQL uniquement, binaire statique, gestion des médias via RocksDB), et une cible **mono-instance légère**.
|
||||
|
||||
L'argument de vente principal est la **performance**. En Rust, sans surcoût garbage-collector, Mitra consomme très peu de RAM (souvent < 100 Mo même pour une instance publique) et tourne de manière fluide sur des machines modestes type Raspberry Pi 4. Le binaire final est **statique** (grâce à la toolchain Rust), ce qui simplifie le déploiement.
|
||||
|
||||
Fonctionnellement, Mitra propose tout ce qu'on attend d'un serveur Fediverse : posts, threads, boosts, favoris, follows, listes, **quote posts**, **custom emojis**, **réactions emoji**, **sondages**, **limite de caractères configurable (par défaut 5000)**, **DM**. La fédération est complète et l'auteur a documenté des **extensions ActivityPub** adoptées par Pleroma/Akkoma (donc interopérables).
|
||||
|
||||
Le projet est plus confidentiel que Pleroma ou Mastodon : peu de contributeurs externes, rythme de release soutenu mais communauté réduite. C'est le choix idéal pour un **self-hoster avancé** qui veut un Fediverse minimaliste, performant, et qui n'a pas peur de mettre les mains dans la config.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Option recommandée : Docker
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
mitra:
|
||||
image: silverpill/mitra:latest
|
||||
container_name: mitra
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MITRA_DATABASE_URL=postgresql://mitra:***@db/mitra
|
||||
- MITRA_LISTEN_ADDRESS=0.0.0.0:8080
|
||||
depends_on:
|
||||
- db
|
||||
volumes:
|
||||
- ./data:/opt/mitra/data
|
||||
ports:
|
||||
- "8080:8080"
|
||||
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
container_name: mitra-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_USER=mitra
|
||||
- POSTGRES_PASSWORD=*** - POSTGRES_DB=mitra
|
||||
volumes:
|
||||
- ./pgdata:/var/lib/postgresql/data
|
||||
```
|
||||
|
||||
### Option 2 : Binaire natif
|
||||
|
||||
```bash
|
||||
git clone https://codeberg.org/silverpill/mitra.git
|
||||
cd mitra
|
||||
cargo build --release
|
||||
./target/release/mitra --config config.yaml
|
||||
```
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **Éditer `config.yaml`** : définir `instance_name`, `instance_url`, le DSN PostgreSQL, et la **taille max des uploads**.
|
||||
2. **Premier démarrage** : créer le compte administrateur via la CLI ou l'API.
|
||||
3. **Webfinger** : vérifier que `/.well-known/webfinger` répond bien (tester avec `curl`).
|
||||
4. **Stockage média** : par défaut RocksDB local, pour la prod on peut brancher S3-compatible.
|
||||
5. **Sauvegardes** : dump Postgres + dossier média.
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
- [[app-pleroma]] — Le projet d'origine de l'auteur, en Elixir.
|
||||
- [[app-akkoma]] — Fork de Pleroma maintenu par la communauté.
|
||||
- [[app-mastodon]] — Le standard, en Ruby.
|
||||
- [[app-ktistec]] — Approche minimaliste similaire en Crystal.
|
||||
- [[app-snac]] — Encore plus minimaliste, en C.
|
||||
|
||||
### Propriétaires (ce que cette app remplace)
|
||||
- **Twitter / X** — centralisé, traque publicitaire.
|
||||
- **Threads** (Meta) — non fédéré, lié à Instagram.
|
||||
- **Bluesky** — modèle AT Protocol différent.
|
||||
- **Pleroma "officiel"** — abandonné par l'auteur, dont l'énergie va désormais sur Mitra.
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- **Authentification** : comptes locaux avec mots de passe hashés (Argon2id). Premier compte créé = admin.
|
||||
- **OAuth** : Mitra expose l'API OAuth 2.0 standard, donc n'importe quel client Mastodon peut s'y connecter.
|
||||
- **HTTPS obligatoire** : Let's Encrypt via Caddy/Nginx, requis par ActivityPub.
|
||||
- **Fédération** : les DM sont chiffrés en transit mais pas E2E. L'auteur a publié ses extensions sur **E2EE DMS** à surveiller dans les releases.
|
||||
- **Modération** : support des **blocks, mutes, instance blocks** standards, mais l'interface d'admin est minimale (à compléter avec des scripts).
|
||||
- **Mises à jour** : projet jeune, **suivre attentivement les releases** car le modèle de données peut évoluer.
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [Codeberg silverpill/mitra](https://codeberg.org/silverpill/mitra)
|
||||
- [Site officiel silverpill.eu/mitra](https://silverpill.eu/mitra/)
|
||||
- [LemmyNet/activitypub-federation-rust](https://github.com/LemmyNet/activitypub-federation-rust) — Librairie utilisée
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-activitypub-fediverse]] — Catégorie parente
|
||||
- [[app-pleroma]] — Projet d'origine de l'auteur
|
||||
- [[app-ktistec]] — Microblog Fediverse en Crystal (autre approche minimaliste)
|
||||
- [[recettes-docker-compose]] — Templates Docker
|
||||
Reference in New Issue
Block a user