So erstellen Sie einen Calibre Ebook Server unter Ubuntu 14.04

Einführung

Calibre ist ein kostenloser und Open Source E-Book-Manager.

Obwohl Calibre wahrscheinlich besser für seinen Desktop-Client bekannt ist, kann es auch als leistungsstarker Server fungieren, mit dem Sie von überall auf der Welt auf Ihre E-Books zugreifen können (oder Ihre Sammlung mit Freunden teilen können). Es ist großartig, Ihre E-Books auf einem Server zu halten, da Sie nicht immer das gleiche Lesegerät bei sich haben müssen, wenn Sie es lesen möchten. Und wenn Sie auf Reisen sind, brauchen Sie sich keine Sorgen zu machen, dass Sie Ihre E-Book-Sammlung mitnehmen!

Der Server enthält ein einfaches und elegantes Browser-Frontend, mit dem Sie nach Büchern in Ihrer Bibliothek suchen und diese herunterladen können. Es ist auch eine mobile-freundliche Website integriert, die es einfach macht, Bücher direkt auf einen E-Reader herunterzuladen - selbst auf solche mit nur den grundlegendsten Webfunktionen.

Der Browser von Calibre funktioniert beispielsweise mit dem Kindle Touch, mit dem Bücher direkt heruntergeladen werden können, obwohl das Gerät nur über ein E-Ink-Display und einen experimentellen Browser verfügt.

In diesem Tutorial erfahren Sie, wie Sie Calibre auf einem Ubuntu 14.04-Server installieren, einrichten und verwenden. Wir werden uns auch ansehen, wie Sie mit dem Befehl http://manual.calibre-ebook.com/cli/calibredb.html [+ calibredb +] Ihre E-Book-Datenbank direkt vom Server aus erstellen, anpassen und warten können .

  • In diesem Tutorial werden wir Folgendes behandeln: *

  • Calibre installieren

  • Erstellen einer E-Book-Bibliothek oder Importieren einer vorhandenen

  • Calibre Server zu einem Hintergrunddienst machen

  • Automatisches Hinzufügen neuer Bücher zur Bibliothek

Am Ende dieses Tutorials steht eine kleine Bibliothek zur Verfügung, in die Sie problemlos neue Bücher einfügen können.

Voraussetzungen

Bitte stellen Sie sicher, dass Sie die folgenden Voraussetzungen haben:

In diesem Tutorial werden Beispiele für ein Droplet gezeigt, auf dem eine Neuinstallation von Ubuntu 14.04 ausgeführt wird. Sie sollten jedoch leicht an andere Betriebssysteme anpassbar sein.

Schritt 1 - Calibre installieren

Calibre ist in den APT-Software-Repositorys verfügbar, es ist jedoch weitaus besser, es von den auf der Website bereitgestellten Binärdateien zu installieren. Calibre wird sehr häufig aktualisiert und die Version in den Repos bleibt tendenziell zurück.

Glücklicherweise haben die Macher von Calibre dies sehr einfach gemacht. Führen Sie einfach den folgenden Python-Befehl auf Ihrem Server aus. Überprüfen Sie vor dem Ausführen des Befehls die official Calibre site, falls der Befehl geändert wurde.

Installieren Sie Calibre (stellen Sie sicher, dass Sie einen Bildlauf durchführen, um den gesamten Befehl abzurufen):

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()"

Sie werden einige Warnungen zu fehlgeschlagener Desktop-Integration bemerken, die jedoch ignoriert werden können, da Sie Calibre auf einem Remote-Server installieren.

Schritt 2 - Abhängigkeiten installieren

Das Calibre-Befehlszeilentool "+ calibredb +" wird für verschiedene Vorgänge in Ihrer Calibre-Bibliothek verwendet, z. B. zum Hinzufügen oder Importieren von Büchern sowie zum Abrufen von Metadaten und Deckblättern für Bücher.

