En cherchant comment gèrer ma bibliothèque d’ebook et éventuellement la partager je suis tombé sur calibre-web. Voyons comment l’installer et le configurer.

Calibre-web est une interface web pour parcourir mais aussi gérer sa bibliothèque d’ebook contenur dans une base de données calibre.

Calibre est le logiciel de bureau de réfèrence pour tous les besoins autour des livres électroniques. Que ce soit le tri, le classement, la conversion entre formats, l’export d’annotations… il sait tout faire et sinon il existe un plugin pour le faire.

L’interface web présente simplement la base de données issue de calibre. Et la gestion de comptes permet de partager la bibliothèque avec d’autres personnes. Il ne me semble pas qu’on puisse “cacher” des livres (sauf à jouer des tags et des filtres peut-être), mais chaque utilisateur peut créer ses étagères pour classer les livres. La gestion des droits permet d’autoriser (ou non) les utilisateurs à télécharger ou téléverser des fichiers. L’usage du lecteur de fichiers web et la création des étagères peuvent aussi être limités.

Passons à l’installation.

Installation sur le serveur

Le projet est dans les paquets Nixos. Le paquet livre le binaire (python) et il nous reste à faire un peu d’enrobage autour.

On peut tester le fonctionnement depuis un terminal avant de l’installer.

nix shell nixpkgs#calibre-web
calibre-web -p cg.db -g dd.db

Je n’ai pas encore placé la configuration dans un fichier à part comme calibre-web.nix et pour l’instant tout est ajouté dans le configuration.nix. Il faut installer peu de choses :

  • nginx pour la gestion des virtualhosts,
  • acme pour les cetificats let’s encrypt,
  • et bien sûr calibre-web lui même.
 environment.systemPackages = with pkgs; [
  calibre-web
];

services.nginx = {
  enable = true;
  recommendedGzipSettings = true;
  recommendedOptimisation = true;
  recommendedProxySettings = true;
  recommendedTlsSettings = true;

  clientMaxBodySize = "120M";
};

security.acme.acceptTerms = true;
security.acme.defaults.email = "thomas@montfort.fr";

services.nginx.virtualHosts."XXXX.montfort.fr" = {
  enableACME = true;
  forceSSL = true;
  locations =
    {
      "/" = {
        proxyPass = "http://localhost:8083";
      };
    };
};

systemd.services.calibre-web = {
  enable = true;
  description = "calibre-web";
  serviceConfig = {
    ExecStart = "${pkgs.calibre-web}/bin/calibre-web -p /data/calibre-web/cw.db -g /data/calibre-web/gd.db -i 127.0.0.1";
    WorkingDirectory = "/data/calibre-web";
    User = "montfort";
  };
  wantedBy = [ "multi-user.target" ];
};

On ajoute aussi un service pour démarrer calibre-web et augmenter un peu la taille limite pour les uploads de fichiers dans nginx. La suite de la configuration se fait depuis l’interface web.

Configuration

Toute la configuration se fait depuis l’interface web que je trouve simple et bien faite.

La première chose à faire est de changer le mot de passe du compte admin.

On peut démarrer depuis une base de données calibre existante ou une base vide. Si on part d’une base existante il faudra aussi copier les fichiers des livres.

On peut créer des comptes locaux. Il faudra leur donner les permissions nécessaires.

Serveur OPDS

Calibre-web peut également faire office de serveur OPDS. Il s’agit d’un protocole permettant la publication d’un catalogue consommable par des liseuses. C’est un peu le flux RSS pour les livres. Koreader permet d’utiliser OPDS ainsi que quelques autres applications de lecture d’ebooks. A noter que Koreader est déjà configuré avec quelques adresses de catalogues (internet archive, projet Gutenberg…).

Pour accèder au flux OPDS il suffit d’ajouter /opds à l’url de notre serveur et de s’identifier.

Reste à faire

En l’état tout est utilisable.

L’ajout de livres dans la bibliothèque ou leur téléchargement fonctionne très bien. La lecture de tous les formats de fichiers depuis l’interface web ne pose aucun problème et est même assez utile. Par exemple pour les BD, la surface GO en utilisation tablette en mode portrait est assez pratique.

Le serveur OPDS permet d’ajouter des livres sur sa liseuse aussi simplement que depuis une boutique en ligne de vendeur de liseuse.

Il me reste encore quelques améliorations.

Déjà pour la configuration nix, avoir un fichier calibre-web.nix indépendant à inclure dans le configuration.nix. Ensuite il faudrait ajouter les outils de conversion et kepub. Le format kepub semble d’après mes lectures un format plus rapide que le epub standard sur les liseuses kobo.

Et enfin il me reste à (re)lire toute ma bilibothèque !