132 lines
5.5 KiB
Markdown
132 lines
5.5 KiB
Markdown
---
|
|
title: NeoDB
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, activitypub-fediverse, catalogue, livres, films, musique, jeux, python, fediverse]
|
|
confidence: medium
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://neodb.social/, https://github.com/neodb-social/neodb]
|
|
---
|
|
|
|
# 📚 NeoDB
|
|
|
|
> **Le catalogue social de médias fediverse** : marquez et critiquez livres, films, séries, musique, podcasts et jeux vidéo sur une plateforme ActivityPub, alternative libre à Goodreads / Letterboxd / Last.fm.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [https://neodb.social](https://neodb.social) |
|
|
| **GitHub** | [https://github.com/neodb-social/neodb](https://github.com/neodb-social/neodb) |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage principal** | Python (Django) |
|
|
| **Étoiles GitHub** | 62 ⭐ |
|
|
| **Dernière MAJ** | 2026-05 |
|
|
| **Catégorie** | [[cat-activitypub-fediverse]] |
|
|
|
|
## Description
|
|
|
|
NeoDB (prononcer « Neo-D-B », pour « Network of DataBase ») est un **catalogue social multi-médias** qui centralise livres, films, séries, musique, podcasts et jeux vidéo sur une seule instance. Inspiré de **Douban** (le Goodreads chinois), le projet vise à offrir une expérience « Letterboxd + Goodreads + Last.fm » unifiée, tout en parlant ActivityPub.
|
|
|
|
Chaque utilisateur peut **marquer** un média (lu, vu, écouté, joué, envie), lui attribuer une **note** (1 à 5) et publier une **critique** ou un **commentaire court**. Le tout est **fédéré** : un compte NeoDB (`@pseudo@neodb.social`) peut être suivi depuis Mastodon, et la critique d'un livre sera diffusée dans la timeline de vos followers mastodontes.
|
|
|
|
NeoDB se distingue par son **modèle de données unifié** : un même type de schéma (title, cover, date, genres, …) est utilisé pour tous les types de médias, ce qui permet des **listes thématiques** transversales (« mes œuvres féministes de 2024 » mélangeant livres et films). Le projet intègre aussi un **scraper de métadonnées** qui récupère les informations depuis Goodreads, Google Books, TMDB, Spotify, IGDB, etc.
|
|
|
|
**Points forts** : couvre tous les types de médias, fediverse depuis le début, multilingue, API ouverte, scraping multi-sources.
|
|
|
|
**Points faibles** : projet jeune, encore en stabilisation, documentation en chinois/anglais parfois lacunaire, le scraping de Goodreads (utilisé par défaut) peut casser à tout moment, communauté plus restreinte que BookWyrm.
|
|
|
|
## Installation
|
|
|
|
### Via Docker (recommandé)
|
|
|
|
L'image officielle est disponible sur GitHub Container Registry : `ghcr.io/neodb-social/neodb:latest`.
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
app:
|
|
image: ghcr.io/neodb-social/neodb:latest
|
|
container_name: neodb
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
DJANGO_SECRET_KEY: "change-me-random-50-chars"
|
|
DJANGO_SITE_URL: "https://neodb.example.com"
|
|
DJANGO_ALLOWED_HOSTS: "neodb.example.com"
|
|
DB_HOST: db
|
|
DB_NAME: neodb
|
|
DB_USER: neodb
|
|
DB_PASSWORD: change-me
|
|
depends_on:
|
|
- db
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: neodb
|
|
POSTGRES_PASSWORD: change-me
|
|
POSTGRES_DB: neodb
|
|
volumes:
|
|
- db_data:/var/lib/postgresql/data
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
db_data:
|
|
```
|
|
|
|
### Installation manuelle
|
|
|
|
1. Installer Python 3.11+ et PostgreSQL 14+
|
|
2. Cloner le dépôt : `git clone https://github.com/neodb-social/neodb.git`
|
|
3. Créer un venv et installer les dépendances : `pip install -e .`
|
|
4. Configurer `neodb/settings.py` ou variables d'environnement
|
|
5. `python manage.py migrate` puis `python manage.py createsuperuser`
|
|
6. Servir derrière Gunicorn + Nginx
|
|
|
|
## Configuration
|
|
|
|
1. Accéder à l'installateur et créer le super-utilisateur
|
|
2. Configurer le **scraper de métadonnées** dans l'admin (priorité des sources : Google Books, TMDB, Spotify, IGDB)
|
|
3. Activer la **fédération ActivityPub** : par défaut sur
|
|
4. Créer des **listes** partagées (ex. « Mes lectures 2026 », « Films vus en 2026 »)
|
|
5. Brancher des **comptes relais** Mastodon si vous voulez que vos followers voient vos marques
|
|
|
|
## Alternatives
|
|
|
|
### Open source
|
|
- [[app-bookwyrm]] — spécialisé livres (pas films/musique/jeux)
|
|
- [[app-funkwhale]] — musique avec API Subsonic, pas de critiques
|
|
- **Letterboxd** — films uniquement, pas fediverse, mais réseau social énorme
|
|
- **Openreads** — livres uniquement, pas fediverse
|
|
- **Mal** — anime/manga, pas fediverse
|
|
|
|
### Propriétaires
|
|
- Goodreads (Amazon) — livres
|
|
- Letterboxd (propriétaire) — films
|
|
- Last.fm — musique
|
|
- Backloggd — jeux vidéo
|
|
|
|
## Sécurité
|
|
|
|
- **HTTPS obligatoire** (Fédération)
|
|
- **Scrapping** : la couche de récupération des métadonnées externes peut envoyer des requêtes à des services tiers, vérifier la configuration
|
|
- **Limiter les requêtes de scraping** via les rate-limits de l'admin
|
|
- **Quotas par utilisateur** : NeoDB permet de plafonner le nombre de marks/jour
|
|
- **Sauvegardes** : la base PostgreSQL (favoris, marques, critiques) suffit ; pas de gros fichiers binaires stockés
|
|
|
|
## Ressources
|
|
- Site officiel : [neodb.social](https://neodb.social)
|
|
- Documentation : [github.com/neodb-social/neodb#readme](https://github.com/neodb-social/neodb#readme)
|
|
- Instance publique : [neodb.social](https://neodb.social) pour tester avant d'héberger
|
|
- Communauté : Matrix `#neodb:matrix.org`
|
|
|
|
## Pages Liées
|
|
- [[cat-activitypub-fediverse]]
|
|
- [[recettes-docker-compose]]
|
|
- [[app-bookwyrm]]
|