Wie installiert man Calibre Ebook Server unter Ubuntu 20.04

Calibre ist ein kostenloser und quelloffener E-Book-Manager. Er wird als plattformübergreifende Desktop-Anwendung zusammen mit einer Server-Komponente geliefert und kann zur Verwaltung Ihrer E-Book-Bibliothek verwendet werden.

Wenn Sie Calibre als Server einrichten, können Sie von überall auf der Welt auf Ihre Bücher zugreifen und sie mit Freunden und Familie teilen. Sie können sie auch auf Ihre mobilen Geräte übertragen, um sie später zu lesen. Calibre-Server ermöglicht es Ihnen auch, E-Books direkt im Web zu lesen.

In diesem Tutorial erfahren Sie, wie Sie einen Calibre eBook-Server auf einem Ubuntu 20.04-basierten Server installieren und verwenden.

Voraussetzungen

  1. Ein auf Ubuntu 20.04 basierender Server mit einem Benutzer mit sudo-Berechtigungen.
  2. Halten Sie den Server auf dem neuesten Stand.
    $ sudo apt update && sudo apt upgrade
    

Konfigurieren Sie die Firewall

Ubuntu 20.04 wird standardmäßig mit der Unkomplizierten Firewall(UFW) ausgeliefert. Sollte dies nicht der Fall sein, installieren Sie sie zuerst.

$ sudo apt install ufw

Aktivieren Sie den SSH-Port.

$ sudo ufw allow "OpenSSH"

Aktivieren Sie die Firewall.

$ sudo ufw enable

Aktivieren Sie die Ports 8080, die vom Kalibrier-Server verwendet werden.

$ sudo ufw allow 8080

Überprüfen Sie den Firewall-Status.

$ sudo ufw status
Status: active

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

Laden Sie den Calibre-Server herunter und installieren Sie ihn.

Ubuntu 20.04 wird zwar mit dem Kaliber ausgeliefert, aber es ist besser, es direkt von deren Website zu installieren, um die neueste Version zu erhalten.

Zuerst müssen Sie einige Abhängigkeiten installieren.

$ sudo apt install libfontconfig libgl1-mesa-glx

Laden Sie das Calibre-Server-Installationsprogramm herunter.

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

Stellen Sie das Installationsskript als ausführbar ein.

$ chmod +x ./linux-installer.sh

Starten Sie das Installationsprogramm.

$ sudo ./linux-installer.sh

Sie werden einige Warnungen erhalten, da das Installationsprogramm ein Desktop-System und keinen Headless-Server erwartet. Es ist sicher, sie zu ignorieren.

Erstellen Sie eine Bibliothek und fügen Sie Ihr erstes Buch hinzu

Für unser Tutorial werden wir ein Buch von Project Gutenberg als Beispiel herunterladen. Project Gutenberg ist ein riesiges Repository freier, gemeinfreier Bücher.

Führen Sie den folgenden Befehl aus, um Ihr erstes Buch herunterzuladen. Im Geiste des jüngsten Halloween-Festes laden wir eine Horrorgeschichte herunter: „The turn of the screw“ von Henry James.

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

Erstellen Sie ein Verzeichnis für Ihre Kaliber-Bibliothek.

$ mkdir calibre-library

Fügen Sie das Buch, das Sie gerade heruntergeladen haben, mit dem Befehl calibredb zu Ihrer Kalibrier-Bibliothek hinzu.

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

Es ist jetzt an der Zeit, mit Calibre zu beginnen.

Starten Sie den Kaliber-Server

Führen Sie den folgenden Befehl aus, um den Calibre Content Server zu starten.

$ calibre-server calibre-library

calibre-server ist der Befehl, mit dem der Server gestartet wird, und calibre-library ist der Name des Verzeichnisses, das wir gerade erstellt haben und das vom Server zum Laden der Schnittstelle verwendet wird.

Sie sollten eine ähnliche Ausgabe sehen.

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

