Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+142
View File
@@ -0,0 +1,142 @@
---
title: BookWyrm
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, activitypub-fediverse, livres, goodreads, django, fediverse, social]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://github.com/bookwyrm-social/bookwyrm, https://joinbookwyrm.com/]
---
# 📚 BookWyrm
> **Le réseau social de lecteurs fédéré** : l'alternative éthique à Goodreads, basée sur ActivityPub, où vous pistez vos lectures, écrivez des critiques et discutez avec d'autres lecteurs — y compris depuis Mastodon.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [https://joinbookwyrm.com](https://joinbookwyrm.com) |
| **GitHub** | [https://github.com/bookwyrm-social/bookwyrm](https://github.com/bookwyrm-social/bookwyrm) |
| **License** | AGPL-3.0 |
| **Langage principal** | Python (Django) |
| **Étoiles GitHub** | 2 250 ⭐ |
| **Dernière MAJ** | 2026-05 |
| **Catégorie** | [[cat-activitypub-fediverse]] |
## Description
BookWyrm est l'**alternative éthique et fédérée à Goodreads** développée depuis 2021 par une équipe de bénévoles sensibles à la culture du libre. Le principe : un réseau social centré sur la lecture, où vous tenez un **journal de lectures** (lu, en cours, à lire, abandonné), rédigez des **critiques**, notez les livres, créez des **listes thématiques** et discutez avec d'autres lecteurs.
La particularité fediverse : BookWyrm parle **ActivityPub**. Vous pouvez **suivre un compte BookWyrm depuis Mastodon**, et inversement — un compte Mastodon apparaît dans vos followers BookWyrm. Les critiques d'un livre publiées sur BookWyrm sont visibles depuis Mastodon, et les commentaires de vos amis Mastodon sous votre critique remontent sur BookWyrm. C'est un pont rare entre le monde littéraire et le microblogage.
Fonctionnalités principales : **étagères** (shelves) personnalisables, **statuts de lecture** (to-read, reading, read), **critiques** riches (markdown, spoilers masquables), **listes** collaboratives (type « les 100 meilleurs polars »), **citations** partagées, **citations du jour**, **découverte** par genres et tags, **scrobbling** (intégration OPDS), **import/export** depuis Goodreads, **API** pour intégrations tierces.
**Points forts** : UI claire et agréable, federation ActivityPub complète, alternative crédible à Goodreads (propriété d'Amazon), respect de la vie privée, communauté de lecteurs active.
**Points faibles** : stack Python/Django + PostgreSQL + Redis + Elasticsearch (lourd pour quelques utilisateurs), pas d'application mobile native (PWA), catalogue OpenLibrary parfois lent, et le réseau est fragmenté entre plusieurs instances.
## Installation
### Via Docker (recommandé)
L'image officielle est `bookwyrm/bookwyrm` et `bookwyrm/celery-worker` sur Docker Hub. La stack inclut PostgreSQL, Redis, Elasticsearch (optionnel mais recommandé).
```yaml
# docker-compose.yml
services:
web:
image: bookwyrm/bookwyrm:latest
restart: unless-stopped
env_file: .env
volumes:
- bookwyrm_data:/app
ports:
- "8000:8000"
depends_on:
- postgres
- redis
- celery
celery:
image: bookwyrm/bookwyrm:latest
restart: unless-stopped
env_file: .env
command: celery -A bookwyrm worker -l info
depends_on:
- postgres
- redis
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: bookwyrm
POSTGRES_USER: bookwyrm
POSTGRES_PASSWORD: change-me
volumes:
- bookwyrm_db:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- bookwyrm_redis:/data
volumes:
bookwyrm_data:
bookwyrm_db:
bookwyrm_redis:
```
### Installation manuelle
Voir la doc officielle : `https://docs.joinbookwyrm.com/install-prod.html`. Prévoir Python 3.11+, PostgreSQL 13+, Redis 7+, Elasticsearch 7+ (recommandé), Node.js, et un reverse-proxy (Nginx/Caddy).
## Configuration
1. Cloner le dépôt et copier `.env.example` vers `.env`, compléter `DOMAIN`, `DATABASE_URL`, `REDIS_URL`, `EMAIL`, `OTEL_*`.
2. Migrer la base : `python manage.py migrate`.
3. Migrer les données de base OpenLibrary : `python manage.py initdb`.
4. Pré-compiler les assets : `python manage.py collectstatic`.
5. Créer le superadmin : `python manage.py admin_code`.
6. Lancer la stack, **configurer le reverse-proxy HTTPS** (Caddy ou Nginx avec WebSocket) et activer la federation (par défaut activée).
## Alternatives
### Open source
- **OpenReads** — Suivi de lectures local, sans réseau social
- **MyLibro** — Suivi de lectures, pas de réseau social fediverse
- [[app-pixelfed]] — Pour d'autres types de partage créatif
- [[app-friendica]] — Réseau multi-protocoles avec un faible volet livres
- [[app-mastodon]] — Pour la partie microblogage / discussion
### Propriétaires
- **Goodreads (Amazon)** — Le modèle d'origine, public tracking publicitaire
- **The StoryGraph** — Concurrent moderne, freemium, pas self-hostable
- **LibraryThing** — Historique, freemium limité
- **Babelio** — Francophone, pas self-hostable
## Sécurité
-**Authentification** : email + mot de passe, OAuth (Fediverse) — connectez-vous avec votre compte Mastodon
-**HTTPS** obligatoire (HSTS)
-**Modération** : signalements, blocage de comptes et d'instances, listes de blocage
-**Privacy** : étagères privées possibles, listes « à cacher »
- ⚠️ **Federation** : un compte BookWyrm public attire les bots, modérer les demandes de follow
- ⚠️ **Données OpenLibrary** : la base est partagée, attention aux requêtes API
- ⚠️ **Stack** : Elasticsearch + Postgres + Redis demande de la RAM (~ 4 Go minimum recommandé)
## Ressources
- [Site officiel](https://joinbookwyrm.com)
- [Documentation](https://docs.joinbookwyrm.com)
- [GitHub bookwyrm-social/bookwyrm](https://github.com/bookwyrm-social/bookwyrm)
- [Liste d'instances publiques](https://joinbookwyrm.com/instances/)
## Pages Liées
- [[cat-activitypub-fediverse]] — Catégorie parente
- [[app-mastodon]] — Federation avec le microblogage
- [[app-pixelfed]] — Partage créatif fediverse
- [[app-caddy]] — Reverse-proxy HTTPS
- [[recettes-docker-compose]] — Templates Docker