5.5 KiB
title: MyBibliotheca created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, books, library, php, personnel, gestionnaire] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Books, https://github.com/petterek/MyBibliotheca]
📖 MyBibliotheca
Le gestionnaire de bibliothèque personnelle en PHP — catalogue de livres, prêts, emprunteurs et étiquettes, dans la lignée directe de Tellico, conçu pour un usage familial ou associatif.
| Métadonnée | Valeur |
|---|---|
| Site web | https://github.com/petterek/MyBibliotheca |
| GitHub | https://github.com/petterek/MyBibliotheca |
| License | GPL-3.0 |
| Langage | PHP (8.0+), SQLite / MySQL |
| Étoiles GitHub | 34 ⭐ |
| Dernière MAJ | 2025-11 |
| Catégorie | cat-books |
Description
MyBibliotheca est un catalogue de livres personnel écrit en PHP, pensé pour gérer une collection domestique ou associative. Inspiré de Tellico (l'outil KDE), il offre une interface web sobre qui tourne aussi bien sur un Raspberry Pi que sur un NAS Synology. Pas de Node.js, pas de Java : juste PHP + SQLite par défaut, et le tour est joué.
L'application gère les livres (titre, auteur, ISBN, édition, année, langue, couverture, résumé), les auteurs, les éditeurs, les catégories/étagères, et surtout le prêt : vous savez en un coup d'œil qui a emprunté quoi, depuis quand, et la date de retour prévue. Un système d'étiquettes libres, de notes personnelles et d'historique de lecture complète le tableau.
Fonctionnalités phares : scan ISBN via webcam, import/export CSV et ONIX, statistiques de lecture (livres lus par an, par genre), recherche full-text, import Goodreads, multi-utilisateurs (avec rôles admin/membre), et thèmes sombres/clairs. Le code est léger (quelques Mo de RAM), ce qui en fait un candidat idéal pour un hébergement modeste.
Points forts : simplicité d'installation, base SQLite embarquée, pas de dépendance lourde, communauté francophone et anglophone active.
Points faibles : interface un peu datée, pas de lecteur EPUB intégré, pas d'OPDS, statistiques encore basiques, et le rythme de développement reste lent (1-2 releases par an).
Installation
Via Docker (recommandé)
L'image officielle n'est pas publiée sur Docker Hub ; on utilise l'image php:8.2-apache avec un Dockerfile minimal.
# docker-compose.yml
services:
mybibliotheca:
image: ghcr.io/petterek/mybibliotheca:latest
container_name: mybibliotheca
restart: unless-stopped
environment:
- TZ=Europe/Paris
volumes:
- ./data:/var/www/html/data
- ./config:/var/www/html/config
ports:
- "8088:80"
Installation manuelle (LAMP / LAMP-Stack)
# Cloner le dépôt
git clone https://github.com/petterek/MyBibliotheca.git
cd MyBibliotheca
# Configurer Apache
cp config/config.sample.php config/config.php
$EDITOR config/config.php # ajuster DB et URL
# Permissions
chown -R www-data:www-data .
chmod -R 755 . data config
# Init base
php install/install.php
Prérequis : PHP 8.0+ avec extensions pdo_sqlite, gd, mbstring, zip ; Apache avec mod_rewrite ou Nginx ; SQLite 3 (par défaut) ou MySQL 8.
Configuration
- Accéder à
http://localhost:8088et créer le compte administrateur. - Paramétrer les chemins de scan pour les couvertures, configurer le fuseau horaire (
TZ=Europe/Paris). - Activer le module de prêt et créer les comptes membres (rôle
user). - Importer un premier fichier CSV (colonnes :
title,author,isbn,publisher,year) depuis Outils > Import. - Activer le cron interne pour la mise à jour automatique des statistiques (
cron/daily_stats.php).
Reverse-proxy HTTPS
Exemple Caddy :
bibliotheca.example.com {
reverse_proxy localhost:8088
}
Alternatives
Open source
- app-komga — Lecteur + catalogue, plus moderne, mais plus lourd (Java)
- app-kavita — Lecteur rapide multi-formats (C#/.NET)
- app-calibre-web — Basé sur Calibre, orienté lecture numérique
- app-librum-books — Lecteur EPUB avec synchronisation cloud
- Tellico — L'ancêtre KDE, application locale (non web)
Propriétaires
- Goodreads — Réseau social + catalogue, mais tracking publicitaire
- LibraryThing — Freemium, catalogue riche, pas self-hostable
- Babelio — Francophone, social, propriétaire
Sécurité
- ✅ Authentification : mot de passe + sel, sessions PHP sécurisées
- ✅ CSRF tokens sur tous les formulaires
- ✅ Rôles :
admin/userpour cloisonner les actions - ✅ HTTPS obligatoire (HSTS via reverse-proxy)
- ⚠️ Base SQLite : sauvegarder régulièrement
data/mybibliotheca.db(cron + rsync) - ⚠️ Pas d'authentification 2FA native — utiliser un reverse-proxy SSO (Authelia)
- ⚠️ Upload ISBN : valider la taille et le type MIME côté serveur
Ressources
Pages Liées
- cat-books — Catégorie parente
- app-calibre-web — Alternative orientée lecture numérique
- app-komga — Lecteur moderne multi-formats
- recettes-docker-compose — Templates Docker
- app-caddy — Reverse-proxy HTTPS