Installer Calibre-web avec Docker

Au sommaire :

  • 1-Qu'est-ce que Calibre Web ?
  • 2-Prérequis
  • 3-Installation
  • 4-Configuration
  • 5-Changer le mot de passe
  • 6-Configuration Traefik
  • 7-Bonus

1-Qu'est-ce que Calibre Web ?

Calibre-web est une application qui vous permet de gérer votre bibliothèque numérique via une interface web.

GitHub - janeczku/calibre-web: Web app for browsing, reading and downloading eBooks stored in a Calibre database
:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database - GitHub - janeczku/calibre-web: Web app for browsing, reading and downloading eBooks stored in a Calibre d…

2-Prérequis

Il vous faudra une machine virtuelle sous Ubuntu Server 22.04 LTS.

Voici le guide pour ceux qui veulent repartir de zéro.

Virtualiser Ubuntu Server 22.04 LTS sur Proxmox VE
Guide d’installation de Ubuntu Server 22.04 LTS sur Proxmox VE avec mes meilleurs réglages.

Si vous voulez gagner du temps, utilisez un template cloud-init.

Initialiser vos machines virtuelles avec Cloud-init sur Proxmox VE
Guide d’installation de Cloud-Init qui va vous permettre d’automatiser vos déploiements

Enfin, suivez ce guide pour installer Docker, Docker Compose et préparer vos variables d'environnement.

Installer Docker
Guide d’installation de Docker.

3-Déploiement

Commencez par créer un dossier "docker" à la racine du dossier utilisateur"

mkdir -p ~/docker

Créez un fichier nommé "compose.yml"

touch ~/docker/compose.yml

Ouvrez le fichier "compose.yml" et copiez cette configuration.

version: "3.9"

networks:
# Docker Bridge Network
  default:
    driver: bridge

services:

  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      PUID: ${PUID}
      PGID: ${PGID}
      TZ: ${TZ}
      DOCKER_MODS: linuxserver/mods:universal-calibre #optional
    volumes:
      - ${APPDATA}/calibre-web:/config
      - ${MEDIAS}/books:/books
    ports:
      - 8083:8083
    restart: unless-stopped

Pour les options communes :

  • version : version du fichier compose : https://docs.docker.com/compose/compose-file/compose-file-v3/
  • services : c'est là qu'il faudra ajouter les configurations de vos conteneurs
  • image : nom du registry suivi du nom de l'application (lscr.io/linuxserver/app_name)
  • container_name : le nom du conteneur, sinon Docker en choisira un de manière aléatoire (mieux vaut le nommer vous même)
  • environment : il y a les variables de base (PUID, PGID, TZ) et des variables spécifiques aux applications (pas besoin d'y toucher)
  • volumes : variable ${APPDATA) (/home/user_name/appdata) suivi du nom de l'application (/app_name) puis ${MEDIAS} (/mnt/books) qui de préférence sera un partage NFS
  • ports : 8083
  • restart : unless-stopped par défaut. Le daemon de Docker redémarrera automatiquement le conteneur sauf si vous l'arretez, il faudra le démarrer manuellement

Téléchargez l'image et créez le conteneur.

docker compose pull && docker compose create

Puis démarrez le conteneur.

docker start calibre-web

4-Configuration

Accédez à l'applications en tapant l'adresse IP du conteneur LXC ou de la machine virtuelle suivi du numéro de port.

Voici les identifiants par défaut :

  • user : admin
  • password : admin123

Ensuite, allez dans Configuration puis cliquez sur "Éditez la configuration principale".

  • "Autoriser le téléversement de fichiers" vous permettra d'ajouter vos livres directement via l'interface web sans passer par le client bureautique Calibre. je vous conseille de l'activer.
  • "Autoriser la navigation anonyme" permet à n'importe qui de "consulter" votre bibliothèque. Par défaut, lecture et téléchargement impossible donc il va falloir aller sur le compte "Guest" dans "Administration" et activer ces deux options. Si vous avez des livres sous licence et que vous êtes auto-hébergé, mieux vaut pas tenter le coup pour ne pas avoir de problèmes mais si vous partager uniquement votre instance à quelques amis ou que vous le rendez accessible uniquement sur Tor ou Lokinet, ça peut-être une excellente idée.
  • "Autoriser l'inscription publique" permet à n'importe qui de créer un compte sur votre instance. Pour ma part, je préfère contrôler la gestion des comptes et ne pas laisser n'importe qui y accéder. Surtout, pour des mesures de sécurité je génère les mots de passe via Bitwarden avec des chaines de 20 caractères.

J'ai pas encore tester la synchro Kobo (j'ai une liseuse) ou la connexion à GoodReads mais dés que je peux je mettrais à jour le tutoriel.

Ensuite, allez dans "Configuration de l’interface utilisateur".

Vous pouvez changer de thème. Personnellement, celui par défaut me convient très bien mais vous pouvez tester le thème CaliBur! qui ressemble beaucoup à celui de Plex.

Ensuite, paramétrez les réglages par défaut pour chaque nouveau compte utilisateur. J'active le téléchargement et la lecture des livres par défaut mais j'interdis le téléversement, l'édition et le changement de mots de passe (par mesure de sécurité).

Une fois que vous avez fini, commencez par ajouter un livre en cliquant sur "Téléverser".

Comme vous pouvez le constater, il a immédiatement retrouver les informations au sujet du livre.