Wir werden später einen Blick darauf werfen, wie einige dieser Befehle verwendet werden. Derzeit werden jedoch nur zwei Abhängigkeiten installiert. Das erste ist ImageMagick, ohne das "+ calibredb " nicht ausgeführt werden kann. und das zweite ist " xvfb ", mit dem wir " calibredb +" auf einem virtuellen X-Anzeigeserver ausführen, um Probleme zu umgehen, die durch die Ausführung von Calibre in einer Nicht-Anzeigeumgebung verursacht werden.

Um diese zu installieren, führen Sie einfach die folgenden Befehle aus.

Aktualisieren Sie Ihre Paketlisten:

sudo apt-get update

Installieren Sie + xvfb +:

sudo apt-get install xvfb

Installieren Sie ImageMagick:

sudo apt-get install imagemagick

Schritt 3 - Erstellen der Bibliothek

Jetzt sind wir fast bereit, den Server zu starten. Wir müssen jedoch ein paar Bücher zum Aufschlag bringen.

Möglicherweise haben Sie bereits eine eigene E-Book-Bibliothek. Daher werden wir zwei Möglichkeiten dafür untersuchen.

  1. Fügen Sie E-Book-Dateien direkt hinzu. Wir holen uns ein paar von Project Gutenberg

  2. Importieren Sie eine vorhandene Calibre-Bibliothek. nützlich, wenn Sie bereits die Desktop-Version von Calibre ausführen

Bücher bekommen

Erstellen wir zunächst ein Verzeichnis für unsere Calibre-Bibliothek. In diesem Beispiel wird das Verzeichnis im Ausgangsverzeichnis Ihres Benutzers erstellt, obwohl Sie es an einer beliebigen Stelle auf dem Server platzieren können. Führen Sie die folgenden Befehle aus:

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

Wir haben zwei Verzeichnisse erstellt: Das erste, "+ ~ / calibre-library", wird von Calibre automatisch organisiert, während wir dem Unterverzeichnis "+ todd +" manuell Bücher hinzufügen. Später werden wir uns ansehen, wie auch dieser Prozess automatisiert werden kann.

Wie wir uns einige Bücher von Project Gutenberg holen. Für dieses Tutorial laden wir Pride and Prejudice von Jane Austen und A Christmas Carol von Charles Dickens herunter.

Wechseln Sie in das Verzeichnis "+ toadd +", um zu beginnen.

cd ~/calibre-library/toadd

Laden Sie die beiden eBooks herunter:

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 ist ein wenig auf Dateierweiterungen angewiesen, um Bücher korrekt hinzuzufügen. Daher gibt das Flag "+ -O " im Befehl " wget " einen benutzerfreundlicheren Dateinamen an. Wenn Sie ein anderes Format von Gutenberg heruntergeladen haben (z. B. " .epub +"), müssen Sie die Dateierweiterung entsprechend ändern.

Hinzufügen der Bücher zur Calibre-Datenbank

Jetzt müssen wir diese Bücher mit dem Befehl "+ calibredb " über die zuvor installierte virtuelle Anzeige " xvfb +" zur Calibre-Datenbank hinzufügen. Führen Sie dazu Folgendes aus:

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

Das Sternchen bedeutet, dass Calibre alle Bücher, die sich im Verzeichnis "+ toadd " befinden, zur Bibliothek im Verzeichnis " calibre-library " hinzufügt. Möglicherweise wird der Fehler angezeigt, dass kein Cover gefunden wurde (wir haben uns dafür entschieden, die " .mobi +" - Dateien ohne Bilder herunterzuladen), es sollte jedoch auch eine Bestätigung angezeigt werden, dass die Bücher zur Calibre-Datenbank hinzugefügt wurden.

Beispielausgabe:

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

Das ist alles, was wir brauchen, um die ersten Ergebnisse zu sehen. Testen wir den Server. Run:

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

