Quelle der Anleitung: Installation Calibre-E-Book by howtoforge
Anleitung für DEBIAN!
System aktualisieren
sudo apt update && sudo apt upgrade
Port für Firewall
sudo ufw allow 8080
Abhängigkeiten installieren
sudo apt install libfontconfig libgl1-mesa-glx
Programm downloaden (z.B. im eigenen Homeverzeichnis)
wget https://download.calibre-ebook.com/linux-installer.sh
Ausführbar machen
chmod +x linux-installer.sh
Installieren
sudo bash linux-installer.sh
Ich habe auf zwei verschieden eingerichteten Debians installiert und es fehlten unterschiedliche Bibliotheken oder Services. Die Hinweise während der Installation oder dem gescheiterten Starten des Systems haben weitergeholfen. Dort werden fehlende Utilitys angezeigt.
Beispiel davon (jeweils mit sudo apt install xxx): xdg-utils, libxcb-cursor0, libegl1 oder libopengl0.
Deinstallation
sudo calibre-uninstall
Sollen Bücher über die Schell der Bibliothek zugänglich gemacht werden, müssen sie dort geladen werden.
Bücher können später auch über die Weboberfläche geladen werden.
Z.B. ein Gratis-Buch aus dem Gutenbergprojekt ins eigene Homeverzeichnis („The turn of the screw“ von Henry James)
wget http://www.gutenberg.org/ebooks/209.kindle.noimages -O turnofthescrew.mobi
wget https://www.gutenberg.org/ebooks/15711.epub3.images -O madamebovary.epub
Verzeichnis für eine Bibliothek erstellen
mkdir calibre-library
Das Verzeichnis kann an beliebiger Stelle liegen (hier das Home-Verzeichnis) » u.a. Pfade und Zugriffsrechte ggf. anpassen!
Bücher hinzufügen
calibredb add *.mobi --with-library calibre-library/
Dazu müssen wir uns im Verzeichnis befinden, indem die Bücher im Format *.mobi liegen. Es wird hier in die Bibliothek calibre-library/ kopiert.
Server starten
calibre-server calibre-library
calibre-library ist hier wieder der Pfad der Bibliothek.
oder mit alternativem Port
calibre-server calibre-library --port 7530
dann aber zuvor die Firewall anpassen
sudo ufw allow 7530
So sollte die Ausgabe nach dem Start des Servers aussehen (wobei das 0.0.0.0 die gültige IP-Adresse sein sollte)
calibre server listening on 0.0.0.0:8080 OPDS feeds advertised via BonJour at: your_server_ip port: 8080
Nun läßt es sich in einem Browser so starten
http://<yourserverip>:8080
sudo nano /etc/systemd/system/calibre-server.service
## startup service [Unit] Description=calibre content server After=network.target [Service] Type=simple User=<USER> Group=<USER> ExecStart=/opt/calibre/calibre-server /home/<USER>/calibre-library --enable-local-write [Install] WantedBy=multi-user.target
<USER> 3x ersetzen mit dem echten Usernamen
Das Verzeichnis kann auch an anderer Stelle liegen » Zugriffsrechte beachten!
System aktivieren und starten
sudo systemctl enable calibre-server
sudo systemctl start calibre-server
Zum testen einen Neustart des Systems durchführen
sudo reboot
Server stoppen
sudo systemctl stop calibre-server
Start Benutzerverwaltungsskript. Pfad angeben, in dem die Benutzerdatenbank gespeichert werden soll. Sie wird in Form einer SQLite-Datenbank gespeichert.
sudo calibre-server --userdb /home/<USER>/.config/calibre/server-users.sqlite --manage-users
<USER> ersetzen mit dem echten Usernamen
1) Add a new user 2) Edit an existing user 3) Remove a user 4) Cancel
Calibre-Service bearbeiten
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/<USER>/calibre-library" --userdb "/home/<USER>/.config/calibre/server-users.sqlite" --enable-local-write --enable-auth
. . .
<USER> 2x ersetzen mit dem echten Usernamen
Dienst-Daemon neu laden
sudo systemctl daemon-reload
sudo systemctl start calibre-server
Erweiterungen installieren
sudo a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html ssl
Konfiguration mit SSL, hier für eine Subdomain, siehe auch Apache Web-Server:
sudo nano /etc/apache2/sites-available/<SUBDOMAIN>.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName calibre.<DOMAIN>.de ... ... ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ... ... </VirtualHost> </IfModule>
<DOMAIN> ersetzen
DocumentRoot kann entfernt oder deaktiviert (#) werden
sudo apachectl configtest
sudo systemctl restart apache2
Anschließend kann die Firewall für den Port 8080 wieder deaktiviert werden, da der Aufruf nun über den Domainnamen bzw. Subdomain erfolgt. Siehe auch Firewall.