So installieren Sie Calibre Ebook Server unter Ubuntu 22.04
Dieses Tutorial existiert für diese Betriebssystemversionen
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 20.04 (Focal Fossa)
Auf dieser Seite
- Voraussetzungen
- Schritt 1 – Firewall konfigurieren
- Schritt 2 – Calibre-Server herunterladen und installieren
- Schritt 3 – Erstellen Sie eine Calibre-Bibliothek und fügen Sie Ihr erstes Buch hinzu
- Schritt 4 – Starten Sie Calibre Server
- Schritt 5 – Erstellen Sie eine systemd-Dienstdatei
- Schritt 6 – Benutzerauthentifizierung aktivieren
- Schritt 7 – Bücher automatisch zur Bibliothek hinzufügen
- Schritt 8 – Installieren Sie Nginx
- Schritt 9 – Installieren Sie SSL
- Schritt 10 – Nginx konfigurieren
- Schlussfolgerung
Calibre ist ein kostenloser Open-Source-E-Book-Manager. Es funktioniert als plattformübergreifende Desktop-Anwendung zusammen mit einer Serverkomponente. Die Desktop-Komponente kann Ihre E-Book-Bibliothek auf einem einzigen Gerät verwalten. Und die Serverkomponente ermöglicht Ihnen Folgendes:
- Greifen Sie von überall auf der Welt auf Ihre Bücher zu.
- Übertragen Sie Ihre Bücher ganz einfach auf Mobilgeräte.
- Teilen Sie Bücher mit Ihren Freunden und Ihrer Familie.
- E-Books direkt im Internet lesen.
In diesem Lernprogramm erfahren Sie, wie Sie den Calibre-Server auf einem Ubuntu 22.04-Computer installieren.
Voraussetzungen
-
A server running Ubuntu 22.04.
-
A non-root user with sudo privileges.
-
The Uncomplicated Firewall(UFW) is enabled and running.
-
A Fully Qualified domain name pointed to the server. For our tutorial, we will be using the domain
calibre.example.com
. -
Everything is updated.
$ sudo apt update && sudo apt upgrade
Schritt 1 – Konfigurieren Sie die Firewall
Der erste Schritt vor der Installation von Paketen besteht darin, die Firewall so zu konfigurieren, dass HTTP- und HTTPS-Verbindungen zugelassen werden.
Überprüfen Sie den Status der Firewall.
$ sudo ufw status
Sie sollten so etwas wie das Folgende sehen.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
HTTP- und HTTPS-Ports zulassen.
$ sudo ufw allow http
$ sudo ufw allow https
Überprüfen Sie den Status zur Bestätigung erneut.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
Schritt 2 – Laden Sie den Calibre-Server herunter und installieren Sie ihn
Ubuntu 22.04 wird mit Calibre geliefert, aber es ist besser, es direkt zu installieren, um die neueste Version zu erhalten.
Der erste Schritt besteht darin, einige Abhängigkeiten zu installieren.
$ sudo apt install libopengl0 libxkbcommon-x11-0 libegl1 libfontconfig libgl1-mesa-glx
Laden Sie das Installationsprogramm für den Calibre-Server herunter.
$ wget https://download.calibre-ebook.com/linux-installer.sh
Machen Sie das Installationsskript ausführbar.
$ chmod +x ./linux-installer.sh
Führen Sie das Installationsprogramm aus.
$ sudo ./linux-installer.sh
Sie erhalten einige Warnungen, da das Installationsprogramm einen Desktop und keinen Server erwartet. Es ist sicher, die Warnungen zu ignorieren.
Schritt 3 – Erstellen Sie eine Calibre-Bibliothek und fügen Sie Ihr erstes Buch hinzu
Der nächste Schritt besteht darin, eine Calibre-Bibliothek einzurichten und ihr einige Bücher hinzuzufügen. Für unser Tutorial werden wir das Buch Die Abenteuer von Sherlock Holmes von Arthur Conan Doyle von Project Gutenberg herunterladen.
$ wget http://www.gutenberg.org/ebooks/1661.kindle.noimages -O adventuresofsherlockholmes.mobi
Holen Sie sich immer die Kindle-Version des Buches von der Website. Hier benennen wir die Kindle-Version in filename.mobi
um, da das Mobi-Format von Kindle nativ unterstützt wird, weshalb es auf der Website so genannt wird. Es bietet auch bessere Formatierungsmöglichkeiten als die Epub-Version.
Erstellen Sie ein Verzeichnis für die Calibre-Bibliothek.
$ mkdir calibre-library
Fügen Sie das soeben heruntergeladene Buch mit dem Befehl calibredb
zur Bibliothek hinzu. Wir haben den Speicherort der Bibliothek im Befehl selbst angegeben.
$ calibredb add adventuresofsherlockholmes.mobi --with-library calibre-library/
Added book ids: 1
Sie können auf folgende Weise mehrere Bücher auf einmal hinzufügen.
$ calibredb add *.mobi --with-library calibre-library/
Schritt 4 – Starten Sie Calibre Server
Nachdem wir unsere Bücher fertig haben, ist es an der Zeit, den Calibre-Server zu starten.
$ calibre-server calibre-library
Der Befehl calibre-server
nimmt den Speicherort der Bibliothek als Argument. 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
Dadurch wird der Calibre-Server an Port 8080 verfügbar gemacht. Um den Server anzuzeigen, müssen Sie zuerst den Port öffnen. Führen Sie den folgenden Befehl aus, um Port 8080 zu öffnen.
$ sudo ufw allow 8080
Öffnen Sie die URL http://
in Ihrem Browser und Sie erhalten den folgenden Bildschirm. Der Bildschirm wird je nach Auswahl Ihres Betriebssystemdesigns dunkel oder hell angezeigt.

