Installation serveur · 12 min read · Oct 11, 2025

Comment installer le serveur Calibre Ebook sur Ubuntu 22.04

Calibre est un gestionnaire de livres électroniques gratuit et open-source. Il fonctionne comme une application de bureau multiplateforme avec un composant serveur. Le composant de bureau peut gérer votre bibliothèque d’ebooks sur un seul appareil. Et le composant serveur vous permet de :

  • Accéder à vos livres de n’importe où dans le monde.
  • Transférer facilement vos livres vers des appareils mobiles.
  • Partager des livres avec vos amis et votre famille.
  • Lire des ebooks directement sur le web.

Dans ce tutoriel, vous apprendrez à installer le serveur Calibre sur une machine Ubuntu 22.04.

Prérequis

  • Un serveur fonctionnant sous Ubuntu 22.04.
  • Un utilisateur non-root avec des privilèges sudo.
  • Le pare-feu Uncomplicated Firewall (UFW) est activé et en cours d’exécution.
  • Un nom de domaine complètement qualifié pointant vers le serveur. Pour notre tutoriel, nous utiliserons le domaine calibre.example.com.
  • Tout est à jour.
    $ sudo apt update && sudo apt upgrade

Étape 1 - Configurer le pare-feu

La première étape avant d’installer des paquets est de configurer le pare-feu pour autoriser les connexions HTTP et HTTPS.

Vérifiez l’état du pare-feu.

$ sudo ufw status

Vous devriez voir quelque chose comme ce qui suit.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Autorisez les ports HTTP et HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Vérifiez à nouveau l’état pour confirmer.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Étape 2 - Télécharger et installer le serveur Calibre

Ubuntu 22.04 est livré avec Calibre, mais il est préférable de l’installer directement pour obtenir la dernière version.

La première étape consiste à installer quelques dépendances.

$ sudo apt install libopengl0 libxkbcommon-x11-0 libegl1 libfontconfig libgl1-mesa-glx

Téléchargez l’installateur du serveur Calibre.

$ wget https://download.calibre-ebook.com/linux-installer.sh

Rendez le script d’installation exécutable.

$ chmod +x ./linux-installer.sh

Exécutez l’installateur.

$ sudo ./linux-installer.sh

Vous recevrez quelques avertissements car l’installateur s’attend à un bureau et non à un serveur. Il est sûr d’ignorer les avertissements.

Étape 3 - Créer une bibliothèque Calibre et ajouter votre premier livre

L’étape suivante consiste à configurer une bibliothèque Calibre et à y ajouter quelques livres. Pour notre tutoriel, nous allons télécharger le livre Les Aventures de Sherlock Holmes d’Arthur Conan Doyle depuis Project Gutenberg.

$ wget http://www.gutenberg.org/ebooks/1661.kindle.noimages -O adventuresofsherlockholmes.mobi

Prenez toujours la version Kindle du livre sur le site. Ici, nous renommons la version Kindle en filename.mobi car le format Mobi est pris en charge nativement par Kindle, c’est pourquoi il est ainsi nommé sur le site. Il offre également de meilleures options de formatage que la version Epub.

Créez un répertoire pour la bibliothèque Calibre.

$ mkdir calibre-library

Ajoutez le livre que vous venez de télécharger à la bibliothèque en utilisant la commande calibredb. Nous avons spécifié l’emplacement de la bibliothèque dans la commande elle-même.

$ calibredb add adventuresofsherlockholmes.mobi --with-library calibre-library/
Added book ids: 1

Vous pouvez ajouter plusieurs livres à la fois de la manière suivante.

$ calibredb add *.mobi --with-library calibre-library/

Étape 4 - Démarrer le serveur Calibre

Maintenant que nous avons nos livres prêts, il est temps de démarrer le serveur Calibre.

$ calibre-server calibre-library

La commande calibre-server prend l’emplacement de la bibliothèque comme argument. Vous devriez voir une sortie similaire.

