Le Serveur de contenu calibre

Le :guilabel:`Serveur de contenu`calibre vous permet d’accéder à vos bibliothèques calibre et de lire des livres directement dans un navigateur sur votre smartphone ou votre tablette. De ce fait, vous n’avez pas besoin d’installer une application de lecture ou de gestion de livres sur votre téléphone. Utilisez simplement le navigateur. Le serveur télécharge et conserve le livre que vous lisez dans un cache hors ligne afin que vous puissiez le lire même quand il n’y a pas de connexion internet.

Pour démarrer le serveur, cliquez le bouton Connecter/partager`et choisissez :guilabel:`Démarrer le Serveur de contenu. Vous pourriez avoir un message du pare-feu ou de l’antivirus de votre ordinateur demandant si vous voulez autoriser l’accès à calibre.exe. Cliquez le bouton Autoriser ou OK. Ouvrez alors un navigateur (de préférence Chrome ou Firefox) sur votre ordinateur et entrez l’adresse suivante :

http://127.0.0.1:8080

Ceci ouvrira une page dans dans votre navigateur vous affichant vos bibliothèques calibre, cliquez sur n’importe laquelle et parcourez les livres qu’elle contient. Cliquez sur un livre, et il vous montrera toutes les métadonnées à propos du livre, accompagnées des boutons Lire et Télécharger le livre. Cliquez sur le bouton Lire pour commencer la lecture du livre.

Note

L’adresse utilisée ci-dessus http://127.0.0.1:8080 ne fonctionnera que sur l’ordinateur qui fait tourner calibre. Pour accéder au serveur à partir d’autres ordinateurs, téléphones, tablettes, etc… il va falloir un peu plus de travail, comme indiqué dans la section suivante.

Accéder au Serveur de contenu depuis d’autres périphériques

Il existe deux types d’accès depuis un périphérique distant dont vous aurez généralement besoin. Le premier type, plus simple, est l’accès depuis votre réseau domestique. Si vous exécutez calibre sur un ordinateur de votre réseau domestique et que vous avez également connecté vos autres périphériques au même réseau, vous devriez pouvoir accéder facilement au serveur sur ces appareils.

Accès au serveur à partir de périphériques sur votre réseau domestique

Après avoir démarré le serveur dans calibre comme décrit ci-dessus, cliquez à nouveau sur le bouton Connecter/partager. Au lieu de l’action Démarrer le serveur de contenu, vous devriez voir l’action Arrêter le Serveur de contenu. À droite de cette action il y a une adresse IP et un numéro de port. Cela ressemble à un tas de nombres séparés par deux points. Par exemple

Stop Content server [192.168.1.5, port 8080]

Ces chiffres indiquent l’adresse à utiliser pour se connecter au serveur depuis vos périphériques. En suivant l’exemple ci-dessus, l’adresse devient

http://192.168.1.5:8080

La première partie de l’adresse est toujours http:// la partie suivante est l’adresse IP, c’est à dire les chiffres avant la virgule, et pour terminer le numéro de port qui doit être ajouté à l’adresse IP avec deux points (:). Si vous êtes chanceux, c’est tout ce dont vous devriez avoir besoin pour explorer vos bibliothèques calibre sur votre périphérique. Sinon, continuez la lecture.

Dépannage de la connexion sur un réseau domestique

Si vous ne parvenez pas à accéder au serveur depuis votre périphérique, essayez ce qui suit :

  1. Vérifiez que le serveur fonctionne en ouvrant l’adresse http://127.0.0.1:8080 dans un navigateur fonctionnant sur le même ordinateur que le serveur.

  2. Vérifiez que votre pare-feu/anti-virus autorise les connexions à votre ordinateur sur le port 8080 et au programme calibre. La façon la plus simple de savoir si le pare-feu/anti-virus sont la source du problème est de les désactiver temporairement puis d’essayer de vous connecter. Avant d’éteindre le pare-feu, commencez par vous déconnecter d’Internet pour garder votre ordinateur en sécurité.

  3. Vérifiez que votre périphérique et votre ordinateur sont sur le même réseau. Cela signifie qu’ils doivent être tous les deux connectés au même routeur sans fil. En particulier aucun ne doit être en train d’utiliser une connexion cellulaire ou une connexion directe WiFi fournie par votre FAI.

  4. Si votre configuration réseau n’est pas standard, il se peut que l’adresse IP affichée dans le menu Connecter/partager soit incorrecte. Dans ce cas, vous devrez déterminer l’adresse IP correcte à utiliser par vous-même. Malheureusement, compte tenu de la grande diversité des configurations réseau possible, il est impossible de donner un mode d’emploi général.

  5. Si vous avez configuré un nom d’utilisateur et un mot de passe, essayez tout d’abord sans pour voir s’il cela pause problème. Certaines périphériques e-ink ont des navigateurs qui ne prennent pas en charge l’authentification. Vous pouvez parfois contourner cela en incluant le nom d’utilisateur et le mot de passe dans l’URL, par exemple : http://nomutilisateur:motdepasse@192.168.1.2:8080.

  6. Si vous êtes coincé, vous pouvez toujours demander de l’aide sur les forums utilisateurs de calibre.

