GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Calibre Ebook Server sur Ubuntu 20.04

Calibre est un gestionnaire de livres électroniques gratuit et open source. Il est livré sous la forme d'une application de bureau multiplateforme avec un composant serveur et peut être utilisé pour gérer votre bibliothèque de livres électroniques.

La configuration de calibre en tant que serveur vous permet d'accéder à vos livres de n'importe où dans le monde et vous permet de les partager avec vos amis et votre famille. Vous pouvez également les transférer sur vos appareils mobiles pour les lire plus tard. Le serveur Calibre vous permet également de lire des livres électroniques directement sur le Web.

Dans ce didacticiel, vous apprendrez comment installer et utiliser un serveur de livres électroniques calibre sur un serveur basé sur Ubuntu 20.04.

Prérequis

  1. Un serveur basé sur Ubuntu 20.04 avec un utilisateur avec des privilèges sudo.

  2. Gardez le serveur à jour.

    $ sudo apt update && sudo apt upgrade
    

Configurer le pare-feu

Ubuntu 20.04 est livré avec un pare-feu non compliqué (UFW) par défaut. Si ce n'est pas le cas, installez-le d'abord.

$ sudo apt install ufw

Activer le port SSH.

$ sudo ufw allow "OpenSSH"

Activez le pare-feu.

$ sudo ufw enable

Activez les ports 8080 qui sont utilisés par le serveur calibre.

$ sudo ufw allow 8080

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

$ sudo ufw status
Status: active

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

Télécharger et installer le serveur calibre

Ubuntu 20.04 est livré avec calibre mais il est préférable de l'installer directement depuis leur site pour obtenir la dernière version.

Tout d'abord, vous devez installer certaines dépendances.

$ sudo apt install libfontconfig libgl1-mesa-glx

Téléchargez le programme d'installation du serveur calibre.

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

Définissez le script d'installation comme exécutable.

$ chmod +x ./linux-installer.sh

Exécutez le programme d'installation.

$ sudo ./linux-installer.sh

Vous recevrez des avertissements car le programme d'installation attend un système de bureau et non un serveur sans tête. Il est prudent de les ignorer.

Créer une bibliothèque et ajouter votre premier livre

Pour notre tutoriel, nous allons télécharger un livre du projet Gutenberg à titre d'exemple. Le projet Gutenberg est un vaste référentiel de livres gratuits du domaine public.

Exécutez la commande suivante pour télécharger votre premier livre. Dans l'esprit du récent festival d'Halloween, téléchargeons une histoire d'horreur, "Le tour de vis" d'Henry James.

$ wget http://www.gutenberg.org/ebooks/209.kindle.noimages -O turnofthescrew.mobi

Créez un répertoire pour votre bibliothèque calibre.

$ mkdir calibre-library

Ajoutez le livre que vous venez de télécharger à votre bibliothèque calibre en utilisant le calibredb commande.

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

Il est maintenant temps de démarrer calibre.

Exécuter le serveur calibre

Exécutez la commande suivante pour démarrer le serveur de contenu calibre.

$ calibre-server calibre-library

calibre-server est la commande utilisée pour démarrer le serveur et calibre-library est le nom du répertoire que nous venons de créer et qui sera utilisé par le serveur pour charger l'interface.

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

Lancez l'URL http://<yourserverip>:8080 dans votre navigateur et vous verrez l'écran calibre par défaut.

Cliquez sur calibre-library et vous verrez le livre The turn of the screw vous venez de télécharger.

Vous pouvez arrêter le serveur en appuyant sur Ctrl+C sur la ligne de commande.

Le serveur Calibre utilise le port 8080 par défaut. Vous pouvez le changer en modifiant la commande lors du lancement.

$ calibre-server calibre-library --port 7530

Vous pouvez ensuite vérifier en lançant l'URL http://<yourserverip>:7530 dans votre navigateur.

Vous devrez également autoriser le port via le pare-feu.

