📚 Calibre Web sur Alpine Linux
📚 Calibre Web est une application Web offrant une interface claire pour la navigation, la lecture et le téléchargement de livres électroniques à l’aide d’une base de données Calibre existante.
Calibre Web
- Interface HTML5 Bootstrap 3
- configuration graphique complète
- Gestion des utilisateurs avec des permissions par utilisateur à grain fin
- Interface administrateur
- Interface utilisateur en brésilien, tchèque, néerlandais, anglais, finnois, français, allemand, grec, hongrois, italien, japonais, khmer, polonais, russe, chinois simplifié, espagnol, suédois, turc, ukrainien.
- Flux OPDS pour les applications de lecture de livres électroniques
- Filtrez et recherchez par titres, auteurs, tags, séries et langues.
- Créer une collection de livres personnalisée (étagères)
- Prise en charge de l’édition des métadonnées des livres électroniques et de la suppression des livres électroniques de la bibliothèque Calibre.
- Prise en charge de la conversion des eBooks par les binaires Calibre
- Restriction du téléchargement des livres électroniques aux utilisateurs connectés
- Support pour l’enregistrement public des utilisateurs
- Envoi d’eBooks vers des appareils Kindle d’un simple clic de souris
- Synchronisation de vos appareils Kobo avec votre bibliothèque Calibre via Calibre-Web
- Prise en charge de la lecture des eBooks directement dans le navigateur (.txt, .epub, .pdf, .cbr, .cbt, .cbz, .djvu)
- Téléchargement de nouveaux livres dans de nombreux formats, y compris les formats audio (.mp3, .m4a, .m4b)
- Prise en charge des colonnes personnalisées de Calibre
- Possibilité de masquer le contenu en fonction des catégories et du contenu des colonnes personnalisées par utilisateur.
- Possibilité de mise à jour automatique
- Connexion “Magic Link” pour faciliter la connexion aux eReaders
- Connexion via LDAP, google/github oauth et via l’authentification proxy.
Proxmox 103 (pvm-alpine02)
1
ssh rad@192.168.0.222 -p 55222 -i /home/yann/.ssh/pvm-alpine02
Les outils sur alpine linux
How To: Install Calibre Web in Linux
1
2
3
4
# Install Python 3.x packages (select virtualenv only if you plan to use it)
sudo apk add python3 py3-pip py3-virtualenv py3-virtualenv-pyc
# Install packages to compile wheel extensions
sudo apk add build-base linux-headers python3-dev
Créer le dossier qui va accueillir le point de montage.
1
2
sudo mkdir -p /srv/media/BiblioCalibre
sudo chown 1000:1000 -R /srv/media/BiblioCalibre
Pour monter automatiquement lee partage NFS, une entrée doit être faite dans /etc/fstab
1
sudo nano /etc/fstab
Ajouter en fin de fichier, la ligne suivante:
1
192.168.0.205:/sharenfs/multimedia/eBook/BiblioCalibre /srv/media/BiblioCalibre nfs4 rw,_netdev 0 0
Recharger le montage NFS
1
sudo mount -a
Installation via pip
Créer un environnement virtuel:
Il est essentiel d’isoler votre installation de Calibre-Web pour éviter les conflits de dépendance.
Créer un environnement virtuel en exécutant:
1
python3 -m venv calibre-web-env
Activer l’environnement virtuel:
1
source calibre-web-env/bin/activate # prompt: ((calibre-web-env) ) pvm-alpine02:~$
Installer Calibre-Web: Utilisez pip pour installer l’application:
1
pip install calibreweb
Démarrer Calibre-Web: Après l’installation, vous pouvez démarrer l’application avec:
1
cps
Service OpenRC calibre-web
Créer le fichier /etc/init.d/calibre-web:
1
sudo nano /etc/init.d/calibre-web
Contenu du fichier
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/sbin/openrc-run
description="Calibre-Web"
depend() {
need net
after firewall
}
# Calibre-Web does not know how to background itself
command_background=true
# Insert the command you decided to use to start calibre-web
command="/home/rad/calibre-web-env/bin/cps"
# Change if needed
command_args="-o /var/log/calibre-web.log"
# RC_SVCNAME variable contains the name of this service
pidfile="/run/${RC_SVCNAME}.pid"
# user:group the command should run under
command_user="rad:rad"
Les droits
1
sudo chmod 0755 /etc/init.d/calibre-web
Lancer le service calibre-web :
1
sudo rc-service calibre-web start
Activation au démarrage
1
2
sudo rc-update add calibre-web
# * service calibre-web added to runlevel default
Calibre-web est accessible en local
1
http://localhost:8083
cwwk - proxy nginx
Configuration proxy nginx pour l’écoute calibre-web ip 192.168.0.222 port 8083
Le fichier de configuration nginx /etc/nginx/conf.d/calibre.rnmkcy.eu.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
server {
listen [::]:443 ssl;
listen 443 ssl;
server_name calibre.rnmkcy.eu;
# SSL Configuration et sécurité
include /etc/nginx/conf.d/ssl-modern.inc;
# Logging
access_log /var/log/nginx/calibre.rnmkcy.eu.log;
error_log /var/log/nginx/calibre.rnmkcy.eu.error.log;
# Common proxy settings
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
location / {
proxy_pass http://192.168.0.222:8083;
}
# Configuration spéciale pour le point de terminaison de téléchargement
location ~ /(upload|book/add|upload-new) {
# Limite de taille corporelle accrue spécifiquement pour les téléchargements de livres
client_max_body_size 200m;
# REMARQUE DE SÉCURITÉ : Limiter les gros chargements aux seules routes nécessaires
# aide à prévenir les attaques par déni de service d’épuisement des ressources.
# Cela atténue le risque des attaquants consommant la mémoire du serveur
# la bande passante du réseau et l’espace disque
# en téléchargeant de gros fichiers vers des points de terminaison arbitraires.
# Lorsque de grands téléchargements sont autorisés uniquement
# sur des routes spécifiques, surveillées, la surface d’attaque pour les attaques DoS
# basées sur les ressources sont considérablement réduites.
proxy_pass http://192.168.0.222:8083;
}
}
Vérifier sudo nginx -t
Redémarrer nginx
1
sudo systemctl reload nginx
Paramétrage Calibre Web
accès à la configuration https://calibre.rnmkcy.eu/config
Par défaut: Nom d’utilisateur: admin , Mot de passe: admin123
puis cliquer sur Connexion
Saisir dans Location… /srv/media/BiblioCalibre et cliquer sur Save
Paramétrage , cliquer sur Admin (pas sur admin avec le a minuscule)
- Location database: /srv/media/BiblioCalibre
- Recliquer sur Admin
- Cliquer sur Add new user
- Username : calibre
- Email address : calibre@cinay.eu
- Password : xxxxxx
- Language : français
- Show books with language : Show all
- Admin user
Cliquer sur Save
Se reconnecter avec l’administrateur calibre
Cliquer sur Administration et sélectionner admin , cocher la case “Supprimer l’utilisateur”
Valider Supprimer
Il reste l’utilisateur/administrateur calibre
Trucs et astuces
Paramètres
Se connecter en administrateur –> Administration –> Editer la configuration utilisateur

