Calibre ist ein E-Book-Manager. Damit lassen sich E-Books anzeigen, konvertieren und katalogisieren. Calibre kann auch mit E-Book-Lesegeräten kommunizieren. Metadaten für Bücher in der Bibliothek können automatisch heruntergeladen werden. Auch Zeitungen lassen sich damit verwalten. Ich beschreibe heute, wie man einen Calibre-Server auf seinem Synology-NAS startet und anschließend auch mit Calibre-Web verwalten kann.
Ich nutze ein Synology NAS. Es handelt sich um ein DS220+(Amazon Affiliate-Link) mit 10 GB RAM(Amazon Affiliate-Link).
So viele Ressourcen sind jedoch nicht für Calibre nötig. Es lässt sich auch ein anderes Gerät verwenden, auf dem Docker läuft. In der Verhangenheit habe ich eine Anleitung für Calibre mit Traefik geschrieben und auch im Asustor NAS Setup wird Calibre erwähnt.
Ausreichend Speicherplatz für die Bücher sollte vorhanden sein. In meiner Bibliothek befinden sich momentan knapp 150 Bücher, sie nehmen etwa 2,3 GB Speicherplatz ein.
Ein Reverse-Proxy-Manager im Netzwerk ist hilfreich, unabhängig davon, ob er sich auf einem anderen Gerät oder dem Synology NAS befindet.
Für die Installation nutzen wir das DSM vom Synology-NAS. Portainer ist dieses Mal nicht nötig, weil keine externe Datenbank gestartet wird.
Ich richte zunächst für eine bessere Rechteverwaltung eine Gruppe Docker ein.
Und ich erstelle einen neuen Benutzer, der am Ende die Rechte am Calibre Container haben soll.
Ich füge diesen Nutzer in die Docker-Gruppe ein.
Für jeden Dienst einen einzelnen Benutzer zu erstellen, ist zu aufwendig, deshalb habe ich nur einen Docker Benutzer.
Jedenfalls muss ich noch die ID vom Benutzer “docker” und der Gruppe “docker” herausfinden. Dazu aktiviere ich temporär SSH und verbinde mich über ein Terminal (z. B. in VSCode) mit dem NAS.
ssh adminbenutzername@{ip-adresse-vom-nas}
Ich möchte als Erstes die UserID vom Nutzer docker erfahren.
id -u docker
Diese Zahl merke ich mir als UserID. Danach möchte ich die GruppenID der Gruppe docker.
id -Gn docker# jetzt sehe ich die Namen der Gruppenid -G docker# jetzt sehe ich die Nummern der Gruppen
Die Nummer an der Stelle der Gruppe “docker” merke ich mir als GruppenID. Ich verlasse das Terminal.
exit
Außerdem schalte ich SSH wieder aus.
Jetzt erstelle ich einen neuen Freigabeordner ohne Prüfsummen-Check und nenne ihn calibre.
Die Docker Gruppe benötigt Zugriffsrechte auf den Ordner.
Der Docker-Nutzer am besten auch.
In diesem Verzeichnis erstelle ich zwei neue Ordner:
Ich öffne Docker im DSM und suche nach dem Image linuxserver/calibre.
Das lade ich mit dem Tag latest
herunter. Das Image ist ca. 1 GB groß. Sobald es runtergeladen ist, starte ich einen neuen Container mit diesem Image.
In den erweitern Eigenschaften füge ich unter Volume den Ordner calibre/data hinzu. In diesen binde ich das Verzeichnis config
.
Unter Port stelle ich eine Verbindung mit dem Port 8080 ein. Die linke Zahl kann frei gewählt werden (insbesondere sollte das dann gemacht werden, wenn bereits ein anderer Dienst auf 8080 läuft). Die rechte sollte 8080 bleiben (außer man passt das bei Umgebung an). In der Umgebung müssen vier Umgebungsvariablen hinzugefügt werden:
PUID
: Die persönliche User-ID des Benutzers (docker)PGID
: Die persönliche Gruppen-ID der Gruppe (docker)TZ
: Die Zeitzone, für Deutschland ist es Europe/Berlin
.PASSWORD
: Das Passwort des Benutzers abc
.Den Container starte ich.
Jetzt kann ich den Server aufrufen, indem ich in einem Web-Browser auf die IP-Adresse des NAS mit dem eingestellten Port (8080) zugreife.
Den Namen Calibre-Bibliothek
ändere ich zu books
.
Beim E-Book Gerät kann ein Gerät standardmäßig ausgewählt werden. Die Einstellung lässt sich auch später verändern. Im Zweifel einfach auf generisch lassen.
Sobald man seine Bibliothek sieht, ist die Einrichtung abgeschlossen. Im calibre/data Ordner sollte nun auch das Verzeichnis mit der Calibre-Bibliothek zu sehen sein.
Als Nächstes wird der Web Server benötigt, damit man die Bücher in einem schöneren GUI verwalten kann. Dazu suche ich diesmal nach dem Image linuxserserver/calibre-web und lade es runter. Auch hier den Tag latest
wählen. Dieses Image ist ca. 600 MB groß.
Bei den Volumes binde ich den Ordner calibre/web-data
mit dem Mount-Pfad /config
und einen weiteren Ordner calibre/data/books
mit dem Mount-Pfad /books
. Unter Port-Einstellungen wähle ich unter welchem Port Calibre-Web erreichbar sein soll. Der Container-Port bleibt auf 8083.
In der Umgebung können diesmal 5 Umgebungsvariablen hinzugefügt werden:
PUID
: Die persönliche User-ID des Benutzers (docker)PGID
: Die persönliche Gruppen-ID der Gruppe (docker)TZ
: Die Zeitzone, für Deutschland ist es Europe/Berlin
.DOCKER_MODS
: Das kann auf linuxserver/calibre-web:calibre
gesetzt werden, damit Bücher konvertiert werden können. Es funktioniert nicht auf einem ARM System.OAUTHLIB_RELAX_TOKEN_SCOPE
: Wenn man in Erwägung zieht Google OAuth zu nutzen, kann man den Wert auf 1
setzen. Ansonsten kann es leer gelassen werden.
Den Calibre Container stoppe ich an dieser Stelle.
Jetzt richte ich in meinem Reverse Proxy einen Proxy Host für den Port 8083 ein, ansonsten muss man direkt die IP-Adresse mit Port 8083 aufrufen.
Die Anmeldedaten sind admin
als Benutzername und admin123
als Passwort.
Beim Pfad zur Datenbank wähle ich /books
aus.
Anschließend sollte man sein Passwort im Profil (oben rechts) ändern.
Außerdem lässt sich in der Basiskonfiguration einstellen, dass Bücher über den Web-Server hochgeladen werden dürfen.
Außerdem sollte man bei der Benutzerkonfiguration den Haken setzen, dass man selbst die Bücher ansehen darf.
Damit ist die Einrichtung beendet.
Möchte man seine Bücher in der Cloud sichern, lässt sich das auf einer Synology einfach bewerkstelligen. Dazu das Programm Cloud Sync aus dem Paket-Zentrum installieren.
Damit richte ich eine neue Aufgabe ein, dass mir den Ordner books
mit Google Drive oder Microsoft One Drive usw. synchronieiseren soll.
Bitte die Kommentarfunktion nutzen bei Fragen / Verbesserungsvorschlägen / Kritik usw.
Ich wünsche viel Spaß beim Lesen.