$ sudo ufw allow 7530

Créer un service pour le serveur calibre

Vous voudriez probablement que calibre fonctionne indéfiniment même après le redémarrage du serveur. Pour ce faire, vous devrez créer un service pour calibre qui le démarrera automatiquement au démarrage.

Créez un fichier /etc/systemd/system/calibre-server.service et ouvrez-le pour le modifier à l'aide de l'éditeur Nano.

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

Collez le code suivant.

## startup service
[Unit]
Description=calibre content server
After=network.target

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

[Install]
WantedBy=multi-user.target

Remplacez <username> avec l'utilisateur système réel sur votre serveur Ubuntu.

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

Activez et démarrez le service calibre.

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

Vous pouvez vérifier en redémarrant le service.

$ sudo reboot

Attendez quelques minutes et ouvrez http://<yourserverip>:8080 dans le navigateur pour s'assurer que calibre fonctionne.

Ajouter une authentification utilisateur au serveur calibre

Pour l'instant, toute personne connaissant l'adresse IP de votre serveur peut accéder au serveur calibre. Nous pouvons changer cela en ajoutant l'authentification de l'utilisateur au serveur.

Tout d'abord, arrêtez le serveur calibre.

$ sudo systemctl stop calibre-server

Démarrez le script de gestion des utilisateurs de calibre. Vous pouvez spécifier le chemin où la base de données utilisateur sera stockée. Il est stocké sous la forme d'une base de données SQLite.

$ sudo calibre-server --userdb /home/<username>/.config/calibre/server-users.sqlite --manage-users
1) Add a new user
2) Edit an existing user
3) Remove a user
4) Cancel

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

Entrez 1 pour créer un nouvel utilisateur et choisissez un mot de passe fort.

Ensuite, nous devons modifier le service calibre que nous avions configuré précédemment.

Ouvrez le fichier de service.

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

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

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

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

Actualisez le démon de service pour recharger le fichier de service modifié et redémarrez le service.

sudo systemctl daemon-reload
sudo systemctl start calibre-server

La prochaine fois que vous lancerez le site, il vous sera demandé le nom d'utilisateur et le mot de passe avant d'accéder à la bibliothèque.

Ajouter automatiquement des livres à votre bibliothèque

Nous pouvons configurer un dossier de surveillance qui peut être suivi par le serveur calibre afin que chaque fois que vous ajoutez un nouveau livre au dossier, il sera automatiquement ajouté à la bibliothèque Calibre.

Créez un dossier de surveillance et basculez-y.

$ mkdir ~/watchbooks
$ cd ~/watchbooks

Téléchargez un nouveau livre dans le dossier à l'aide de la commande suivante.

$ wget http://www.gutenberg.org/ebooks/514.epub.noimages -o littlewomen.epub

Ensuite, ouvrez l'éditeur Crontab.

$ crontab -e

Ajoutez la ligne suivante à la fin.

*/5 * * * * calibredb add /home/<username>/watchbooks/ -r --with-library http://localhost:8080#calibre-library --username calibreuser --password YourPassword && rm -r /home/<username>/watchbooks/*

Ce script ajoutera tous les fichiers dans le répertoire /home/<username>/watchbooks à la bibliothèque calibre et supprimez tous les fichiers d'origine puisqu'ils ne sont plus nécessaires.

La tâche cron s'exécutera toutes les 5 minutes. 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.

Installer Nginx

Dans cette étape, nous allons installer le serveur Web Nginx pour servir le serveur calibre via un proxy. De cette façon, vous pouvez y accéder via un nom de domaine, par exemple, calibre.yourdomain.com . Vous n'aurez pas non plus à vous soucier de spécifier des numéros de port. Et avoir Nginx comme proxy nous permet de servir le site via SSL.

Exécutez la commande suivante pour installer Nginx.

$ sudo apt install nginx

Ouvrez les ports 80 et 443 et fermez le port 8080 puisqu'il n'est plus nécessaire.