calibre server listening on 0.0.0.0:8080
OPDS feeds advertised via BonJour at: your_server_ip port: 8080

Cela expose le serveur Calibre au port 8080. Pour voir le serveur, vous devez d’abord ouvrir le port. Exécutez la commande suivante pour ouvrir le port 8080.

$ sudo ufw allow 8080

Ouvrez l’URL http://:8080/ dans votre navigateur et vous obtiendrez l’écran suivant. L’écran apparaîtra en sombre ou en clair selon le choix du thème de votre système d’exploitation.

Accueil du serveur Calibre

Cliquez sur le lien calibre-library pour voir le livre que vous avez ajouté à l’étape précédente.

Vue de la bibliothèque du serveur Calibre

Fermez le serveur en appuyant sur les touches Ctrl + C dans votre terminal.

Vous pouvez utiliser un port différent pour exposer le serveur Calibre. Pour ce faire, utilisez la commande suivante. Vous devrez vous assurer que le port est ouvert dans le pare-feu.

$ calibre-server calibre-library --port 7654

Étape 5 - Créer un fichier de service systemd

Pour rendre le processus du serveur Calibre persistant et survivre aux redémarrages, vous devez créer un fichier de service systemd pour cela.

Créez un fichier appelé calibre-server.service dans le répertoire /etc/systemd/system/ et ouvrez-le pour l’édition.

$ sudo nano /etc/systemd/system/calibre-server.service

Collez le code suivant dedans.

[Unit]
Description=Calibre Server
After=network.target

[Service]
Type=simple
User=
Group=
ExecStart=/opt/calibre/calibre-server /home//calibre-library --enable-local-write

[Install]
WantedBy=multi-user.target

Le drapeau --enable-local-write donne au serveur un accès en écriture pour ajouter de nouveaux livres à la bibliothèque. Cela est dû au fait que vous ne pouvez pas ajouter de livres en utilisant la commande calibredb pendant que le serveur est en cours d’exécution.

Remplacez par votre nom d’utilisateur du système Linux dans le code ci-dessus. Enregistrez et fermez le fichier en appuyant sur Ctrl+W et en entrant Y lorsque vous y êtes invité.

Rechargez le démon de service pour activer le fichier de service.

$ sudo systemctl daemon-reload

Activez et démarrez le service Calibre.

$ sudo systemctl enable calibre-server
$ sudo systemctl start calibre-server

Vérifiez l’état du service.

$ sudo systemctl status calibre-server
? calibre-server.service - Calibre Server
     Loaded: loaded (/etc/systemd/system/calibre-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-07-25 07:23:42 UTC; 15s ago
   Main PID: 1877 (BonJour)
      Tasks: 13 (limit: 2241)
     Memory: 53.3M
        CPU: 762ms
     CGroup: /system.slice/calibre-server.service
             ??1877 /opt/calibre/bin/calibre-server /home//calibre-library --enable-local-write

Jul 25 07:23:42 calibre systemd[1]: Started Calibre Server.
Jul 25 07:23:42 calibre calibre-server[1877]: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-'
Jul 25 07:23:42 calibre calibre-server[1877]: calibre server listening on 0.0.0.0:8080
Jul 25 07:23:43 calibre calibre-server[1877]: OPDS feeds advertised via BonJour at: 69.28.84.201 port: 8080

Étape 6 - Activer l’authentification des utilisateurs

Vous pouvez ajouter une authentification des utilisateurs à Calibre pour protéger votre bibliothèque contre l’accès de quiconque. Tout d’abord, arrêtez le serveur Calibre.

$ sudo systemctl stop calibre-server

Calibre utilise une base de données SQLite pour stocker les identifiants des utilisateurs. Démarrez le script de gestion des utilisateurs de Calibre pour ajouter un utilisateur.

$ sudo calibre-server --manage-users

Vous aurez quatre options et on vous demandera votre choix. Appuyez sur 1 pour ajouter un nouvel utilisateur, et fournissez le nom d’utilisateur et le mot de passe pour terminer l’ajout d’un nouvel utilisateur.

1) Add a new user
2) Edit an existing user
3) Remove a user
4) Cancel

