Winnt is not NT

Installation de Calibre serveur sous Linux

Posté le 30/12/2017

Commençant à avoir beaucoup de fichier EPUB, j’ai eu besoin de les classer par genres, auteurs, etc.

De même, permettre à ma femme de pouvoir facilement et à tous moment accéder à ceux-ci en bénéficiant d’un résumé à partir de sa tablette (qui lui sert de liseuse) était indispensable.

Je me suis donc très rapidement lancé dans l’installation de Calibre sur mon Raspberry Pi auquel j’ai depuis quelques temps adjoint un disque dur externe en USB.

Installer Calibre

Étant sous Raspian, un simple apt install calibre m’a permis d’effectuer l’installation de Calibre.

Configurer Calibre en mode serveur

L’une des fonctionnalités de Calibre que je trouve commode est qu’il peut aussi faire office de serveur.

Toutefois, si je voulais ne pas être obligé de relancer le serveur après chaque coupure électrique intempestive, il me fallait donc créer un fichier de service pour Systemd.

Le site de Calibre étant très complet, j’y ai trouvé le fichier

 [Unit]
 Description=calibre content server
 After=network.target

 [Service]
 Type=simple
 User=mylinuxuser
 Group=mylinuxgroup
 ExecStart=/opt/calibre/calibre-server "/path/to/calibre library directory"

 [Install]
 WantedBy=multi-user.target

Un rapide parcours de la documentation sur le site montre que quelques corrections sont à apporter à ce fichier.

Modification de l’utilisateur

Bien sûr il faut commencer par remplacer mylinuxuser et mylinuxgroup par le nom et le groupe utilisateur correct pour le système sur lequel Calibre est installé (je vous laisse effectuer cette recherche vous même).

Notre fichier de service devient donc : [Unit] Description=calibre content server After=network.target

 [Service]
 Type=simple
 User=**<mon utilisateur>**
 Group=**<mon groupe utilisateur>**
 ExecStart=/opt/calibre/calibre-server "/path/to/calibre library directory"

 [Install]
 WantedBy=multi-user.target

Correction du répertoire de lancement du serveur

Toutefois, un simple locate calibre-server dans un terminal nous montre que le répertoire de calibre-server est /usr/bin et non /opt.

Il faut donc corriger le fichier service comme suit :

 [Unit]
 Description=calibre content server
 After=network.target

 [Service]
 Type=simple
 User=<mon utilisateur>
 Group=<mon groupe utilisateur>
 ExecStart=/usr/bin/calibre-server "/path/to/calibre library directory"

 [Install]
 WantedBy=multi-user.target

Correction du répertoire de la bibliothèque

Ayant adjoint un disque dur externe à mon Raspberry Pi (et modifié mon fichier /etc/fstab en conséquence), il me faut modifier le répertoire contenant la bibliothèque.

