Comment créer un serveur Ebook Caliber sur Ubuntu 14.04

introduction

Calibre est un gestionnaire d’ebook gratuit et open source.

Bien que Caliber soit probablement mieux connu pour son client de bureau, il peut également faire office de serveur puissant, vous permettant d’accéder à vos livres électroniques depuis n’importe où dans le monde (ou de partager votre collection avec des amis). Garder vos livres électroniques sur un serveur est une bonne chose, car vous ne comptez pas avoir le même appareil de lecture avec vous chaque fois que vous voulez lire. Et si vous partez en voyage, vous n’avez pas à vous soucier de prendre votre collection de livres électroniques avec vous!

Le serveur comprend un navigateur simple et élégant qui vous permet de rechercher et de télécharger des livres à partir de votre bibliothèque. Il intègre également un site compatible avec les appareils mobiles, ce qui facilite le téléchargement de livres directement sur un lecteur électronique, même sur les fonctionnalités Web les plus élémentaires.

Par exemple, le navigateur de Calibre fonctionne avec le Kindle Touch, qui permet de télécharger des livres directement même si le périphérique ne dispose que d’un écran e-ink et d’un navigateur expérimental.

Dans ce tutoriel, nous verrons comment installer, configurer et utiliser Caliber sur un serveur Ubuntu 14.04. Nous verrons également comment utiliser le http://manual.calibre-ebook.com/cli/calibredb.html [+ calibredb + commande] pour créer, personnaliser et gérer votre base de données de livres numériques directement à partir du serveur. .

  • Pour ce tutoriel, nous couvrirons: *

  • Installer Calibre

  • Création d’une bibliothèque de livres électroniques ou importation d’une bibliothèque existante

  • Faire du serveur Caliber un service d’arrière-plan

  • Ajouter automatiquement de nouveaux livres à la bibliothèque

À la fin de ce tutoriel, vous aurez une petite bibliothèque initiale à laquelle vous pourrez facilement ajouter de nouveaux livres!

Conditions préalables

Assurez-vous d’avoir les conditions préalables suivantes:

Des exemples de ce didacticiel sont présentés pour un Droplet exécutant une nouvelle installation d’Ubuntu 14.04, mais ils devraient pouvoir être facilement adaptés à d’autres systèmes d’exploitation.

Étape 1 - Installation de Calibre

Calibre est disponible à partir des référentiels de logiciels APT, mais comme conseillé par ses créateurs, il est de loin préférable d’installer à partir des fichiers binaires fournis sur leur site Web. Calibre est mis à jour très fréquemment et la version du dépôt a tendance à prendre du retard.

Heureusement, les créateurs de Calibre ont rendu cela très simple. Il suffit d’exécuter la commande Python suivante sur votre serveur. Avant d’exécuter la commande, veuillez vérifier le site official Caliber au cas où la commande aurait été modifiée.

Installez Calibre (assurez-vous de faire défiler pour obtenir la commande complète):

sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

Vous remarquerez quelques avertissements concernant l’échec de l’intégration du bureau, mais vous pouvez les ignorer sans risque, car vous installez Caliber sur un serveur distant.

Étape 2 - Installation des dépendances

L’outil en ligne de commande Caliber + calibredb + est utilisé pour diverses opérations sur votre bibliothèque Caliber, telles que l’ajout ou l’importation de livres, ainsi que la récupération de métadonnées et de couvertures de livres.

Nous verrons plus tard comment utiliser certaines de ces commandes, mais pour l’instant, nous n’installons que deux dépendances. Le premier est ImageMagick, sans lequel + calibredb + ne fonctionnera pas; et le second est + xvfb + que nous utiliserons pour exécuter + calibredb + sur un serveur d’affichage X virtuel - afin de contourner les problèmes causés par l’exécution de Caliber dans un environnement sans affichage.

Pour les installer, exécutez simplement les commandes suivantes.

Mettez à jour vos listes de paquets:

sudo apt-get update

Installez + xvfb +:

sudo apt-get install xvfb

Installez ImageMagick:

sudo apt-get install imagemagick

Étape 3 - Création de la bibliothèque

Nous sommes maintenant presque prêts à exécuter le serveur. Nous devons cependant obtenir des livres pour servir.

Vous avez peut-être déjà votre propre bibliothèque de livres électroniques. Nous allons donc examiner deux façons de procéder.

  1. Ajouter des fichiers ebook directement; nous allons prendre un couple du projet Gutenberg

  2. Importer une bibliothèque Caliber existante; utile si vous utilisez déjà la version de bureau de Calibre