What do you want to do? [1-4]: (Press 1)
Enter the username: howtoforge
Enter the new password for howtoforge:
Re-enter the new password for howtoforge, to verify:
User howtoforge added successfully!

Ensuite, vous devez modifier le fichier de service pour vérifier l’authentification. Ouvrez le fichier pour l’édition.

$ sudo nano /etc/systemd/system/calibre-server.service

Ajoutez le drapeau --enable-auth à la fin de la ligne commençant par ExecStart pour activer l’authentification des utilisateurs.

...
ExecStart=/opt/calibre/calibre-server "/home//calibre-library" --userdb "/home//.config/calibre/server-users.sqlite" --enable-local-write --enable-auth
...

Enregistrez et fermez le fichier en appuyant sur Ctrl+W et en entrant Y lorsque vous y êtes invité.

Rechargez le démon de service et démarrez le service.

$ sudo systemctl daemon-reload
$ sudo systemctl start calibre-server

Si vous ouvrez l’URL de la bibliothèque, vous serez invité à entrer votre nom d’utilisateur et votre mot de passe avant de vous permettre d’y accéder. Entrez vos identifiants et appuyez sur le bouton Se connecter pour accéder à la bibliothèque.

Invite d'authentification du serveur Calibre

Étape 7 - Ajouter automatiquement des livres à la bibliothèque

Calibre vous permet d’ajouter des livres automatiquement à la bibliothèque à l’aide d’un job Cron. Il le fait en surveillant un répertoire à intervalles réguliers pour de nouveaux livres, puis en les ajoutant à la bibliothèque. C’est le moyen le plus rapide d’ajouter des livres où vous pouvez simplement les télécharger dans le répertoire et ils apparaîtront bientôt dans la bibliothèque sans intervention manuelle.

La première étape consiste à créer un répertoire de surveillance.

$ mkdir ~/calibre-watch
$ cd ~/calibre-watch

Téléchargez le livre Guerre et Paix de Léon Tolstoï dans ce répertoire depuis Project Gutenberg.

$ wget https://www.gutenberg.org/ebooks/2600.kindle.images -O warandpeace.mobi

Si vous remarquez, cette fois nous téléchargeons une version qui a des images. Cela varie d’un livre à l’autre sur Project Gutenberg. Certains ont des versions avec images disponibles tandis que d’autres n’en ont pas. Calibre fonctionne bien avec les deux formats.

Ouvrez l’éditeur Crontab.

$ crontab -e

Si c’est la première fois que vous utilisez le Crontab, on vous demandera de choisir un éditeur.

no crontab for  - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]:

Entrez 1 pour choisir l’éditeur Nano car c’est le plus facile à utiliser.

Ajoutez la commande suivante en bas du fichier.

*/5 * * * * calibredb add /home//calibre-watch/ -r --with-library http://localhost:8080#calibre-library --username mycalibreuser --password StrongPassword! && rm -r /home//calibre-watch/*

Ce script ajoutera tous les fichiers dans le répertoire /home//calibre-watch à la bibliothèque calibre et supprimera tous les fichiers originaux car ils ne sont plus nécessaires. Le job ci-dessus s’exécutera toutes les 5 minutes. Remplacez par votre nom d’utilisateur du système Linux et ajoutez vos identifiants Calibre aux endroits appropriés.

Enregistrez et fermez le fichier en appuyant sur Ctrl+W et en entrant Y lorsque vous y êtes invité. Attendez quelques minutes et rechargez le site du serveur calibre pour voir le livre que vous venez d’ajouter apparaître dans la bibliothèque.

Étape 8 - Installer Nginx