$ sudo ufw allow "Nginx Full"
$ sudo ufw delete allow 8080

Nginx Full est un profil d'application pour le pare-feu ufw qui ouvrira automatiquement les ports 80 et 443.

$ sudo ufw status
Status: active

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere
Nginx Full  		   ALLOW       Anywhere	
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx Full		   ALLOW       Anywhere (v6)

Installer SSL

Nous allons installer SSL en utilisant le service Let's Encrypt.

Pour cela, installez Certbot.

$ sudo apt install certbot

Arrêtez Nginx car cela interférera avec le processus Certbot.

$ sudo systemctl stop nginx

Générez le certificat. Nous devons également créer un certificat DHCParams.

$ export LDOMAIN="calibre.yourdomain.com"
$ export LEMAIL="[email protected]"
$ sudo certbot certonly --standalone -d $LDOMAIN --preferred-challenges http --agree-tos -n -m $LEMAIL --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Nous devons également configurer une tâche cron pour renouveler automatiquement le SSL. Pour ouvrir l'éditeur crontab, exécutez la commande suivante

$ sudo crontab -e

La commande ci-dessus ouvre l'éditeur Crontab.

Collez la ligne suivante en bas.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

Le travail cron ci-dessus exécutera certbot à 2h25 tous les jours. Vous pouvez le changer en tout ce que vous voulez.

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

Configurer Nginx pour servir Calibre sur proxy en utilisant SSL

Nous devons modifier le fichier de configuration Nginx pour ajouter la configuration SSL.

Exécutez la commande suivante pour ajouter un fichier de configuration pour le serveur Calibre.

$ sudo nano /etc/nginx/sites-available/calibre.conf

Collez le code suivant dans l'éditeur.

server {
    listen 80;
    listen [::]:80;
    server_name calibre.yourdomain.com;
    # enforce https
    return 301 https://$server_name:443$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name calibre.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

    # Use Mozilla's guidelines for SSL/TLS settings
    # https://mozilla.github.io/server-side-tls/ssl-config-generator/
    ssl_certificate /etc/letsencrypt/live/calibre.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/calibre.yourdomain.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    ssl_session_tickets off;
    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_prefer_server_ciphers off;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

Appuyez sur Ctrl + X pour fermer l'éditeur et appuyez sur Y lorsque vous êtes invité à enregistrer le fichier.

Activez ce fichier de configuration en le liant au sites-enabled répertoire.

$ sudo ln -s /etc/nginx/sites-available/calibre.conf /etc/nginx/sites-enabled/

Testez la configuration Nginx.

$ sudo nginx -t

Vous devriez voir la sortie suivante indiquant que votre configuration est correcte.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Rechargez le service Nginx.

$ sudo systemctl reload nginx

Vous pouvez maintenant lancer le site via l'URL https://calibre.yourdomain.com .

Conclusion

Dans ce didacticiel, vous avez appris à installer et à exécuter le serveur de livres électroniques Calibre et à l'exécuter sur Nginx avec l'authentification de l'utilisateur et la possibilité d'ajouter des livres automatiquement. Si vous avez des questions, postez-les dans les commentaires ci-dessous.


Ubuntu
  1. Comment installer MySQL sur Ubuntu 18.04

  2. Comment installer le serveur Minecraft sur Ubuntu 18.04

  3. Comment installer Nginx sur Ubuntu 20.04

  4. Comment installer MariaDB sur Ubuntu 20.04

  5. Comment installer Zimbra 8.6 sur le serveur Ubuntu 14.04

Comment installer Cockpit sur Ubuntu 20.04

Comment installer le serveur VNC sur Ubuntu 20.04

Comment installer le serveur HTTrack sur Ubuntu 20.04

Comment installer Snappass sur Ubuntu

Comment installer Virtualmin sur Ubuntu 20.04

Comment installer TeamSpeak Server sur Ubuntu 20.04