So installieren Sie Calibre Ebook Server unter Ubuntu 20.04
Dieses Tutorial existiert für diese Betriebssystemversionen
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 20.04 (Focal Fossa)
Auf dieser Seite
- Voraussetzungen
- Firewall konfigurieren
- Laden Sie den Calibre-Server herunter und installieren Sie ihn
- Erstellen Sie eine Bibliothek und fügen Sie Ihr erstes Buch hinzu
- Führen Sie den Calibre-Server aus
- Erstellen Sie einen Dienst für Calibre Server
- Benutzerauthentifizierung zum Calibre-Server hinzufügen
- Bücher automatisch zu Ihrer Bibliothek hinzufügen
- Installieren Sie Nginx
- SSL installieren
- Konfigurieren Sie Nginx so, dass Calibre über Proxy mit SSL bereitgestellt wird
- Schlussfolgerung
Calibre ist ein kostenloser Open-Source-E-Book-Manager. Es wird als plattformübergreifende Desktop-Anwendung zusammen mit einer Serverkomponente 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 zum späteren Lesen auf Ihre Mobilgeräte übertragen. Mit dem Calibre-Server können Sie E-Books auch direkt im Internet lesen.
In diesem Tutorial erfahren Sie, wie Sie einen Calibre-E-Book-Server auf einem Ubuntu 20.04-basierten Server installieren und verwenden.
Voraussetzungen
-
An Ubuntu 20.04 based server with a user with sudo privileges.
-
Keep the server updated.
$ sudo apt update && sudo apt upgrade
Firewall konfigurieren
Ubuntu 20.04 wird standardmäßig mit einer unkomplizierten Firewall (UFW) geliefert. Falls dies nicht der Fall ist, installieren Sie es zuerst.
$ sudo apt install ufw
SSH-Port aktivieren.
$ sudo ufw allow "OpenSSH"
Aktivieren Sie die Firewall.
$ sudo ufw enable
Aktivieren Sie die Ports 8080, die vom Calibre-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 mit Calibre ausgeliefert, aber es ist besser, es direkt von ihrer 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
Legen Sie das Installationsskript als ausführbar fest.
$ chmod +x ./linux-installer.sh
Führen Sie das Installationsprogramm aus.
$ sudo ./linux-installer.sh
Sie erhalten einige Warnungen, da der Installer 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 als Beispiel ein Buch von Project Gutenberg herunterladen. Das Projekt Gutenberg ist ein riesiges Archiv kostenloser, gemeinfreier Bücher.
Führen Sie den folgenden Befehl aus, um Ihr erstes Buch herunterzuladen. Lassen Sie uns im Geiste des letzten Halloween-Festivals eine Horrorgeschichte herunterladen, „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 Calibre-Bibliothek.
$ mkdir calibre-library
Fügen Sie das Buch, das Sie gerade heruntergeladen haben, mit dem Befehl calibredb
zu Ihrer Calibre-Bibliothek hinzu.
$ calibredb add *.mobi --with-library calibre-library/
Added book ids: 1
Es ist jetzt an der Zeit, Calibre zu starten.
Führen Sie den Calibre-Server aus
Führen Sie den folgenden Befehl aus, um den Calibre-Inhaltsserver zu starten.
$ calibre-server calibre-library
calibre-server
ist der Befehl zum Starten des Servers und calibre-library
ist der Name des Verzeichnisses, das wir gerade erstellt haben und das vom Server zum Laden der Benutzeroberfläche 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://
in Ihrem Browser und Sie sehen den Standardbildschirm von Calibre.

Klicken Sie auf calibre-library
und Sie sehen das gerade heruntergeladene Buch The turn of the screw
.