Der Befehl erzeugt keine Ausgabe, sondern scheint nur in Ihrem Terminal zu hängen. Das ist gut für jetzt; Wir werden uns später mit der ordnungsgemäßen Dämonisierung befassen. Öffnen Sie jetzt einen Webbrowser und navigieren Sie zu:

  • + http: //: 8080 +

Ersetzen Sie "++" durch die IP-Adresse Ihres Droplets. Sie sollten die Hauptseite Ihrer Bibliothek sehen, die dem folgenden Screenshot ähnelt.

Wenn Sie auf den Link * Alle Bücher * klicken, sollten Sie die beiden Bücher sehen, die wir zuvor hinzugefügt haben. Sie können auf die Schaltfläche * Get * unter jedem Buch klicken, um es herunterzuladen.

Hochladen einer vorhandenen Kaliberbibliothek

Wenn Sie bereits die Desktop-Version von Calibre ausführen und Ihre Bibliothek bereits eingerichtet haben, können Sie sie problemlos auf Ihren Server importieren.

Überprüfen Sie Ihren aktuellen Bibliotheksordner auf eine Datei mit dem Namen "+ metadata.db +". Wenn diese Datei existiert, sollte alles ohne zusätzliche Konfiguration funktionieren.

Laden Sie Ihren gesamten Bibliotheksordner auf Ihren Server hoch.

Führen Sie dann diesen Befehl aus:

calibre-server --with-library

Dadurch wird Ihre vorhandene Bibliothek vollständig zum Server hinzugefügt. Sie können weitere Bücher auf dem Server hinzufügen, indem Sie die Buchdateien im Verzeichnis "+ toadd +" ablegen, wie in diesem Lernprogramm erläutert.

Schritt 4 - Calibre zu einem Hintergrunddienst machen

Wir möchten nicht wirklich eine Shell offen halten, in der der Befehl "+ calibre-server +" ausgeführt wird, nur um den Server am Laufen zu halten.

Wir könnten dem Befehl zwar das "+ - daemonize " - Flag hinzufügen, aber es gibt bessere Möglichkeiten, dies zu tun. Nachfolgend wird erläutert, wie einfach es ist, " Kaliberserver +" in einen Dienst zu verwandeln, damit er beim Neustart des Systems automatisch gestartet wird und wir den Prozess sehr einfach starten, stoppen oder neu starten können.

Bis vor kurzem bestand die Möglichkeit, dies zu erreichen, darin, komplexe Skripte zu schreiben und diese in das Verzeichnis "+ / etc / init.d / " zu stellen. Die derzeit empfohlene Methode ist die Verwendung einer viel einfacheren https://www.digitalocean.com/community/tutorials/the-upstart-event-system-what-it-is-and-how-use-it[Upstart] script ist eine " .conf " - Datei, die sich im Verzeichnis " / etc / init / +" befindet. Wir werden uns ansehen, wie das geht:

Wenn der Server noch läuft, drücken Sie auf Ihrem Terminal die Tastenkombination "+ STRG + C +", um ihn zu stoppen.

Erstellen Sie nun eine neue Konfigurationsdatei:

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

Erstellen Sie das Upstart-Skript und achten Sie darauf, die Variablen zu ersetzen, die markiert sind in:

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

Fügen Sie dies in Ihren Texteditor ein und speichern Sie es. (STRG + X, dann Y, dann EINGABE). Wir werden uns im Folgenden ansehen, was die einzelnen Zeilen bewirken:

  • Die erste Zeile ist nur eine Beschreibung, mit der Sie (oder andere) wissen, was das Skript bewirkt

  • In den nächsten beiden Zeilen wird angegeben, auf welcher Ebene Ihr Skript gestartet und gestoppt werden soll, da Upstart die Angabe der Reihenfolge ermöglicht, damit aufeinander angewiesene Skripte in der richtigen Reihenfolge gestartet werden. Stufe 1 gilt für alle wichtigen Dienste. Daher beginnen wir mit Stufe 2. Zu diesem Zeitpunkt wissen wir, dass das Netzwerk und alle anderen erforderlichen Komponenten betriebsbereit sind

  • + respawn + bedeutet, dass der Dienst beim unerwarteten Beenden einen Neustart versucht