Dans le cas contraire, cliquez sur "Obtenir les métadonnées" pour trouver celui qui correspond.

Vous pouvez également créé une étagère pour y placer vos livres favoris ou classifier par thème.

Voici un exemple de mon instance dédié aux livres sur l'informatique.

5-Changer le mot de passe

Si vous n'avez pas configurer un serveur SMTP, vous ne pourrez pas recevoir de mail en cas d'oubli de votre mot de passe.

Pour le faire manuellement, il va falloir exécuter une commande à l’intérieur du conteneur.

docker exec -it calibre-web bash

Allez dans le dossier de l'application.

cd /app/calibre-web

Puis utilisez le script Python nommé "cps.py", indiquez le chemin de la base de données puis indiquez le nom de l'utilisateur et un mot de passe temporaire comme celui indiqué (chiffres, lettres, caractères spéciaux sinon ça affichera un message d'erreur).

python3 cps.py -p /config/app.db -s <user>:Admin123456!

Sortez du conteneur en tapant "exit", redémarrez le conteneur avec la commande "docker restart calibre-web" et revenez à l'interface web.

Cliquez sur "Administration" et sur l'utilisateur dont vous avez modifier le mot de passe puis changer ce dernier par un plus robuste.

Command Line Interface
:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database - janeczku/calibre-web
Admin login broken; Password reset doesn’t have an effect. · Issue #2853 · janeczku/calibre-web
Running on docker: root@53263d0a42f5:/app/calibre-web# python3 ./cps.py -v Calibre-Web version: 0.6.20 -2023-03-27T19:49:57+02:00 My admin login is suddenly broken. Resetting the password: root@532…

6-Configuration Traefik

Si vous souhaitez exposer votre application sur l'internet public, suivez mon guide sur le reverse proxy Traefik.

Guide de déploiement de Traefik
Au sommaire : * Qu’est-ce que Traefik ? * Qu’est-ce qu’un reverse proxy ? * Prérequis * Acheter un nom de domaine * Configuration initiale de Traefik * Ouvrir les ports du routeur * Les adresse IP publiques partagés et dynamique * Déploiement de Traefik * Exposer une application 1-Qu’est…

On va ajouter les labels habituels ainsi que le middleware "basic-auth" pour protéger un minimum l’accès à l'application.

version: "3.9"

networks:
  web:

services:

  traefik:
    container_name: traefik
    image: traefik:latest
    restart: always
    network:
      web:
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ${APPDATA}/traefik/logs:/logs
      - ${APPDATA}/traefik/traefik.yml:/traefik.yml
      - ${APPDATA}/traefik/dynamic.yml:/dynamic.yml
      - ${APPDATA}/traefik/letsencrypt/acme.json:/acme.json
    labels:
      - traefik.enable=true
      - traefik.http.routers.traefik-dash.entrypoints=websecure
      - traefik.http.routers.traefik-dash.rule=Host(`traefik.<votredomaine>.ovh`)
      - traefik.http.routers.traefik-dash.service=api@internal
      - "traefik.http.routers.traefik.middlewares=middlewares-basic-auth@file"

  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      PUID: ${PUID}
      PGID: ${PGID}
      TZ: ${TZ}
      DOCKER_MODS: linuxserver/mods:universal-calibre #optional
    volumes:
      - ${APPDATA}/calibre-web:/config
      - ${MEDIAS}/books:/books
    ports:
      - 8083:8083
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.calibre-web.entrypoints=websecure
      - traefik.http.routers.calibre-web.rule=Host(`calibre-web.<votredomaine>.ovh`)
      - traefik.http.routers.calibre-web.service=emulatorjs-svc
      - traefik.http.services.calibre-web-svc.loadbalancer.server.port=8083
      - traefik.http.routers.calibre-web.tls.certresolver=letsencrypt

Enregistrez le fichier "compose.yml" et déployez les conteneurs.

docker compose create && docker start traefik calibre-web calibre

7-Bonus

Quelle liseuse acheter ?

Si les écrans LCD/LED fatiguent vos yeux, vous pouvez toujours lire vos livres sur une liseuse

Pour les petites bourses, je vous conseille la liseuse Kobo qu'on trouve sur Aliexpress à moins de 60 euros. C'est la plus abordable de toutes et celle que j'utilise.

57.29€ 60% de réduction|Kobo – Liseuse De Livres Électroniques Glo, Écran Tactile De 6 Pouces, Wi-fi, 1024x768 Px - E-book Lecteurs - AliExpress
Achetez malin, vivez mieux! Aliexpress.com

Comment télécharger des livres numériques ?

Le site le plus connu est Z-Library. Vous allez pouvoir trouver des millions de livres au format epub et PDF.

Bien sûr, inutile de vous dire que c'est illégal et que de nombreux livres sous soumis à licence.

Z-Library – the world’s largest e-book library. Your gateway to knowledge and culture.
Z-Library – the world’s largest e-book library. Your gateway to knowledge and culture. | Download books for free. Find books

Comme moyen légal, je vous conseille le site Packt qui propose des formules d'abonnement très abordable et qui vous propose d'obtenir gratuitement les livres que vous lisez au format epub et PDF que vous pourrez ajouter par la suite dans Calibre.

Packt | Programming Books, eBooks & Videos for Developers
Packt is the online library and learning platform for professional developers. Learn Python, JavaScript, Angular and more with eBooks, videos and courses