Ubuntu 22.04 est livré avec une version plus ancienne de Nginx. Pour installer la dernière version, vous devez télécharger le dépôt officiel de Nginx.

Importez la clé de signature de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Ajoutez le dépôt pour la version stable de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Mettez à jour les dépôts du système.

$ sudo apt update

Installez Nginx.

$ sudo apt install nginx

Vérifiez l’installation.

$ nginx -v
nginx version: nginx/1.22.0

Étape 9 - Installer SSL

En ce moment, Calibre est exposé sur un port HTTP via une adresse IP. Pour mieux le sécuriser, nous allons activer l’accès via un domaine dédié en utilisant un certificat SSL.

Nous devons installer Certbot pour générer le certificat SSL pour Calibre. Vous pouvez soit installer Certbot en utilisant le dépôt d’Ubuntu, soit obtenir la dernière version en utilisant l’outil Snapd. Nous allons utiliser la version Snapd.

Ubuntu 22.04 est livré avec Snapd installé par défaut. Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.

$ sudo snap install core

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Exécutez la commande suivante pour générer un certificat SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d calibre.example.com

La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/calibre.example.com sur votre serveur.

Générez un certificat de groupe Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Ouvrez le fichier /etc/letsencrypt/renewal/calibre.example.com.conf pour l’édition.

$ sudo nano /etc/letsencrypt/renewal/calibre.example.com.conf

Collez le code suivant en bas.

pre_hook = systemctl stop nginx
post_hook = systemctl start nginx

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Nous avons généré le certificat SSL en utilisant l’option autonome de Certbot. Il exécute son serveur web pour créer le certificat, ce qui signifie que Nginx doit être arrêté pendant le renouvellement. Les commandes pre_hook et post_hook s’exécutent avant et après le renouvellement pour arrêter et redémarrer automatiquement le serveur Nginx, nécessitant ainsi aucune intervention manuelle.

Pour vérifier si le renouvellement SSL fonctionne correctement, effectuez un essai à sec du processus.

$ sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 10 - Configurer Nginx

Ouvrez le fichier /etc/nginx/nginx.conf pour l’édition.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Créez et ouvrez le fichier /etc/nginx/conf.d/calibre.conf pour l’édition.

$ sudo nano /etc/nginx/conf.d/calibre.conf

Collez le code suivant dedans. Remplacez calibre.example.com par votre nom de domaine. Nous avons défini la valeur de la variable client_max_body_size à 50 Mo. Vous pouvez la changer selon vos besoins.

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    http2_push_preload on; # Enable HTTP/2 Server Push
    
    # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
    # prevent replay attacks.
    #
    # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
    ssl_early_data on;

    server_name calibre.example.com;

    client_max_body_size 50M;

    access_log  /var/log/nginx/calibre.access.log;
    error_log   /var/log/nginx/calibre.error.log;

    ssl_certificate      /etc/letsencrypt/live/calibre.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/calibre.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/calibre.example.com/chain.pem;
    
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $http_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;        
    }
}
# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  calibre.example.com;
    return 301   https://$host$request_uri;
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Vérifiez votre configuration Nginx.

$ sudo nginx -t

Redémarrez le serveur Nginx pour activer les fichiers de configuration.

$ sudo systemctl restart nginx

Visitez https://calibre.example.com dans votre navigateur pour accéder à Calibre. Vous pouvez voir que le livre ajouté via Cron est également disponible dans la bibliothèque.

Actualisation de la bibliothèque Calibre

Conclusion

Cela conclut notre tutoriel sur l’installation du serveur Calibre sur une machine Ubuntu 22.04 utilisant Nginx. Nous avons également configuré Calibre pour activer l’authentification de base et pour ajouter le support pour l’ajout automatique de nouveaux livres. Le serveur Calibre est livré avec de nombreux outils en ligne de commande. Pour en savoir plus à leur sujet, vous pouvez visiter la documentation de Calibre. Si vous avez des questions, postez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.