Chez ZeGuigui

Le blog d'un geek chasseur de licornes au clair de lune

Chez ZeGuigui
Technique

Installer Calibre sur un Pi3 sous Docker

Avec le temps on accumule de plus en plus de fichiers en tout genre : photos, vidéos… et livres. Pendant longtemps j’ai utilisé Calibre sur mon ordinateur mais j’ai voulu passer à l’étape d’après. Installer Calibre sur un Raspberry Pi 3 (mais ça marche aussi avec le 4), sous Docker tout en conservant ma bibliothèque de livres sur mon NAS. Je pensais que ça serait fait en 10 minutes mais c’était loin d’être aussi simple !

Serveur de contenu de Calibre

La première étape consiste à avoir un Pi3 correctement installé avec Docker. Je ne vais pas vous faire de tutoriel sur ce point, il y en a beaucoup sur le net. Pour le reste de ce billet vous verrez que j’ai utilisé Portainer pour gérer mes images docker mais il n’est en rien obligatoire.

Vient ensuite le choix de l’image docker pour installer Calibre. Il y a en fait un premier choix à faire entre le Calibre original et Calibre-Web. J’ai pour ma part choisi d’utiliser le premier (les deux étant au final complémentaires). J’ai donc installé l’image linuxserver/calibre:arm32v7-arch (pour un Pi4 on choisirait en 64 bits). Hélas cela ne fonctionne pas, l’image a un bug et il faut plonger dans les anciennes versions pour en trouver une qui fonctionne correctement (tag arm32v7-version-02a2ceb8 – cf. cette discussion).

J’ai testé l’image avec un volume local au Raspberry Pi. Je voulais maintenant pouvoir utiliser un répertoire de mon NAS (qui a l’avantage d’être backupé automatiquement). Pour cela on ne peut pas utiliser l’interface de Portainer car il faut spécifier des options supplémentaires :

  • il faut forcer l’UID et le GID du partage pour correspondre à celui de l’utilisateur qui fait tourner l’image Calibre. Par défaut l’image Calibre refuse de tourner sous root (et c’est très bien comme ça), je la fais donc tourner sous uid/gid 1000 qui correspond à l’utilisateur pi de l’OS. Si on ne force pas ces même uid/gid pour le partage CIFS alors il est monté sous root et l’application ne peut rien écrire dessus !
  • il faut ajouter l’option nobrl pour le montage CIFS. Ceci a pour effet de ne pas envoyer les commandes de LOCK au travers du partage CIFS. Sans cela Calibre croit que la base est systématiquement corrompue / verrouillée

Voici la commande à saisir sur le pi pour créer un tel volume (sous root) :

docker volume create \
	--driver local \
	--opt type=cifs \
	--opt device=//nas.local/books \
	--opt o=addr=nas.local,username=login,password=*****,uid=1000,gid=1000,nobrl,rw,vers=3.0 \
	--name calibre-cifs

J’ai aussi créé un volume pour contenir la configuration de l’image (monté dans /config).

Les volumes utilisés par le container

Une fois toutes ces étapes franchies, on peut créer le container :

  • on expose les ports 8080 et 8081 (8080 pour Calibre et 8081 pour le serveur web intégré si on souhaite l’utiliser ce qui était mon cas)
  • on configure les variables d’environnement (PUID, PGID, TZ et PASSWORD)
  • on ajoute le volume local en /config
  • on ajoute le volume CIFS en /nas

et on démarre l’image ! On attend un peut et ensuite on peut se connecter à http://monpi.local:8080/ afin de faire le paramétrage de Calibre.

Utilisateur « abc ». Le mot de passe est celui indiqué au démarrage du container

Cette image utilise un serveur Guacamole qui expose au travers du navigateur un bureau virtuel. On utilise donc directement Calibre comme sur son ordinateur. Il faudra indiquer /nas (ou tout autre sous-répertoire adapté) à Calibre comme emplacement de bibliothèque. On pourra ensuite importer ses ebooks existants et activer ou non le serveur de contenu sur le port 8081.

On utilise directement Calibre dans son navigateur !

Bonne lecture !

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.