Initial vault setup
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
---
|
||||
title: Betula
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, activitypub-fediverse, microblogging, rust, hobbyiste, fediverse]
|
||||
confidence: medium
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://github.com/betula-app/betula]
|
||||
---
|
||||
|
||||
# 🌳 Betula
|
||||
|
||||
> **Le microblogueur fediverse en Rust, projet hobbyiste** : une implémentation minimaliste de serveur Mastodon-compatible, pour comprendre ActivityPub en codant.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [https://github.com/betula-app/betula](https://github.com/betula-app/betula) |
|
||||
| **GitHub** | [https://github.com/betula-app/betula](https://github.com/betula-app/betula) |
|
||||
| **License** | AGPL-3.0 |
|
||||
| **Langage principal** | Rust |
|
||||
| **Étoiles GitHub** | 5 ⭐ |
|
||||
| **Dernière MAJ** | 2026-04 |
|
||||
| **Catégorie** | [[cat-activitypub-fediverse]] |
|
||||
|
||||
## Description
|
||||
|
||||
Betula (le bouleau, en latin) est un **serveur de microblogage fediverse** écrit en Rust, conçu comme un **projet pédagogique et hobbyiste**. L'objectif affiché n'est pas de concurrencer Mastodon mais de proposer un **serveur minimal** (idéal pour un usage personnel) avec un code simple à lire et à auditer.
|
||||
|
||||
Le projet supporte l'**essentiel du protocole ActivityPub** : envoi/réception de posts, follows, likes, boosts, réponses. Pas de listes, pas de filtres, pas de sondages, pas de recherche federated — juste la boucle de base. C'est exactement le bon créneau pour quelqu'un qui veut **un compte fediverse persistant** sur une instance à lui, sans complexité opérationnelle.
|
||||
|
||||
L'implémentation est volontairement **didactique** : le code est commenté, structuré clairement, sans trop de dépendances externes. C'est un excellent point d'entrée pour qui veut comprendre ActivityPub en lisant du Rust.
|
||||
|
||||
**Points forts** : Rust (sûr, rapide), code lisible, parfait pour usage single-user, base de code légère.
|
||||
|
||||
**Points faibles** : projet hobbyiste, **bus factor = 1**, peu de features, pas de support Subsonic/Mastodon API complet, pas d'admin UI riche.
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Docker (recommandé)
|
||||
|
||||
Pas d'image officielle : on build depuis le source.
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
betula:
|
||||
build: https://github.com/betula-app/betula.git
|
||||
container_name: betula
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
BETULA_DATABASE_URL: "sqlite:///data/betula.db"
|
||||
BETULA_LISTEN: "0.0.0.0:3000"
|
||||
BETULA_BASE_URL: "https://betula.example.com"
|
||||
volumes:
|
||||
- betula_data:/data
|
||||
|
||||
volumes:
|
||||
betula_data:
|
||||
```
|
||||
|
||||
### Installation manuelle
|
||||
|
||||
1. Installer Rust : `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`
|
||||
2. Cloner : `git clone https://github.com/betula-app/betula.git && cd betula`
|
||||
3. Compiler : `cargo build --release`
|
||||
4. Lancer : `./target/release/betula`
|
||||
|
||||
## Configuration
|
||||
|
||||
1. Éditer `config.toml` (ou variables d'env `BETULA_*`) :
|
||||
- `BETULA_BASE_URL` : URL publique HTTPS
|
||||
- `BETULA_LISTEN` : adresse d'écoute (0.0.0.0:3000 par défaut)
|
||||
2. Créer le premier compte : `betula create-user --name alice --password ***`
|
||||
3. Activer la **fédération** (par défaut activée)
|
||||
4. Servir derrière Nginx + HTTPS
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Open source
|
||||
- [[app-hollo]] — autre microblogging Rust single-binary (plus mature)
|
||||
- [[app-ktistec]] — Crystal, single binary
|
||||
- [[app-mastodon]] — référence mais lourd
|
||||
- [[app-snac]] — C, ultra-minimaliste
|
||||
|
||||
### Propriétaires
|
||||
- Twitter / X
|
||||
- Threads
|
||||
- Bluesky (ATProto)
|
||||
|
||||
## Sécurité
|
||||
|
||||
- **HTTPS obligatoire** (fédération)
|
||||
- **Code Rust** : surface d'attaque faible par construction (memory safety)
|
||||
- **SQLite local** : sécuriser le dossier de données (chmod 700)
|
||||
- **Mises à jour** : suivre le repo (bus factor = 1, ne pas hésiter à forker si l'auteur disparaît)
|
||||
- **Sauvegardes** : le fichier `betula.db` suffit
|
||||
|
||||
## Ressources
|
||||
- Code source : [github.com/betula-app/betula](https://github.com/betula-app/betula)
|
||||
- Documentation : README du dépôt
|
||||
- Communauté : issues GitHub uniquement
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-activitypub-fediverse]]
|
||||
- [[recettes-docker-compose]]
|
||||
- [[app-hollo]]
|
||||
- [[app-ktistec]]
|
||||
Reference in New Issue
Block a user