Files
2026-06-09 18:40:21 +02:00

136 lines
5.5 KiB
Markdown

---
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](https://github.com/petterek/MyBibliotheca) |
| **GitHub** | [https://github.com/petterek/MyBibliotheca](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\|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.
```yaml
# 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)
```bash
# 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
1. Accéder à `http://localhost:8088` et créer le compte administrateur.
2. Paramétrer les **chemins de scan** pour les couvertures, configurer le fuseau horaire (`TZ=Europe/Paris`).
3. Activer le **module de prêt** et créer les comptes membres (rôle `user`).
4. Importer un premier fichier **CSV** (colonnes : `title,author,isbn,publisher,year`) depuis **Outils > Import**.
5. Activer le **cron** interne pour la mise à jour automatique des statistiques (`cron/daily_stats.php`).
### Reverse-proxy HTTPS
Exemple Caddy :
```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` / `user` pour 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
- [Dépôt GitHub](https://github.com/petterek/MyBibliotheca)
- [Wiki officiel](https://github.com/petterek/MyBibliotheca/wiki)
- [selfh.st — Books](https://selfh.st/apps/?tag=Books)
## 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