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
- Ein auf Ubuntu 20.04 basierender Server mit einem Benutzer mit sudo-Berechtigungen.
- 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.
Klicken Sie auf calibre-library
und Sie werden das Buch The turn of the screw
sehen, das Sie gerade heruntergeladen haben.
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.
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@yourdomain.com"
$ 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.
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.