Die nächsten Zeilen sind alle Variablen, die wir an den Befehl + calibre-server + übergeben. Früher haben wir nur das Minimum der Angabe der Option "+ - mit Bibliothek" verwendet, aber jetzt können wir sehen, wie viel Flexibilität Calibre bietet. Oben haben wir angegeben:

  • Benutzername und Passwort für den Zugriff auf die Bibliothek aus dem Internet (bitte ändern Sie diese aus den bereitgestellten Beispielen)

  • Pfad des Bibliotheksverzeichnisses wie zuvor

  • Maximale Bildgröße für Buchdeckelbilder (dies ist nützlich, um die Seite schneller zu laden)

  • Portnummer (hier haben wir sie in "+ 80 +" geändert; ändern Sie sie in etwas anderes, wenn Sie Port 80 bereits für die Bereitstellung von Standardwebseiten usw. verwenden.)

  • Schließlich führen wir im Abschnitt "+ script " (als _stanza_ bezeichnet) den Hauptbefehl mit " exec " aus und übergeben alle unsere Variablen. Der Teil " / usr / bin / calibre-server +" ist der Pfad zur ausführbaren Datei

Nachdem Sie das Skript gespeichert und den Editor geschlossen haben, starten Sie den Server:

sudo start calibre-server

Dieses Mal sollten Sie diese Ausgabe sehen, aber mit einer anderen Prozessnummer:

calibre-server start/running, process 7811

Verwenden Sie jetzt einen Browser, um zur IP-Adresse oder zum Domain-Namen Ihres Servers zu navigieren.

Sie sollten ein Popup-Formular sehen, in dem Sie nach Benutzername und Passwort gefragt werden. Dies sollten diejenigen sein, die Sie dem Upstart-Skript hinzugefügt haben. Geben Sie diese ein, und Sie werden wie zuvor zu Ihrer E-Book-Bibliothek weitergeleitet.

Mit den folgenden Befehlen kann der Server jetzt problemlos gestoppt, gestartet und neu gestartet werden:

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

Dies erleichtert die Verwaltung des Servers erheblich, als dass Dämonprozesse und Prozess-IDs manuell verarbeitet werden müssen!

Die Site verfügt standardmäßig über eine mobile Version, die mit Geräten mit kleinerem Bildschirm wie Telefonen und E-Readern problemlos funktioniert. Dies sollte automatisch geladen werden, wenn Sie die Site von einem mobilen Gerät aus besuchen.

Schritt 5 - Erstellen eines Cron-Jobs zum automatischen Hinzufügen von Büchern

Wir können einen einfachen Cron-Job schreiben, um in unserem "+ toadd +" - Verzeichnis nach neuen Büchern zu suchen.

Alle 10 Minuten sucht es nach Dateien im Verzeichnis + / home // calibre-library / toadd / +, fügt alle darin enthaltenen Dateien zu unserer Calibre-Datenbank hinzu und entfernt dann die Originaldateien. (Calibre erstellt Kopien der Dateien, wenn sie unserer Bibliothek hinzugefügt werden, sodass wir die Originale nicht mehr benötigen, sobald das Hinzufügen wirksam wird.) Dies bedeutet, dass Sie Buchdateien über scp, ssh usw. übertragen. in dieses Verzeichnis von Ihrem Hauptcomputer oder laden Sie sie einfach direkt in das Verzeichnis "+ toadd +" herunter. Dann werden sie automatisch zu Ihrer Calibre-Datenbank hinzugefügt und können von Ihrer Bibliothek heruntergeladen werden!

Führen Sie Folgendes aus, um einen Cron-Job zu erstellen:

crontab -e

Möglicherweise müssen Sie eine Auswahl für Ihren bevorzugten Texteditor treffen.

