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.
Étant sous Raspian, un simple apt install calibre
m’a permis d’effectuer l’installation de Calibre.
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.
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
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
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
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
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.
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