Obtenir des livres

Commençons par créer un répertoire pour notre bibliothèque Calibre. Cet exemple crée le répertoire dans le répertoire de base de votre utilisateur, mais vous pouvez le placer n’importe où sur le serveur. Exécutez les commandes suivantes:

mkdir ~/calibre-library
mkdir ~/calibre-library/toadd

Nous avons créé deux répertoires: le premier, + ~ / calibre-bibliothèque est celui que Caliber organisera automatiquement, tandis que nous ajouterons des livres manuellement dans le sous-répertoire` + todd + `. Nous verrons plus tard comment automatiser ce processus.

Comment nous allons récupérer des livres sur Project Gutenberg. Pour ce tutoriel, nous allons télécharger Pride and Prejudice de Jane Austen et A Christmas Carol de Charles Dickens.

Allez dans le répertoire + toadd + pour commencer.

cd ~/calibre-library/toadd

Téléchargez les deux ebooks:

wget http://www.gutenberg.org/ebooks/1342.kindle.noimages -O pride.mobi
wget http://www.gutenberg.org/ebooks/46.kindle.noimages -O christmascarol.mobi

Calibre s’appuyant quelque peu sur les extensions de fichier pour ajouter correctement des livres, l’indicateur + -O + de la commande + wget + spécifie un nom de fichier plus convivial. Si vous avez téléchargé un format différent à partir de Gutenberg (tel que + .epub +), vous devez modifier l’extension de fichier en conséquence.

Ajouter les livres à la base de données de Calibre

Nous devons maintenant ajouter ces livres à la base de données Caliber à l’aide de la commande + calibredb + via l’affichage virtuel + xvfb + que nous avons installé précédemment. Pour cela, lancez:

