Tu croules sous les EPUB, PDF et autres fichiers eBooks éparpillés sur ton disque dur ? Tu rêves d’une bibliothèque numérique claire et bien organisée, sans passer par Amazon ou Google ? J’ai découvert BookLore, un projet open-source, qui pourrait bien être la solution.
BookLore, c’est quoi ?
BookLore est une application web open-source développée par adityachandelgit. Elle permet de gérer, lire et organiser ta bibliothèque numérique depuis ton propre serveur.
Jusqu’ici, j’utilisais calibre-web-automated, un outil efficace, mais son interface est plutôt dense et parfois un peu fouillis. BookLore mise au contraire sur une interface épurée et moderne, bien plus agréable à utiliser.
Autre point important : BookLore ne modifie jamais les fichiers EPUB. Contrairement à Calibre, il garde tes fichiers intacts.
Même si le projet est encore jeune, son développement est très actif. L’auteur est réactif et continue de publier des mises à jour fréquentes (au moment d’écrire ses lignes, le dernier commit était il y a 1h).

Les fonctionnalités clés de BookLore
- Organisation intuitive : classe tes livres dans des bibliothèques et des étagères selon tes envies.
- Récupération automatique des métadonnées : BookLore interroge Google Books, Amazon ou Goodreads, puis t’affiche un diff clair pour valider les modifications.
- Interface multi-utilisateur : idéal pour une bibliothèque familiale ou à partager entre amis.
- Lecture directe dans le navigateur : EPUB et PDF sont supportés.
- Téléversement par lot : pratique pour les gros ajouts.
- Serveur OPDS intégré : compatible avec Moon+ Reader, KOReader, etc.
- Envoi de livres par email : simple et rapide.
- Connexion via OIDC : compatible avec Authentik, Keycloak, etc.

Déploiement rapide avec Docker
Envie de tester BookLore sans prise de tête ? Voici un exemple de déploiement avec Docker Compose :
services:
booklore:
image: ghcr.io/adityachandelgit/booklore-app:latest
container_name: booklore
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore
- DATABASE_USERNAME=booklore
- DATABASE_PASSWORD=your_secure_password
depends_on:
mariadb:
condition: service_healthy
ports:
- "6060:6060"
volumes:
- /your/local/path/to/booklore/data:/app/data
- /your/local/path/to/booklore/books:/books
restart: unless-stopped
mariadb:
image: lscr.io/linuxserver/mariadb:11.4.5
container_name: mariadb
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- MYSQL_ROOT_PASSWORD=super_secure_password
- MYSQL_DATABASE=booklore
- MYSQL_USER=booklore
- MYSQL_PASSWORD=your_secure_password
volumes:
- /your/local/path/to/mariadb/config:/config
restart: unless-stopped
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 10
Une fois en place, lance simplement la stack :
docker-compose up -d
Accède ensuite à http://localhost:6060
. Un compte admin est créé par défaut. L’ajout de livres fonctionne comme sur Plex : tu déclares un dossier, BookLore scanne le contenu et récupère les infos disponibles.

Quelques limites actuelles
BookLore reste jeune. Voici ce qu’il faut garder en tête :
- Le support PDF est présent mais parfois instable avec des documents complexes.
- Les audiobooks ne sont pas encore de la partie, mais c’est prévu dans la roadmap.
- La récupération de métadonnées est efficace, mais un peu en deçà de calibre-web-automated.
Et la suite pour BookLore ?
L’avenir s’annonce prometteur. Voici ce qui est prévu selon la roadmap GitHub :
- Compatibilité avec les fichiers CBZ, CBR et CB7 (pratique pour les comics).
- Amélioration du serveur OPDS.
- Ajout d’un système d’importation multi-fichiers plus flexible.
Conclusion
BookLore, c’est un peu comme si Calibre avait passé un coup de polish. Plus moderne, plus léger, et surtout, plus clair. Si tu es du genre à aimer les interfaces bien pensées et les solutions que tu peux héberger toi même, tu vas apprécier.
Tout n’est pas encore parfait, mais le projet avance vite. Le code est propre, la communauté commence à se construire, et les fonctionnalités les plus demandées sont déjà en route.