Post

Calibre Web Proxmox (vm-calibre)

Calibre Web Proxmox (vm-calibre)

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.

Proxmox vm-calibre

Proxmox - Créer une VM Debian 13 (image ISO)

Hostname: calibrer
root/calroot49
Utilisateur/Mp: cal/cal49

Réseau - DNS

Debian est installé avec seulement [utilitaires du système standard]

IP statique

/etc/network/interfaces

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Ce fichier décrit les interfaces réseau disponibles sur votre système
# et comment les activer.

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens18
iface ens18 inet static
 address 192.168.0.229
 gateway 192.168.0.254
# This is an autoconfigured IPv6 interface
iface ens18 inet6 auto

Il faut modifier le fichier /etc/resolv.conf

1
2
nameserver 192.168.0.205
nameserver 1.1.1.1

Redémarrer l’interface

1
systemctl restart ifup@ens18

Vérification: ip a

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:53:e7:be brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    altname enxbc241153e7be
    inet 192.168.0.229/24 brd 192.168.0.255 scope global ens18
       valid_lft forever preferred_lft forever
    inet6 2a01:e0a:9c8:2080:be24:11ff:fe53:e7be/64 scope global dynamic mngtmpaddr proto kernel_ra 
       valid_lft 86362sec preferred_lft 86362sec
    inet6 fe80::be24:11ff:fe53:e7be/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever

Poste linux

Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) pour une liaison SSH avec le serveur.

1
2
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/vm-calibre
chmod 600 ~/.ssh/vm-calibre

Envoyer le clé publique sur la VM

1
ssh-copy-id -i ~/.ssh/vm-calibre cal@192.168.0.229

VM - vm-calibre

Se connecter sur la VM via ssh

1
ssh cal@192.168.0.229

Passer en mode su

1
su -

Droits sudo et ssh

1
2
3
4
5
6
7
8
# sudo
apt install sudo
# droits root
echo "cal     ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/10-userx
# mode console
echo "PasswordAuthentication no" > /etc/ssh/sshd_config.d/cal.conf
# Redémarrer le serveur ssh
systemctl restart sshd

Se connecter à la VM depuis le poste linux avec la clé SSH

1
ssh -i ~/.ssh/vm-calibre cal@192.168.0.229

/etc/motd

1
2
3
4
5
6
7
8
9
10
11
12
13
  ___                                                  
 | _ \ _ _  ___ __ __ _ __   ___ __ __                 
 |  _/| '_|/ _ \\ \ /| '  \ / _ \\ \ /                 
 |_|  |_|  \___//_\_\|_|_|_|\___//_\_\                 
                            _  _  _                    
 __ __ _ __  ___  __  __ _ | |(_)| |__  _ _  ___       
 \ V /| '  \|___|/ _|/ _` || || || '_ \| '_|/ -_)      
  \_/ |_|_|_|    \__|\__,_||_||_||_.__/|_|  \___|      
  _  ___  ___     _   __  ___     __     ___  ___  ___ 
 / |/ _ \|_  )   / | / / ( _ )   /  \   |_  )|_  )/ _ \
 | |\_, / / /  _ | |/ _ \/ _ \ _| () |_  / /  / / \_, /
 |_| /_/ /___|(_)|_|\___/\___/(_)\__/(_)/___|/___| /_/ 
                                                       

Client NFS

Installer nfs client

1
sudo apt -y install nfs-common

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 les actions 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 systemd et le montage NFS

1
2
sudo systemctl daemon-reload
sudo mount -a

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.

Prérequis

Les outils

1
sudo apt install git sqlite3 imagemagick python3-setuptools python3-pip python3-venv

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) cal@calibre:~$

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 systemd calibre-web

Utilisation fichier systemd pour le lancement automatique

1
sudo nano /etc/systemd/system/calibre-web.service

Contenu du fichier

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Service calibre-web
After=network.target

[Service]
Type=simple
User=cal
ExecStart=/home/cal/calibre-web-env/bin/cps

[Install]
WantedBy=multi-user.target

ATTENTION! , User est l’utilisateur connecté ($USER)

Lancer le service calibre-web :

1
2
sudo systemctl daemon-reload
sudo systemctl start calibre-web

Vérifier:

1
sudo systemctl status calibre-web
1
2
3
4
5
6
7
8
9
10
11
12
● calibre-web.service - Service calibre-web
     Loaded: loaded (/etc/systemd/system/calibre-web.service; disabled; preset: enabled)
     Active: active (running) since Sat 2026-02-14 16:41:04 CET; 10s ago
 Invocation: ac76a88f68154d42800c6c0c6c008862
   Main PID: 4030 (cps)
      Tasks: 5 (limit: 1093)
     Memory: 90.9M (peak: 92.7M)
        CPU: 1.499s
     CGroup: /system.slice/calibre-web.service
             └─4030 /home/cal/calibre-web-env/bin/python3 /home/cal/calibre-web-env/bin/cps

févr. 14 16:41:04 calibre systemd[1]: Started calibre-web.service - Service calibre-web.

Activation

1
sudo systemctl enable calibre-web

Calibre-web est accesible en local

1
http://localhost:8083

cwwk - proxy nginx

Configuration nginx pour l’écoute calibre-web ip 192.168.0.218 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
server {
    # ipv4 listening port/protocol
    listen       443 ssl;
    # ipv6 listening port/protocol
    listen           [::]:443 ssl;
    server_name  calibre.rnmkcy.eu;

    include /etc/nginx/conf.d/ssl-modern.inc;
#    include snippets/authelia-location.conf; # Authelia auth endpoint

       location / { # Reduced to "/"
                proxy_pass              http://192.168.0.229:8083;
                proxy_set_header        Host            $http_host;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Scheme        $scheme;
 #               include snippets/authelia-authrequest.conf; # Protect this endpoint
        }

}

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

Puis Sauvegarder

Lier le champ “lu” avec calibre-web

Se connecter en administrateur sur calibre-web

Cet article est sous licence CC BY 4.0 par l'auteur.