Accès au serveur depuis n’importe où sur Internet

Avertissement

Avant de commencer, vous devriez activer la protection nom d’utilisateur/mot de passe dans le serveur, sinon n’importe qui dans le monde pourra accéder à vos livres. Allez dans Préférences →  Partager →  Partager sur le net et activez l’option Exiger un nom d’utilisateur et un mot de passe pour accéder au serveur de contenu.

Bien que les détails pour la configuration de l’accès via Internet varient en fonction de la configuration du réseau et du type d’ordinateur que vous utilisez, la méthode de base est la suivante.

  1. Trouvez l’adresse IP externe de l’ordinateur sur lequel vous allez exécuter le serveur. Vous pouvez l’obtenir en visitant le site What is my IP address dans un navigateur sur l’ordinateur.

  2. Si l’ordinateur est derrière un routeur, activez le transfert de port (ou “port forwarding”) sur le routeur pour transférer le port 8080 (ou n’importe quel port sur lequel vous choisissez d’exécuter le serveur de contenu calibre) sur l’ordinateur.

  3. Assurez-vous que le serveur calibre est autorisé par tout programme pare-feu/anti-virus sur votre ordinateur.

  4. Maintenant, vous devriez pouvoir accéder au serveur depuis n’importe quel périphérique connecté à Internet en utilisant l’adresse IP obtenue lors de la première étape. Par exemple, si l’adresse IP obtenue était 123.123.123.123 et que le port que vous utilisez pour le serveur calibre est 8080, l’adresse à utiliser sur votre périphérique devient: http://123.123.123.123:8080.

  5. Accessoirement, vous pouvez utilisez un service comme no-ip pour mettre en place une adresse facile à retenir à utiliser à la place de l’adresse IP obtenue à la première étape.

Note

Pour une sécurité maximum, vous devriez aussi activer l’HTTPS sur le serveur de contenu. Vous pouvez soit le faire directement dans le serveur en fournissant le chemin vers le certificat HTTPS à utiliser dans les configurations avancées du serveur, ou vous pouvez configurer un proxy inversé (reverse proxy) comme décris ci-dessous, pour utiliser une configuration HTTP déjà existante.

L’interface du serveur

L’interface du serveur est une version simplifiée de l’interface principale de calibre, optimisée pour l’utilisation d’écrans tactiles. L’écran d’accueil vous affiche les livres que vous êtes en train de lire aussi bien que de vous permettre de choisir une bibliothèque calibre que vous voulez parcourir. Le serveur, dans calibre, vous donne accès à toutes vos bibliothèques, pas seulement à une seule, comme précédemment.

La liste de livres

La liste de livres du serveur est une simple grille de couvertures. Appuyez sur une couverture pour voir les métadonnées détaillées pour un livre, ou pour lire un livre. Si vous préférez une liste plus détaillée, vous pouvez changer la vue par défaut en cliquant sur les trois points verticaux dans le coin supérieur droit.

Trier et rechercher la liste de livres devrait être familier aux utilisateurs de calibre. Ils peuvent être accédés en cliquant sur leurs icônes dans la partie supérieure droite. Ils fonctionnent tous deux exactement de la même manière que dans le programme principal calibre. La page de recherche vous permet même de construire des requêtes en cliquant sur auteurs/étiquettes/etc., exactement comme vous le faites en utilisant le Navigateur d’étiquettes du programme principal.

Une fonctionnalité très appréciée du programme principal, Bibliothèques virtuelles est aussi présente dans l’interface du serveur. Cliquez sur les trois points verticaux dans le coin supérieur doit pour choisir une Bibliothèque virtuelle.

Le lecteur de livre