Fügen Sie am Ende der Datei die folgende Zeile hinzu:

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

Der erste Teil des Befehls (+ * / 10 * * * * +) bedeutet, dass der Befehl alle zehn Minuten ausgeführt werden sollte. Der zweite Teil entspricht dem Befehl, den wir zuvor manuell ausgeführt haben. Es fügt alle Bücher aus dem Ordner "+ toadd +" zur Datenbank hinzu und entfernt dann die Originaldateien.

Das ist das. Sie können jetzt von überall auf der Welt auf Ihre E-Books zugreifen.

_ * Hinweis: * Die Suchergebnisse in Calibre sind nicht nach Relevanz sortiert. Wenn Sie also einen allgemeinen Begriff eingeben, finden Sie häufig nicht verwandte Bücher vor dem gesuchten. Sie können jedoch festlegen, dass nur nach Titel oder Autor gesucht wird, was sehr hilfreich ist, und die Suchoptionen (z. B. alphabetisch nach Autor) sind ebenfalls sehr gut implementiert. _

Fazit

Es gibt ein oder zwei Dinge, die Sie beachten müssen, wenn Sie einen Calibre-Server betreiben und warten. Wir werden uns diese kurz ansehen, um sie zu beenden.

Urheberrechte ©

Wenn Sie nur Bücher von Gutenberg oder ähnlichen Websites hosten (d. H. Bücher, die nicht urheberrechtlich geschützt sind), gibt es wenig zu sagen. Stellen Sie sicher, dass Sie die Nutzungsbedingungen von Gutenberg einhalten. Wenn Sie anderen Zugriff auf Ihre Büchersammlung gewähren, lesen Sie unbedingt den Abschnitt zu den Nutzungsbedingungen von Gutenberg (http://www.gutenberg.org/wiki/Gutenberg:The_Project_Gutenberg_License#Section_1._General_Terms_of_Use_and_Redistributing_Project_Gutenberg-tm_electronic_Project_Gutenberg-tm).

Wenn Sie im Handel gekaufte Bücher hosten, denken Sie daran, dass diese wahrscheinlich über DRM (Digital Rights Management) verfügen und daher nur von Ihrem registrierten Gerät gelesen werden können.

Es versteht sich von selbst, dass Sie niemals Raubkopien oder illegale Bücher auf Ihrem E-Book-Server hosten sollten.

Aktualisierung

Calibre pusht Updates sehr häufig. Obwohl die meisten davon Fehlerbehebungen und Funktionsaktualisierungen sind, haben einige möglicherweise etwas mit der Sicherheit zu tun. Es wird daher empfohlen, dass Sie mit den updates Schritt halten.

Wenn ein wichtiges Update veröffentlicht wird, sollten Sie die Serversoftware manuell aktualisieren. (Auch hier hinken die APT-Repos tendenziell hinterher, weshalb es nicht empfohlen wird, sich bei Updates auf sie zu verlassen.)

Sicherheit

Auch wenn Sie die IP-Adresse Ihres Droplets nicht veröffentlichen, wird sie möglicherweise von Skripten erkannt, die nach offenen Ports suchen. Da die Calibre-Anmeldefunktion nach einer Reihe falscher Versuche keine automatische Sperrung zulässt, besteht die Möglichkeit eines Brute-Force-Angriffs. Um dem entgegenzuwirken, wird dringend empfohlen, dass Sie:

  • Verwenden Sie keinen allgemeinen Benutzernamen wie * admin *, * calibre * oder * ebooks *.

  • Verwenden Sie kein allgemeines oder kurzes Passwort und auf keinen Fall Ihren Benutzernamen als Passwort

  • Erwägen Sie, Calibre nicht auf Port 80, sondern auf einem Nicht-Standard-Port auszuführen

Damit endet unser Tutorial. Wir wünschen Ihnen viel Spaß beim Zugriff auf Ihre E-Books von jedem Ort oder Gerät aus!