Starten Sie die URL http://<yourserverip>:8080 in Ihrem Browser, und Sie sehen den Standard-Kaliber-Bildschirm.

Calibre Server-Standard-Homepage

Klicken Sie auf calibre-library und Sie werden das Buch The turn of the screw sehen, das Sie gerade heruntergeladen haben.

Calibre Server-Bibliothek Seite

Sie können den Server stoppen, indem Sie Strg+C in der Befehlszeile drücken.

Der Calibre-Server verwendet standardmäßig den Port 8080. Sie können ihn ändern, indem Sie den Befehl beim Start modifizieren.

$ calibre-server calibre-library --port 7530

Sie können dies dann überprüfen, indem Sie die URL http://<yourserverip>:7530 in Ihrem Browser aufrufen.

Sie müssen den Port auch über die Firewall zulassen.

$ sudo ufw allow 7530

Einen Dienst für Calibre-Server erstellen

Sie möchten wahrscheinlich, dass Calibre auch nach dem Neustart des Servers für immer läuft. Um dies zu erreichen, müssen Sie einen Dienst für Calibre erstellen, der ihn beim Booten automatisch startet.

Erstellen Sie eine Datei /etc/systemd/system/calibre-server.service und öffnen Sie sie zur Bearbeitung mit dem Nano-Editor.

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

Fügen Sie den folgenden Code ein.

## 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

Ersetzen Sie <username> durch den tatsächlichen Systembenutzer auf Ihrem Ubuntu-Server.

Speichern und schließen Sie die Datei, indem Sie Strg+W drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Aktivieren und starten Sie den Kaliberdienst.

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

Sie können dies überprüfen, indem Sie den Dienst neu starten.

$ sudo reboot

Warten Sie ein paar Minuten und öffnen Sie http://<yourserverip>:8080 im Browser, um sicherzustellen, dass der Kalibrierdienst funktioniert.

Benutzerauthentifizierung zum Calibre-Server hinzufügen

Im Moment kann jeder, der Ihre Server-IP kennt, auf den Kalibrier-Server zugreifen. Wir können das ändern, indem wir dem Server eine Benutzerauthentifizierung hinzufügen.

Stoppen Sie zunächst den Kalibrier-Server.

$ sudo systemctl stop calibre-server

Starten Sie das Benutzerverwaltungsskript des Kalibers. Sie können den Pfad angeben, in dem die Benutzerdatenbank gespeichert werden soll. Sie wird in Form einer SQLite-Datenbank gespeichert.

$ 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!

Geben Sie 1 ein, um einen neuen Benutzer anzulegen, und wählen Sie ein sicheres Passwort.

Als nächstes müssen wir den Kaliberdienst bearbeiten, den wir zuvor eingerichtet hatten.

Öffnen Sie die Servicedatei.

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

Fügen Sie am Ende der Zeile, die mit ExecStart beginnt, das Flag --enable-auth hinzu, um die Benutzerauthentifizierung zu ermöglichen.

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

Speichern und schließen Sie die Datei, indem Sie Strg+W drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Aktualisieren Sie den Dienst-Daemon, um die geänderte Dienstdatei neu zu laden und den Dienst erneut zu starten.

sudo systemctl daemon-reload
sudo systemctl start calibre-server

Wenn Sie die Website das nächste Mal starten, werden Sie vor dem Zugriff auf die Bibliothek nach dem Benutzernamen und dem Passwort gefragt.

Calibre Server-Benutzeranmeldung

Automatisch Bücher zu Ihrer Bibliothek hinzufügen

Wir können einen Überwachungsordner einrichten, der vom Calibre-Server nachverfolgt werden kann, so dass jedes Mal, wenn Sie dem Ordner ein neues Buch hinzufügen, dieses automatisch der Calibre-Bibliothek hinzugefügt wird.

Erstellen Sie einen Überwachungsordner und wechseln Sie zu diesem Ordner.