Vous pouvez lire n’importe quel livre dans votre bibliothèque calibre en appuyant simplement dessus et sélectionnant ensuite le bouton Lire. Le lecteur de livres est très simple de fonctionnement. Vous pouvez à la fois appuyer et glisser pour tourner les pages. Glisser vers le haut/bas bascule entre les chapitres. Appuyer le quart supérieur de l’écran vous donne des contrôles détaillés et des préférences de visionneuse.

Si vous laissez le Serveur de contenu en fonctionnement, vous pouvez même ouvrir le même livre sur de multiples appareils et il se souviendra de votre dernière position de lecture. S’il ne le fait pas vous pouvez forcer une synchronisation en appuyant dans le quart supérieur et en choisissant Sync.

Compatibilité du navigateur

Le nouveau serveur calibre fait un usage intensif des fonctionnalités avancées de HTML 5 et CSS 3. En tant que tel, il nécessite un navigateur à jour pour être utilisé. Il a été testé sur Android Chrome et iOS Safari ainsi que sur Chrome et Firefox sur le bureau.

Le serveur est attentif à utiliser les fonctionnalités qui ont soit déjà été standardisées soit sur les voies de la standardisation. En tant que tel s’il ne fonctionne pas actuellement avec votre navigateur, il le fera probablement une fois que ce navigateur aura rattrapé son retard.

Si vous utilisez un navigateur particulièrement ancien ou limité ou que vous n’aimez pas exécuter JavaScript, vous pouvez utiliser la vue « mobile », en ajoutant simplement /mobile à l’adresse du serveur.

Note

Sous IOS, Apple permet un seul moteur de navigation, donc Firefox, Chrome et Safari sont actuellement le même navigateur sous le capot. La nouvelle interface serveur requiert IOS 10.3.2 ou plus récent. Sous Android, le serveur a été testé avec Chrome 58 et plus récent.

Activer le support hors ligne

Les fabricants de navigateurs ont essayé de forcer les gens à utiliser SSL en désactivant les fonctions avancées de leur navigateur pour les connexions HTTP simples. L’une de ces victimes est ApplicationCache, qui a été utilisé dans calibre pour l’assistance hors ligne. Par conséquent, aujourd’hui, malheureusement, le mode hors ligne ne fonctionne que si vous gardez l’onglet du navigateur ouvert. De plus, dans Firefox sous Android, vous devrez taper about:config et rechercher browser.tabs.useCache et le définir sur true.

Gérer les comptes utilisateurs uniquement à partir de la ligne de commande

Le programme calibre a une belle section dans Préférences pour vous permettre de gérer les comptes utilisateurs pour le serveur. Si vous voulez exécuter le serveur autonome et ne pouvez exécuter le programme principal calibre sur le même ordinateur/compte utilisateur, vous pouvez également gérer les utilisateurs en utilisant uniquement la ligne de commande.

Vous pouvez gérer les comptes utilisateur en utilisant l’option --manage-users sur le programme calibre-server autonome. Supposez que vous voulez stocker la base de données utilisateur dans le répertoire /srv/calibre, alors créez-le en exécutant

calibre-server --userdb /srv/calibre/users.sqlite --manage-users

Suivez juste les instructions pour créer les comptes utilisateur, définir leurs permissions, etc. Une fois que vous avez fini, vous pouvez exécuter le serveur en tant que

calibre-server --userdb /srv/calibre/users.sqlite --enable-auth

Il utilisera les comptes utilisateur que vous avez créé à l’étape précédente.

Intégration du Serveur de contenu calibre dans d’autres serveurs

Ici, nous allons vous montrer comment intégrer le serveur de contenu calibre dans un autre serveur. La raison la plus fréquente de faire cela est d’utiliser SSL ou de desservir la bibliothèque calibre comme partie d’un site plus grand. La technique de base consiste à exécuter le serveur calibre et à configurer un proxy inversé à partir du serveur principal.

Un proxy inversé est quand votre serveur normal accepte les requêtes entrantes et les transmet au serveur calibre. Il lit alors la réponse du serveur calibre et la transmet au client. Ceci signifie que vous pouvez simplement exécuter le serveur calibre comme à la normale sans essayer de l’intégrer étroitement avec votre serveur principal.

Utilisation d’un hôte totalement virtuel

La configuration la plus simple est de dédier un hôte totalement virtuel au serveur calibre. Dans ce cas, exécuter le serveur calibre comme ceci:

calibre-server

Maintenant configurer l’hôte virtuel dans votre serveur principal, par exemple pour nginx:

http {
    client_max_body_size 64M;  # needed to upload large books
}

