Calibre Web & Docker...

J'utilise Calibre pour gérer une bibliothèque libre d'ouvrages numériques. Pour la partager avec mes enfants j'avais jadis monté sur un Synology Calibre Web sous Docker, sans trop savoir de quoi il en retournait, mais bon ça fonctionnait depuis deux ans. J'ai donc décidé d'aller plus loin et de monter ça sur une VM Ubuntu

Installer la VM et Docker n'est pas un soucis et il existe plein de tutos. Installer le container Calibre Web n'est pas non plus un problème, par contre ce que j'ai mis des jours à essayer de faire fonctionner c'est relier ma bibliothèque restée sur le Nas. Naturellement j'ai essayé de monter un volume NFS, voire CIFS, si je parvenais bien à lire et écrire dans ce volume depuis le container Calibre-Web, je n'ai jamais réussit à ce que Calibre Web puisse ainsi fonctionner. Il se passe quelque chose que le développeur de cette image ne sait expliquer, et encore moins moi. Mais en informatique, quand on ne sait pas faire quelque chose, on essaie de trouver un contournement, et je me suis donc dit que si le volume NFS monté dans Docker n'était pas exploitable, ça pourrait peut être fonctionner avec un volume NFS monté directement sous Linux. Et banco !

Explications...

Alors on commence par mettre à jour et installer NFS

> sudo apt update
> sudo apt install nfs-common

Puis on crée les deux répertoires locaux que l'on va utiliser pour nos montages :

> sudo apt update
> sudo apt install nfs-common

Et on mappe nos ressources distantes :

> sudo mount 192.168.20.22:/volume2/Public/Books/calibre /nfs/books
> sudo mount 192.168.20.22:/volume2/Public/Books/calibre-web /nfs/books-config

On crée nos répertoires de travail qui seront utilisés par Calibre Web, ça va nous permettre de vérifier que ça fonctionne :

> sudo mkdir -p /nfs/books.config/config
> sudo mkdir -p /nfs/books.config/app
> sudo mkdir -p /nfs/books.config/kindlegen

Et ensuite on édite le fichier /etc/fstab afin de rendre la chose persistante :

. . .
192.168.20.22:/volume2/Public/Books/calibre /nfs/books   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.20.22:/volume2/Public/Books/calibre-web /nfs/books-config    nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Bon, je n'ai bien sur rien inventé et les détails sont par exemple ici.

Maintenant je vais pouvoir créer mon Docker calibre-web après avoir adapté la config à ma sauce, c-a-d que tous mes répertoires de travail seront sur mon Nas :

> docker create --name=calibre-web --restart=always \
-v /nfs/books:/books \
-v /nfs/books-config/config:/calibre-web/config \
-v /nfs/books-config/app:/calibre-web/app \
-v /nfs/books-config/kindlegen:/calibre-web/kindlegen \
-e USE_CONFIG_DIR=true \
-e SET_CONTAINER_TIMEZONE=true \
-e CONTAINER_TIMEZONE=Europe/Paris \
-e PGID=65539 -e PUID=1029 \
-p 8083:8083 \
technosoft2000/calibre-web

J'aurais pu faire ça avec Portainer par exemple, mais c'est finalement bien plus simple de le faire en CLI, surtout avec la masse d'essai que j'ai du faire... D'autant plus que ça ne fonctionne pas, Calibre Web ne fonctionne pas avec le répertoire de config distant. Je me suis donc résolu à le laisser en local, mais pas dans le container mais un répertoire local au cas ou je casserait le container...

> docker create --name=calibre-web --restart=always \
-v /nfs/books:/books \
-v /var/lib/docker/data/calibre-web:/calibre-web/config \
-e USE_CONFIG_DIR=true \
-e SET_CONTAINER_TIMEZONE=true \
-e CONTAINER_TIMEZONE=Europe/Paris \
-e PGID=65539 -e PUID=1029 \
-p 8083:8083 \
technosoft2000/calibre-web

Voilà ! Et comme je ne pense pas pouvoir récupérer mon ancienne configuration, il ne me reste plus qu'à reconfigurer et à créer mes utilisateurs.

Sources

 

 

Commentaires (8) -

  • Bonjour, j'ai essayé de suivre vos explications mais il y a un soucis dans les balises code après : "Puis on crée les deux répertoires locaux que l'on va utiliser pour nos montages :"

    J'ai créé 2 dossiers dans mon répertoire /home/  avec la commande " makedir - p "

    - nfs/books
    - nfs/books-config

    Ensuite :

    Le répertoire calibre sur mon NAS est : /volume1/Ebook/Bibliotheque_calibre
    L'adresse IP de mon NAS : 192.168.1.2

    Donc je tape la commande :

    " sudo mount 192.168.1.2:/volume1/Ebook/Bibliotheque_calibre /nfs/books "

    qui me retourne :

    "mount.nfs: access denied by server while mounting 192.168.1.2:/volume1/Ebook/Bibliotheque_calibre"

    De plus, quelle est la différence entre le répertoire calibre et calibre-web ?

    Merci d'avance pour l'aide, si ce n'est pas trop tard.
    • Attention à ce que le répertoire /home soit accessible par le compte qui fait tourner Docker...
      • Merci pour l'aide mais je ne comprends pas.
        /home de la machine virtuelle qui héberge calibre-web ?

  • Problème résolu.
    Il fallait juste ouvrir les droits nfs pour le répertoire dans mon NAS.
    A bientôt.
  • Pour mon calibre-web, j'avais des problèmes d'accès avec cette méthode de montage, que j'ai remplacé par autofs, qui permet d'automatiser le démontage/remontage en cas d'erreur. Utile au démarrage du système si le montage n'est pas accessible
  • En fait, il y a une coquille dans l’article. Les lignes
    > sudo apt update
    > sudo apt install nfs-common

    Sont citées deux fois et les instructions makedir ont sauté.
    • Merci pour la coquille. Il faudrait que je corrige ça !
      A refaire je ferait peut être un docker-compose...
      Alternative : https://www.cloudron.io/ qui va permettre une install native facile ;-)

Ajouter un commentaire

Loading