Afin de vérifier les options supportées par le serveur, j’ai lancé la commande calibre-server --help dans un terminal et obtenu les informations suivantes :

 Utilisation: calibre-server [options]

 Démarre le serveur de contenu calibre. Le serveur de contenu calibre publie votre bibliothèque calibre       
 sur internet. L’interface par défaut  vous permet de parcourir la bibliothèque calibre par catégories.  
 Vous pouvez aussi accéder à une interface optimisée pour les navigateurs mobiles sur /mobile et une
 interface basée sur OPDS pour utiliser avec des applications de lecture sur /opds.

 L’interface OPDS est affichée automatiquement via BonJour.


 Chaque fois que vous donnez des arguments à calibre-server dans lesquels il y a des espaces, mettez
 les arguments entre guillemets. Par exemple "C:\certains chemins avec espaces"

 Options:
      --version             affiche le numéro de version du logiciel et quitte

      -h, --help            affiche ce message d'aide et quitte

      -p PORT, --port=PORT  Le port sur lequel écouter. Par défaut : 8080

      -t TIMEOUT, --timeout=TIMEOUT
                    Délai d’attente du serveur en secondes. Par défaut : 120

      --thread-pool=THREAD_POOL
                    Le nombre de processus de travail à utiliser. Par défaut : 30

      --password=PASSWORD      Indiquer un mot de passe pour restreindre l’accès. 
                               Par défaut, l’accès n’est pas restreint.

      --username=USERNAME      Nom d’utilisateur pour le contrôle d’accès. 
                               Par défaut : 'calibre'

      --develop      Mode développement. Les journaux du serveur sous stdout. avec des informations 
                     de connexion plus commentées et des temps d'attente plus bas.

      --max-cover=MAX_COVER
                    La taille maximum pour les couvertures affichées. Par défaut : '600x800'

      --max-opds-items=MAX_OPDS_ITEMS
                    Le nombre maximum de correspondances retournées par une requête OPDS. 
                    Ceci affecte l’intégration dans Stanza, Wordplayer, etc.

      --max-opds-ungrouped-items=MAX_OPDS_UNGROUPED_ITEMS
                    Groupe les articles en catégories telles que auteur/étiquettes à l’aide de la
                    première lettre quand il y a plus que ce nombre d’articles. 
                    Par défaut : 100.
                    Définir à une valeur élevée pour désactiver le groupement.

      --url-prefix=URL_PREFIX
                    Préfixe à ajouter avant toutes les URLs. Utile pour faire du reverse proxy sur ce
                    serveur à partir d’Apache/nginx/etc.

      --with-library=WITH_LIBRARY
                    Chemin vers le dossier de la bibliothèque à utiliser avec le serveur de contenu

      --pidfile=PIDFILE     Écrire le PID du processus dans le fichier spécifié

      --daemonize         Exécute le processus en tâche de fond comme un daemon. Aucun effet sur les
                          fenêtres.

      --restriction=RESTRICTION, --virtual-library=RESTRICTION
                    Indique une bibliothèque virtuelle à employer pour cette appel. Cette option
                    remplace les paramètres par bibliothèque spécifiés dans l'interface graphique. Pour
                    la compatibilité, si la valeur n'est pas une bibliothèque virtuelle mais est une
                    recherche enregistrée, cette recherche enregistrée est utilisée. Notez également
                    que si vous ne spécifiez pas de restriction, la valeur spécifique dans dans
                    l'interface graphique (le cas échéant) sera utilisée.

      --auto-reload       Recharger automatiquement le serveur quand le code source est modifié. 
                          Peut ne pas fonctionner dans tous les environnements.

J’utilise donc l’option --with-library suivie du chemin de la bibliothèque.

J’obtiens donc le fichier de service suivant :

 [Unit]
 Description=Serveur Calibre
 After=network.target

 [Service]
 Type=simple
 User=<mon utilisateur>
 Group=<mon groupe utilisateur>
 ExecStart=/usr/bin/calibre-server --with-library "/mnt/<HD externe>/<Bibliothèque calibre>"

 [Install]
 WantedBy=multi-user.target

Ajustement du nombre de processus

Sur un Raspberry Pi le nombre de processus lancé par un serveur est à surveiller car un nombre trop élever peut être source de ralentissements important. Ce qui est le cas avec la valeur par défaut qui est de 30.

J’ai donc procédé à une diminution de cette valeur après quelques tâtonnements ce qui me donne à la finale le fichier suivant :

 [Unit]
 Description=Serveur Calibre
 After=network.target

 [Service]
 Type=simple
 User=<mon utilisateur>
 Group=<mon groupe utilisateur>
 ExecStart=/usr/bin/calibre-server --with-library "/mnt/<HD externe>/<Bibliothèque calibre>" --thread-pool=5

 [Install]
 WantedBy=multi-user.target

Mise à jour de la bibliothèque

Afin de travailler confortablement et d’avoir une sauvegarde si besoin, j’ai installé Calibre sur mon PC personnel. Cela me permet d’ajouter des livres, corriger des erreurs de saisie, insérer des résumés…

Mais, je me retrouve à avoir une version différente de ma bibliothèque entre mon PC et mon Raspberry Pi.

Pour le moment j’utilise Double Commander qui avec sa commande « Appairer les dossiers » me permet de comparer rapidement les dossiers entre les deux, supprimer les dossiers n’existant plus sur le PC et transférer les nouveaux vers le Raspberry Pi.

J’avais commencé à utiliser rsync, mais pour une raison que je ne comprends pas celui-ci s’obstinait à ne pas me transférer 2 répertoires et à systématiquement les supprimer sur le Raspberry Pi.

Conclusion

J’ai donc depuis plusieurs mois un serveur Calibre parfaitement fonctionnel directement accessible avec les différents périphériques androïd (tablettes et téléphones) moyennant l’installation et le paramétrage de FBReader sur ceux-ci. FBReader étant le lecteur EPUB qui m’a le plus convaincu sur ce type de périphérique.

J’espère que cet article vous aidera pour l’installation de Calibre comme bibliothèque numérique.

Commentaires

comments powered by Disqus