Klicken Sie auf den Calibre-Library-Link, um das Buch anzuzeigen, das Sie im vorherigen Schritt hinzugefügt haben.

Schließen Sie den Server, indem Sie auf Ihrem Terminal die Tastenkombination Strg + C drücken.
Sie können einen anderen Port verwenden, um den Calibre-Server verfügbar zu machen. Verwenden Sie dazu den folgenden Befehl. Sie müssen sicherstellen, dass der Port in der Firewall geöffnet ist.
$ calibre-server calibre-library --port 7654
Schritt 5 – Erstellen Sie eine systemd-Dienstdatei
Damit der Calibre-Server persistent verarbeitet und Neustarts überlebt, müssen Sie eine systemd-Dienstdatei dafür erstellen.
Erstellen Sie eine Datei namens calibre-server.service
im Verzeichnis /etc/sytemd/system/
und öffnen Sie sie zur Bearbeitung.
$ sudo nano /etc/systemd/system/calibre-server.service
Fügen Sie den folgenden Code darin ein.
[Unit]
Description=Calibre 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
Das --enable-local-write
-Flag gibt dem Server Schreibzugriff, um neue Bücher zur Bibliothek hinzuzufügen. Dies liegt daran, dass Sie keine Bücher mit dem Befehl calibredb
hinzufügen können, während der Server läuft.
Ersetzen Sie im obigen Code
durch den Benutzernamen Ihres Linux-Systems. Speichern und schließen Sie die Datei, indem Sie Strg+W drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Laden Sie den Dienstdämon neu, um die Dienstdatei zu aktivieren.
$ sudo systemctl daemon-reload
Aktivieren und starten Sie den Calibre-Dienst.
$ sudo systemctl enable calibre-server
$ sudo systemctl start calibre-server
Überprüfen Sie den Status des Dienstes.
$ sudo systemctl status calibre-server
? calibre-server.service - Calibre Server
Loaded: loaded (/etc/systemd/system/calibre-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-07-25 07:23:42 UTC; 15s ago
Main PID: 1877 (BonJour)
Tasks: 13 (limit: 2241)
Memory: 53.3M
CPU: 762ms
CGroup: /system.slice/calibre-server.service
??1877 /opt/calibre/bin/calibre-server /home/<username>/calibre-library --enable-local-write
Jul 25 07:23:42 calibre systemd[1]: Started Calibre Server.
Jul 25 07:23:42 calibre calibre-server[1877]: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-<username>'
Jul 25 07:23:42 calibre calibre-server[1877]: calibre server listening on 0.0.0.0:8080
Jul 25 07:23:43 calibre calibre-server[1877]: OPDS feeds advertised via BonJour at: 69.28.84.201 port: 8080
Schritt 6 – Aktivieren Sie die Benutzerauthentifizierung
Sie können Calibre eine Benutzerauthentifizierung hinzufügen, um zu verhindern, dass Ihre Bibliothek für andere verfügbar ist. Stoppen Sie zuerst den Calibre-Server.
$ sudo systemctl stop calibre-server
Calibre verwendet eine SQLite-Datenbank zum Speichern von Benutzeranmeldeinformationen. Starten Sie das Calibres-Benutzerverwaltungsskript, um einen Benutzer hinzuzufügen.
$ sudo calibre-server --manage-users
Sie erhalten vier Optionen und werden nach Ihrer Wahl gefragt. Drücken Sie 1, um einen neuen Benutzer hinzuzufügen, und geben Sie den Benutzernamen und das Kennwort ein, um das Hinzufügen eines neuen Benutzers abzuschließen.
1) Add a new user
2) Edit an existing user
3) Remove a user
4) Cancel
What do you want to do? [1-4]: (Press 1)
Enter the username: howtoforge
Enter the new password for howtoforge:
Re-enter the new password for howtoforge, to verify:
User howtoforge added successfully!
Als Nächstes müssen Sie die Dienstdatei bearbeiten, um die Authentifizierung zu überprüfen. Öffnen Sie die Datei zum Bearbeiten.
$ 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.
Laden Sie den Service-Daemon neu und starten Sie den Service.
$ sudo systemctl daemon-reload
$ sudo systemctl start calibre-server
Wenn Sie die Bibliotheks-URL öffnen, werden Sie zur Eingabe Ihres Benutzernamens und Kennworts aufgefordert, bevor Sie darauf zugreifen können. Geben Sie Ihre Anmeldeinformationen ein und klicken Sie auf die Schaltfläche Anmelden, um auf die Bibliothek zuzugreifen.