xvfb-run calibredb add ~/calibre-library/toadd/* --library-path ~/calibre-library

L’astérisque signifie que Caliber ajoutera tous les livres trouvés dans le répertoire + toadd + à la bibliothèque, dans le répertoire + calibre-bibliothèque +. Vous pouvez voir une erreur sur le fait de ne pas trouver de couverture (nous avons choisi de télécharger les fichiers + .mobi + sans images), mais vous devriez également voir la confirmation que les livres ont été ajoutés à la base de données Calibre.

Exemple de sortie:

Failed to read MOBI cover
Backing up metadata
Added book ids: 1, 2
Notifying calibre of the change

C’est tout ce dont nous avons besoin pour commencer à voir les premiers résultats. Essayons le serveur. Run:

calibre-server --with-library ~/calibre-library

La commande ne produira aucune sortie, mais semblera simplement s’arrêter dans votre terminal. C’est bien pour le moment. nous verrons comment le démoniser correctement plus tard. Ouvrez maintenant un navigateur Web et accédez à:

  • + http: //: 8080 +

Remplacez «++» par l’adresse IP de votre Droplet. Vous devriez voir la page principale de votre bibliothèque, ressemblant à la capture d’écran ci-dessous.

image: https: //assets.digitalocean.com/articles/calibre_bookserver/1.png [page d’accueil de Calibre]

Si vous cliquez sur le lien * Tous les livres *, vous devriez voir les deux livres que nous avons ajoutés précédemment. Vous pouvez cliquer sur le bouton * Obtenir * sous l’un des deux livres pour le télécharger.

image: https: //assets.digitalocean.com/articles/calibre_bookserver/2.png [Consulter vos livres]

Charger une bibliothèque de calibre existante

Si vous utilisez déjà la version de bureau de Caliber et que votre bibliothèque est déjà configurée, vous pouvez l’importer facilement sur votre serveur.

Vérifiez dans le dossier de votre bibliothèque actuelle un fichier nommé + metadata.db +. Si ce fichier existe, alors tout devrait fonctionner sans configuration supplémentaire.

Téléchargez votre dossier de bibliothèque entier sur votre serveur.

Ensuite, lancez cette commande:

calibre-server --with-library

Cela ajoutera votre bibliothèque existante dans son intégralité au serveur. Vous pouvez ajouter plus de livres sur le serveur en plaçant les fichiers de livre dans le répertoire + toadd +, comme expliqué dans ce tutoriel.

Étape 4 - Faire de Calibre un service d’arrière-plan

Nous ne souhaitons pas vraiment garder un shell ouvert avec la commande + calibre-serveur + qui y est exécutée uniquement pour que le serveur continue à fonctionner.

Bien que nous puissions ajouter le drapeau + - daemonize + à la commande, il existe de meilleures façons de le faire. Nous verrons ci-dessous à quel point il est facile de transformer + calibre-serveur + en service afin qu’il se lance automatiquement au redémarrage du système et que nous puissions très facilement démarrer, arrêter ou redémarrer le processus.

Jusqu’à récemment, la solution consistait à écrire des scripts complexes et à les placer dans le répertoire + / etc / init.d / +. La méthode actuellement recommandée consiste à utiliser un fichier beaucoup plus simple: Upstart script, qui est un fichier + .conf + placé dans le répertoire + / etc / init / +. Nous allons voir comment procéder:

Si le serveur est toujours en cours d’exécution, appuyez sur les touches + CTRL + C + de votre terminal pour l’arrêter.

Créez maintenant un nouveau fichier de configuration:

sudo nano /etc/init/calibre-server.conf

Créez le script Upstart en veillant à remplacer les variables marquées de:

description "Calibre (ebook manager) content server"

start on runlevel [2345]
stop on runlevel [^2345]

respawn

env USER=''
env PASSWORD=''
env LIBRARY_PATH='/home//calibre-library'
env MAX_COVER='300x400'
env PORT='80'

script
   exec /usr/bin/calibre-server --with-library $LIBRARY_PATH --auto-reload \
                                --max-cover $MAX_COVER --port $PORT \
                                --username $USER --password $PASSWORD
end script

Collez-le dans votre éditeur de texte et enregistrez-le. (CTRL + X, puis Y, puis ENTER). Nous verrons ce que chaque ligne fait ci-dessous:

  • La première ligne est juste une description pour vous aider (ou aider les autres) à savoir ce que le script fait.

  • Les deux lignes suivantes indiquent le niveau auquel vous voulez que votre script commence et s’arrête, car Upstart permet la spécification de commande afin que les scripts qui s’appuient les uns sur les autres démarrent dans le bon ordre. Le niveau 1 concerne tous les services essentiels. Nous allons donc commencer par le niveau 2, date à laquelle nous savons que le réseau et tout ce dont nous avons besoin seront opérationnels.

  • + respawn + signifie que si le service s’arrête de manière inattendue, il essaiera de redémarrer

Les lignes suivantes sont toutes des variables que nous transmettons à la commande + calibre-serveur +. Auparavant, nous utilisions le minimum de spécifier l’option + - with-library, mais nous pouvons maintenant voir quelle flexibilité offre Caliber. Ci-dessus, nous avons spécifié:

  • Nom d’utilisateur et mot de passe pour accéder à la bibliothèque à partir du Web (veuillez les modifier à partir des exemples fournis)

  • Chemin d’emplacement de la bibliothèque, comme avant

  • Taille d’image maximale pour les images de couverture de livre (utile pour accélérer le chargement de la page)

  • Numéro de port (ici nous l’avons changé en + 80 +; changez-le en autre si vous utilisez déjà le port 80 pour servir des pages Web standard, etc.)

  • Enfin, dans la section + script + (connue sous le nom de stanza), nous exécutons la commande principale en utilisant + exec + et en passant toutes nos variables. La partie + / usr / bin / calibre-serveur + est le chemin de l’exécutable

Une fois que vous avez enregistré le script et fermé l’éditeur, démarrez le serveur:

sudo start calibre-server

Cette fois, vous devriez voir cette sortie, mais avec un numéro de processus différent:

calibre-server start/running, process 7811

Utilisez maintenant un navigateur pour accéder à l’adresse IP ou au nom de domaine de votre serveur.

Vous devriez voir un formulaire popup demandant le nom d’utilisateur et le mot de passe. Ceux-ci devraient être ceux que vous avez ajoutés au script Upstart. Entrez-les et vous serez redirigé vers votre bibliothèque de livres électroniques comme auparavant.

Le serveur peut maintenant être facilement arrêté, démarré et redémarré à l’aide des commandes suivantes:

sudo service calibre-server stop
sudo service calibre-server start
sudo service calibre-server restart

Cela facilite beaucoup la gestion du serveur par rapport à la gestion manuelle des processus démons et des ID de processus!

Le site propose par défaut une version mobile qui fonctionne bien avec les appareils à écran plus petit tels que les téléphones et les liseuses électroniques. Cela devrait se charger automatiquement si vous visitez le site à partir d’un appareil mobile.

Étape 5 - Création d’un travail périodique pour ajouter des livres automatiquement

Nous pouvons écrire un simple travail cron pour regarder notre répertoire + toadd + pour les nouveaux livres.

Toutes les 10 minutes, il recherchera les fichiers du répertoire + / home // calibre-library / toadd / +, y ajoutera tous les fichiers de notre base de données Calibre, puis supprimera les fichiers d’origine. (Calibre crée des copies des fichiers lorsqu’il les ajoute à notre bibliothèque, nous n’avons donc pas besoin des originaux une fois l’ajout effectué.) Cela signifie que si vous transférez des fichiers de livre via scp, ssh, etc. dans ce répertoire depuis votre ordinateur principal, ou simplement les télécharger directement dans le répertoire + toadd +, ils seront automatiquement ajoutés à votre base de données Caliber et seront disponibles pour téléchargement à partir de votre bibliothèque!

Pour créer un travail cron, exécutez:

crontab -e

Vous devrez peut-être choisir votre éditeur de texte préféré.

A la fin du fichier, ajoutez la ligne:

*/10 * * * * xvfb-run calibredb add /home//calibre-library/toadd/ -r --with-library /home//calibre-library && rm /home//calibre-server/toadd/*