server {
    listen [::]:80;
    server_name myserver.example.com;

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

Ou, pour Apache:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>
    ServerName myserver.example.com
    AllowEncodedSlashes On
    ProxyPreserveHost On
    ProxyPass "/"  "http://localhost:8080/"
</VirtualHost>

Utilisation d’un préfixe d’URL

Si vous ne voulez pas dédier un hôte totalement virtuel à calibre. vous pouvez l’avoir pour utiliser un préfixe d’URL. Démarrer le serveur calibre comme ceci:

calibre-server --url-prefix /calibre --port 8080

Ici le paramètre clé est --url-prefix/calibre. Ceci entraîne le Serveur de contenu à servir toutes les URLs préfixées par /calibre. Pour voir ceci en action, visitez http://localhost:8080/calibre dans votre navigateur. Vous devriez voir le site web normal du Serveur de contenu, mais maintenant il s’exécutera sous /calibre.

Avec nginx, la configuration nécessaire est

http {
    client_max_body_size 64M;  # needed to upload large books
}

proxy_set_header X-Forwarded-For $remote_addr;
location /calibre/ {
    proxy_buffering off;
    proxy_pass http://127.0.0.1:8080$request_uri;
}
location /calibre {
    # we need a trailing slash for the Application Cache to work
    rewrite /calibre /calibre/ permanent;
}

Pour Apache, activer tout d’abord les modules proxy dans Apache, en ajoutant ce qui suit à httpd.conf:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

La technique exacte pour activer les modules proxy variera selon votre installation Apache. Une fois que vous avez activé les modules proxy, ajouter les règles suivantes à httpd.conf (ou si vous utilisez des hôtes virtuels au fichier conf pour l’hôte virtuel en question):

AllowEncodedSlashes On
RewriteEngine on
RewriteRule ^/calibre/(.*) http://127.0.0.1:8080/calibre/$1 [proxy]
RedirectMatch permanent ^/calibre$ /calibre/

C’est tout, vous serez maintenant capable d’accéder au Serveur de contenu calibre sous l’URL /calibre dans votre serveur principal. Les règles ci-dessus transitent toutes les requêtes sous /calibre vers le serveur calibre s’exécutant sur le port 8080 et grâce à l’option --url-prefix ci-dessus, le serveur calibre les traite de manière transparente.

Note

Lors de l’utilisation d’un proxy inversé, vous devrez dire au Serveur de contenu calibre d’écouter uniquement le localhost, en utilisant --listen-on 127.0.0.1. De cette manière, le serveur écoutera uniquement les connexions venant du même ordinateur, càd du proxy inversé.

Note

Si vous avez configuré SSL pour votre serveur principal, vous devrez dire au serveur calibre d’utiliser l’authentification basique au lieu de l’authentification digest, plus rapide. Pour faire cela, transmettez l’option --auth-mode=basic à calibre-server.

Créer un service pour le serveur calibre sur un système Linux moderne

Vous pouvez aisément créer un service pour exécuter le serveur calibre sur sur un système moderne (systemd) basé sur Linux. Il faut seulement créer le fichier /etc/systemd/system/calibre-server.service avec le contenu afficher ci-dessous

[Unit]
Description=calibre Content server
After=network.target

[Service]
Type=simple
User=mylinuxuser
Group=mylinuxgroup
ExecStart=/opt/calibre/calibre-server "/path/to/calibre library folder"

[Install]
WantedBy=multi-user.target

Changer mylinuxuser et mylinuxgroup en n’importe quel utilisateur et groupe sous lesquels vous désirez que le serveur tourne. Ceci devrait être le même utilisateur et groupe que ceux qui possèdent les fichiers dans le répertoire de la bibliothèque calibre. Notez que ce n’est généralement pas une bonne idée d’exécuter le serveur en tant que root. Changer également le chemin vers le répertoire de la bibliothèque calibre pour qu’il convienne à votre système. Vous pouvez ajouter de multiples bibliothèques si nécessaire. Voir l’aide pour la commande calibre-server.

Maintenant exécutez

sudo systemctl start calibre-server

pour démarrer le serveur. Vérifiez son statut avec

sudo systemctl status calibre-server

Pour le faire démarrer au boot, exécutez

sudo systemctl enable calibre-server

Note

Le serveur calibre ne nécessite pas un serveur X en cours d’exécution, mais il nécessite que les librairies X soient installées.

Note

Le serveur calibre supporte également l’activation du socket systemd, vous pouvez donc l’utiliser, si nécessaire, bien sûr.