Schritt 7 – Bücher automatisch zur Bibliothek hinzufügen
Mit Calibre können Sie Bücher mithilfe eines Cron-Jobs automatisch zur Bibliothek hinzufügen. Dazu sucht es in regelmäßigen Abständen in einem Verzeichnis nach neuen Büchern und fügt diese dann der Bibliothek hinzu. Dies ist der schnellste Weg, um Bücher hinzuzufügen, wo Sie sie einfach in das Verzeichnis hochladen können und sie bald ohne manuellen Eingriff in der Bibliothek erscheinen.
Der erste Schritt besteht darin, ein Überwachungsverzeichnis zu erstellen.
$ mkdir ~/calibre-watch
$ cd ~/calibre-watch
Laden Sie das Buch Krieg und Frieden
von Leo Tolstoi
von Project Gutenberg in dieses Verzeichnis herunter.
$ wget https://www.gutenberg.org/ebooks/2600.kindle.images -O warandpeace.mobi
Wie Sie bemerken, laden wir dieses Mal eine Version herunter, die Bilder enthält. Es variiert von Buch zu Buch über Projekt Gutenberg. Einige haben Image-Versionen verfügbar, andere nicht. Calibre funktioniert mit beiden Formaten gut.
Öffnen Sie den Crontab-Editor.
$ crontab -e
Wenn Sie Crontab zum ersten Mal verwenden, werden Sie aufgefordert, einen Editor auszuwählen.
no crontab for <username> - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]:
Geben Sie 1 ein, um den Nano-Editor auszuwählen, da er am einfachsten zu bedienen ist.
Fügen Sie den folgenden Befehl am Ende der Datei hinzu.
*/5 * * * * calibredb add /home/<username>/calibre-watch/ -r --with-library http://localhost:8080#calibre-library --username mycalibreuser --password StrongPassword! && rm -r /home/<username>/calibre-watch/*
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 obige Job wird alle 5 Minuten ausgeführt. Ersetzen Sie
durch den Benutzernamen Ihres Linux-Systems und fügen Sie Ihre Calibre-Anmeldeinformationen an den entsprechenden Stellen hinzu.
Speichern und schließen Sie die Datei, indem Sie Strg+W drücken und Y eingeben, wenn Sie dazu aufgefordert werden. 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.
Schritt 8 – Installieren Sie Nginx
Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.
Nginxs-Signaturschlüssel importieren.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Fügen Sie das Repository für die stabile Version von Nginx hinzu.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Aktualisieren Sie die System-Repositorys.
$ sudo apt update
Nginx installieren.
$ sudo apt install nginx
Überprüfen Sie die Installation.
$ nginx -v
nginx version: nginx/1.22.0
Schritt 9 – Installieren Sie SSL
Derzeit wird Calibre über eine IP-Adresse auf einem HTTP-Port angezeigt. Um es besser zu sichern, werden wir den Zugriff über eine dedizierte Domain mit einem SSL-Zertifikat ermöglichen.
Wir müssen Certbot installieren, um das SSL-Zertifikat für Calibre zu generieren. Sie können Certbot entweder über das Ubuntus-Repository installieren oder die neueste Version mit dem Snapd-Tool abrufen. Wir werden die Snapd-Version verwenden.
Ubuntu 22.04 wird standardmäßig mit Snapd geliefert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.
$ sudo snap install core
Certbot installieren.
$ sudo snap install --classic certbot
Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin
erstellen.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m -d calibre.example.com
Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/calibre.example.com
auf Ihrem Server herunter.
Generieren Sie ein Diffie-Hellman-Gruppenzertifikat.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Öffnen Sie die Datei /etc/letsencrypt/renewal/calibre.example.com.conf
zum Bearbeiten.
$ sudo nano /etc/letsencrypt/renewal/calibre.example.com.conf
Fügen Sie unten den folgenden Code ein.
pre_hook = systemctl stop nginx
post_hook = systemctl start nginx
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Wir haben das SSL-Zertifikat mit der eigenständigen Option von Certbot generiert. Es führt seinen Webserver aus, um das Zertifikat zu erstellen, was bedeutet, dass Nginx während der Erneuerung abgeschaltet werden sollte. Die Befehle pre_hook und post_hook werden vor und nach der Erneuerung ausgeführt, um den Nginx-Server automatisch herunterzufahren und neu zu starten, wodurch kein manueller Eingriff erforderlich ist.
Um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert, führen Sie einen Probelauf des Prozesses durch.
$ sudo certbot renew --dry-run
Wenn Sie keine Fehler sehen, sind Sie fertig. Ihr Zertifikat wird automatisch verlängert.
Schritt 10 – Konfigurieren Sie Nginx
Öffnen Sie die Datei /etc/nginx/nginx.conf
zum Bearbeiten.
$ sudo nano /etc/nginx/nginx.conf
Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf;
hinzu.
server_names_hash_bucket_size 64;
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/calibre.conf
zum Bearbeiten.
$ sudo nano /etc/nginx/conf.d/calibre.conf
Fügen Sie den folgenden Code darin ein. Ersetzen Sie calibre.example.com
durch Ihren Domänennamen. Wir haben den Wert der Variablen client_max_body_size
auf 50 MB festgelegt. Sie können es gemäß Ihren Anforderungen ändern.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
http2_push_preload on; # Enable HTTP/2 Server Push
# Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
# prevent replay attacks.
#
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
server_name calibre.example.com;
client_max_body_size 50M;
access_log /var/log/nginx/calibre.access.log;
error_log /var/log/nginx/calibre.error.log;
ssl_certificate /etc/letsencrypt/live/calibre.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/calibre.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/calibre.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
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_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name calibre.example.com;
return 301 https://$host$request_uri;
}
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Überprüfen Sie Ihre Nginx-Konfiguration.
$ sudo nginx -t
Starten Sie den Nginx-Server neu, um die Konfigurationsdateien zu aktivieren.
$ sudo systemctl restart nginx
Besuchen Sie https://calibre.example.com
in Ihrem Browser, um auf Calibre zuzugreifen. Sie können sehen, dass das über Cron hinzugefügte Buch auch in der Bibliothek verfügbar ist.

Fazit
Damit ist unser Tutorial zur Installation von Calibre Server auf einem Ubuntu 22.04-Rechner mit Nginx abgeschlossen. Wir haben Calibre auch konfiguriert, um die grundlegende Authentifizierung zu aktivieren und Unterstützung für das automatische Hinzufügen neuer Bücher hinzuzufügen. Calibre Server wird mit vielen Befehlszeilentools ausgeliefert. Um mehr darüber zu erfahren, können Sie die Calibre-Dokumentation besuchen. Wenn Sie Fragen haben, posten Sie sie in den Kommentaren unten.