Sie können den Server stoppen, indem Sie in der Befehlszeile Strg+C drücken.
Calibre Server verwendet standardmäßig den Port 8080. Sie können es ändern, indem Sie den Befehl während des Starts ändern.
$ calibre-server calibre-library --port 7530
Sie können dies dann überprüfen, indem Sie die URL http://
in Ihrem Browser aufrufen.
Sie müssen den Port auch über die Firewall zulassen.
$ sudo ufw allow 7530
Erstellen Sie einen Dienst für Calibre Server
Sie möchten wahrscheinlich, dass Calibre auch nach dem Neustart des Servers für immer läuft. Dazu müssen Sie einen Dienst für Calibre erstellen, der es automatisch beim Booten 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 Calibre-Dienst.
$ 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://
im Browser, um sicherzustellen, dass Calibre funktioniert.
Fügen Sie dem Calibre-Server die Benutzerauthentifizierung hinzu
Im Moment kann jeder, der Ihre Server-IP kennt, auf den Calibre-Server zugreifen. Wir können das ändern, indem wir dem Server eine Benutzerauthentifizierung hinzufügen.
Stoppen Sie zuerst den Calibre-Server.
$ sudo systemctl stop calibre-server
Starten Sie das Calibres-Benutzerverwaltungsskript. Sie können den Pfad angeben, in dem die Benutzerdatenbank gespeichert wird. Es 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 zu erstellen, und wählen Sie ein sicheres Passwort.
Als nächstes müssen wir den zuvor eingerichteten Calibre-Dienst bearbeiten.
Öffnen Sie die Servicedatei.
$ sudo nano /etc/systemd/system/calibre-server.service
Fügen Sie das Flag --enable-auth
am Ende der Zeile hinzu, die mit ExecStart
beginnt, um die Benutzerauthentifizierung zu aktivieren.
. . .
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 Dienstdämon, um die geänderte Dienstdatei neu zu laden, und starten Sie den Dienst erneut.
sudo systemctl daemon-reload
sudo systemctl start calibre-server
Wenn Sie die Website das nächste Mal starten, werden Sie nach dem Benutzernamen und dem Passwort gefragt, bevor Sie auf die Bibliothek zugreifen.

Bücher automatisch zu Ihrer Bibliothek hinzufügen
Wir können einen überwachten Ordner einrichten, der vom Calibre-Server verfolgt werden kann, sodass jedes Mal, wenn Sie dem Ordner ein neues Buch hinzufügen, es automatisch der Calibre-Bibliothek hinzugefügt wird.
Erstellen Sie einen Überwachungsordner und wechseln Sie dorthin.
$ 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 als Nächstes den Crontab-Editor.
$ crontab -e
Fügen Sie am Ende die folgende Zeile 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/
zur Calibre-Bibliothek hinzu und löscht alle Originaldateien, da sie nicht mehr benötigt werden.
Der Cronjob wird alle 5 Minuten ausgeführt. Warten Sie ein paar Minuten und laden Sie die Calibre-Server-Site neu, um zu sehen, dass das Buch, das Sie gerade hinzugefügt haben, in der Bibliothek erscheint.
Nginx installieren
In diesem Schritt installieren wir den Nginx-Webserver, um den Calibre-Server über Proxy zu bedienen. Auf diese Weise können Sie beispielsweise über einen Domänennamen darauf zugreifen, calibre.yourdomain.com
. Sie brauchen sich auch nicht um die Angabe von Portnummern zu kümmern. Und mit Nginx als Proxy können wir die Site ü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, das automatisch die Ports 80 und 443 öffnet.
$ 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)
Installieren Sie SSL
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ört.
$ sudo systemctl stop nginx
Generieren Sie das Zertifikat. Wir müssen auch ein DHParams-Zertifikat erstellen.
$ export LDOMAIN="calibre.yourdomain.com"
$ export LEMAIL=""
$ 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 einrichten, um das SSL automatisch zu erneuern. Führen Sie den folgenden Befehl aus, um den Crontab-Editor zu öffnen
$ sudo crontab -e
Der obige Befehl öffnet den Crontab-Editor.
Fügen Sie unten die folgende Zeile ein.
25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”
Der obige Cron-Job führt certbot jeden Tag um 2:25 Uhr aus. Sie können es beliebig ä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 bereitgestellt 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 aufgefordert werden, die Datei zu speichern.
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 Seite jetzt über die URL https://calibre.yourdomain.com
starten.
Fazit
In diesem Tutorial haben Sie gelernt, wie Sie den Calibre-E-Book-Server installieren und ausführen und über Nginx ausführen, zusammen mit der Benutzerauthentifizierung und der Möglichkeit, Bücher automatisch hinzuzufügen. Wenn Sie Fragen haben, posten Sie sie in den Kommentaren unten.