Installer Calibre-web avec Docker
Guide d'installation de Calibre-web sous Docker.

Au sommaire :
- 1-Qu'est-ce que Calibre Web ?
- 2-Prérequis
- 3-Déploiement
- 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.
2-Prérequis
Pour déployer Calibre-web, vous devez disposer d'une machine virtuelle fonctionnant sous Ubuntu Server.
Création de la machine virtuelle :
Virtualisation avec Proxmox VE : Si vous partez de zéro, suivez mon guide détaillé pour virtualiser Ubuntu sur Proxmox VE avec des réglages optimisés.

Automatisation avec Cloud-Init : Pour gagner du temps lors de la configuration, utilisez un template Cloud-Init. Cela permet d'automatiser et de simplifier l'initialisation de vos machines virtuelles. Retrouvez les instructions dans ce guide.

Installation des outils nécessaires :
Docker et Docker Compose : Une fois la machine virtuelle prête, installez Docker et Docker Compose, indispensables pour gérer et orchestrer vos conteneurs. Ce guide vous accompagnera dans l'installation.

Exposition de l'application :
Proxy inverse avec Traefik : Pour exposer vos applications sur Internet de manière sécurisée, configurez un proxy inverse. Traefik est une solution recommandée. Suivez ce guide pour l'installation.

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.
networks:
# default network
default:
driver: bridge
# Traefik network
web:
name: web
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.

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

On va ajouter les labels habituels ainsi que le middleware "basic-auth" pour protéger un minimum l’accès à l'application.
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.<domain_name>`)
- 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.

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.
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.