Lier le champ “lu” avec calibre-web
Se connecter en administrateur sur calibre-web


Puis cliquer sur “Sauvegarder”
Activer la navigation anonyme
Cochez pour permettre aux utilisateurs non connectés de parcourir le catalogue, les autorisations d’utilisateur anonymes peuvent être modifiées en tant qu’administrateur (en affichant en tant qu’utilisateur “Guest” dans la section “admin” “Editer la configuration principale” et “Configuration des options”)
Traduction
Remplacer “READ MORE” et “READ LESS” par ⬇️ et ⬆️
1
find calibre-web-env/ -name "*" -type f -exec grep -Hn "READ MORE" {} \;
Résultat
1
calibre-web-env/lib/python3.12/site-packages/calibreweb/cps/static/js/caliBlur.js:328: moreLink: '<a href="#">READ MORE</a>', // ToDo: make translateable
Editer le fichierfichier calibre-web-env/lib/python3.12/site-packages/calibreweb/cps/static/js/caliBlur.js
Se rendre à la ligne 328
1
2
3
4
5
6
7
8
// Collapse long text into read-more
$("div.comments").readmore({
collapsedHeight: 134,
heightMargin: 45,
speed: 300,
moreLink: '<a href="#">⬇️</a>', // ToDo: make translateable
lessLink: '<a href="#">⬆️</a>', // ToDo: make translateable
});
Redémarer le service
1
sudo service calibre-web restart