La première partie de la commande (+ * / 10 * * * * +) signifie que la commande doit être exécutée toutes les dix minutes. La deuxième partie est identique à la commande que nous avons exécutée manuellement précédemment. Il ajoute tous les livres du dossier + toadd + à la base de données, puis supprime les fichiers d’origine.

C’est ça. Vous pouvez maintenant accéder à vos livres électroniques depuis n’importe où dans le monde.

_ * Remarque: * Les résultats de la recherche dans Calibre ne sont pas triés par pertinence. Par conséquent, si vous entrez un terme commun, vous trouverez souvent des livres sans lien entre eux avant celui que vous recherchez. Cependant, vous pouvez spécifier de ne rechercher que par titre ou par auteur, ce qui aide beaucoup, et les options de navigation (parcourir alphabétiquement par auteur, par exemple) sont également très bien implémentées. _

Conclusion

Il faut garder à l’esprit une ou deux choses à propos de l’exécution et de la maintenance d’un serveur Caliber. Nous allons jeter un bref regard sur ceux-ci pour terminer.

droits d’auteur

Si vous n’hébergez que des livres de Gutenberg ou de sites similaires (c’est-à-dire des livres sans droits d’auteur), vous avez peu de choses à dire. Assurez-vous simplement de respecter les conditions d’utilisation de Gutenberg. Plus précisément, si vous donnez accès à votre collection de livres à d’autres, assurez-vous de lire la section des conditions d’utilisation de Gutenberg concernant http://www.gutenberg.org/wiki/Gutenberg:The_Project_Gutenberg_License#Section_1._General_Terms_of_Use_and_Redistributing_Project_Gutenberg-tm_electronic

Si vous hébergez des livres achetés dans le commerce, rappelez-vous qu’ils auront probablement un système de gestion des droits numériques (DRM) et qu’ils ne pourront donc être lus qu’à partir de votre appareil enregistré.

Il va sans dire que vous ne devriez jamais héberger de livres piratés ou illégaux sur votre serveur de livres électroniques.

Mises à jour

Calibre pousse les mises à jour très fréquemment. Bien que la plupart de ces problèmes soient des correctifs de bogues et des mises à jour de fonctionnalités, certains pourraient être liés à la sécurité. Il est donc recommandé de suivre le updates.

Si une mise à jour importante est publiée, vous devez mettre à jour manuellement le logiciel serveur. (Encore une fois, les pensions APT ont tendance à être à la traîne, il est donc déconseillé de compter sur elles pour les mises à jour).

Sécurité

Même si vous ne publiez pas l’adresse IP de votre Droplet, celui-ci peut être découvert par des scripts recherchant des ports ouverts. Étant donné que la fonctionnalité de connexion Caliber ne permet pas le verrouillage automatique après un certain nombre de tentatives incorrectes, il est possible qu’une attaque en force brute se produise. Pour pallier à cela, il est fortement recommandé de:

  • N’utilisez pas de nom d’utilisateur commun tel que * admin *, * calibre * ou * ebooks *

  • Ne pas utiliser un mot de passe commun ou court, et certainement pas utiliser votre nom d’utilisateur comme mot de passe

  • Envisagez d’utiliser Caliber sur un port non standard au lieu du port 80.

Et cela met fin à notre tutoriel. Nous espérons que vous apprécierez l’accès à vos livres numériques depuis n’importe quel endroit ou appareil!