$ mkdir ~/watchbooks
$ cd ~/watchbooks

Laden Sie mit dem folgenden Befehl ein neues Buch in den Ordner herunter.

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

Öffnen Sie anschließend den Crontab-Editor.

$ crontab -e

Fügen Sie die folgende Zeile am Ende hinzu.

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

Dieses Skript fügt alle Dateien im Verzeichnis /home/<username>/watchbooks zur Calibre-Bibliothek hinzu und löscht alle Originaldateien, da sie nicht mehr benötigt werden.

Der Cron-Job wird alle 5 Minuten ausgeführt. Warten Sie einige Minuten und laden Sie die Calibre-Server-Site neu, damit das gerade hinzugefügte Buch in der Bibliothek erscheint.

Nginx installieren

In diesem Schritt werden wir Nginx Webserver installieren, um den Kalibrier-Server über Proxy zu bedienen. Auf diese Weise können Sie über einen Domain-Namen darauf zugreifen, zum Beispiel calibre.yourdomain.com. Sie müssen sich auch nicht um die Angabe von Portnummern kümmern. Und mit Nginx als Proxy können wir die Website über SSL bedienen.

Führen Sie den folgenden Befehl aus, um Nginx zu installieren.

$ sudo apt install nginx

Öffnen Sie die Ports 80 und 443 und schließen Sie den Port 8080, da er nicht mehr benötigt wird.

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

Nginx Full ist ein Anwendungsprofil für die ufw-Firewall, die automatisch die Ports 80 und 443 öffnen wird.

$ 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)

SSL installieren

Wir werden SSL mit dem Dienst Let’s Encrypt installieren.

Installieren Sie dazu Certbot.

$ sudo apt install certbot

Stoppen Sie Nginx, da es den Certbot-Prozess stören wird.

$ sudo systemctl stop nginx

Erzeugen Sie das Zertifikat. Wir müssen auch ein DHParams-Zertifikat erstellen.

$ 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

Wir müssen auch einen Cron-Job für die automatische Erneuerung von SSL einrichten. Um den Crontab-Editor zu öffnen, führen Sie den folgenden Befehl aus

$ sudo crontab -e

Der obige Befehl öffnet den Crontab-Editor.

Fügen Sie die folgende Zeile unten ein.

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

Der obige Cron-Job wird certbot jeden Tag um 2:25 Uhr ausführen. Sie können ihn nach Belieben ändern.

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Konfigurieren Sie Nginx so, dass Calibre über Proxy mit SSL bedient wird.

Wir müssen die Nginx-Konfigurationsdatei bearbeiten, um die SSL-Konfiguration hinzuzufügen.

Führen Sie den folgenden Befehl aus, um eine Konfigurationsdatei für den Calibre-Server hinzuzufügen.

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

Fügen Sie den folgenden Code in den Editor ein.

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;
}

Drücken Sie Strg + X, um den Editor zu schließen, und drücken Sie Y, wenn Sie zum Speichern der Datei aufgefordert werden.

Aktivieren Sie diese Konfigurationsdatei, indem Sie sie mit dem Verzeichnis sites-enabled verknüpfen.

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

Testen Sie die Nginx-Konfiguration.

$ sudo nginx -t

Sie sollten die folgende Ausgabe sehen, die anzeigt, dass Ihre Konfiguration korrekt ist.

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

Laden Sie den Nginx-Dienst neu.

$ sudo systemctl reload nginx

Sie können die Website jetzt über die URL https://calibre.yourdomain.com starten.

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie der Calibre ebook-Server installiert und ausgeführt wird und wie er über Nginx zusammen mit der Benutzerauthentifizierung und der Möglichkeit, Bücher automatisch hinzuzufügen, betrieben werden kann. Wenn Sie Fragen haben, stellen Sie diese in den Kommentaren unten.

Das könnte dich auch interessieren …