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

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

  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 :

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

Pages Liées