Kdo čte eknihy, asi zná desktopový program Calibre, který slouží ke správě knihovny elektronických publikací. Já na něj nedám dopustit a už roky ho používám ke správě vlastní knihovny. Hledal jsem ale způsob, jak knihovnu jednoduše zpřístupnit i ostatním členům domácnosti, aby si mohli vybrat knížku a poslat do vlastní čtečky.
Co se dozvíte v článku
Samotné Calibre nabízí Calibre Content Server, který můžete provozovat na serveru a přistupovat k němu přes webového rozhraní. Svým rozhraním a funkčností mě ale příliš neoslovil. Možná právě proto vznikl projekt Calibre-Web, který přináší alternativní a dle mého názoru podstatně lepší webovou aplikaci, která běží nad databází Calibre.
Jak nainstalovat
Jedná se o program napsaný v Pythonu a Flasku, který jednoduše nainstalujete z PyPI a na vlastním serveru zprovozníte.
Jelikož se Calibre-Web s sebou nainstaluje jako závislosti také řadu pythoních balíčků, o kterých toho běžný člověk moc neví, je lepší jej instalovat do izolovaného prostředí pomocí pipx:
$ pipx install calibreweb
Existuje několik nepovinných balíčků, které se standardně neinstalují, ale když je nainstalujete, můžete rozšířit funkčnost programu. Jsou to věci jako stahování dodatečných informací o knihách z Goodreads, synchronizace se čtečkami Kobo apod. Pokud si myslíte, že něco z toho využijete, nainstalujte je společně s calibreweb.
Jak nastavit
Po dokončení instalace, můžete program spustit příkazem cps
. Webové rozhraní pak najdete na portu 8083. K tomu, aby to fungovalo jako jednoduše dostupná serverová služba, ale několik kroků ještě chybí.
Budeme chtít Calibre-Web spravovat jako službu pomocí systemd, takže si vytvoříme jednoduchý unit soubor calibreweb.service
a uložíme jej do /etc/systemd/system
:
[Unit] Description=Calibre-Web After=network.target [Service] Type=simple User=(uživatel, pod kterým chcete, aby služba běžela) ExecStart=cps [Install] WantedBy=multi-user.target
Poté necháme systemd znovu načíst všechny unit soubory a povolíme a zároveň spustíme službu calibreweb:
$ sudo systemctl daemon-reload $ sudo systemctl enable calibreweb.service --now
Calibre-Web už obsahuje web server, takže nutně nemusíte instalovat další. V nastavení můžete přidat cesty na certifikáty a změnit port na 443 a dostanete službu dostupnou přes https. Pokud ale už webový server používáte kvůli jiným službám, což je i můj případ, je lepší Calibre-Web schovat za něj a využít reverse proxy. Dokumentace nabízí ukázkové příklady konfiguračních souborů pro nejpoužívanější webové servery (Apache, Nginx, IIS, Lighttpd…).
Nyní se pojďme do Calibre-Web přihlásit. Stačí načíst webové rozhraní na adrese [IP adresa]:8083, např. 10.10.10.10:8083, případně na adrese, která vychází z vaší konfigurace webového serveru. Výchozí přihlašovací údaje jsou: uživatelské jméno – admin, heslo – admin123. Raději připomínám, že byste si tyto údaje měli co nejdříve změnit.
První kroky ve webové knihovně
Po prvním přihlášení budete dotázáni na to, kde se nachází databáze Calibre. Důležitou vlastností Calibre-Webu je to, že není schopen si databázi vytvořit sám. Spoléhá se na to, že ji máte v Calibre vytvořenou. Typicky se nachází v adresáři /Ebooks, který byste celý, nejen s metadaty, ale i samotnými knížkami, měli dát k dispozici Calibre-Web.
Dále už dokáže Calibre-Web fungovat jako správce knihovny samostatně. Ve výchozím stavu nenaleznete možnost nahrávat nové knihy, ale je to jen kvůli tomu, že je tato možnost ve výchozím nastavení zakázaná. Stačí zamířit do Správce →Upravit základní konfiguraci →Konfigurace funkcí a zaškrtnout Povolit nahrávání. Poté byste se taky měli ujistit, že tuto možnost mají povolenou také jednotliví uživatelé.
Já osobně používám Calibre-Web v režimu pouze pro čtení. Knihovnu si i nadále spravuji v desktopovém Calibre a vždy ji pomocí rsyncu aktualizuji také na serveru, aby se změny promítly ve webové knihovně. K tomu je potřeba ještě restart služby.
Zasílání knih do čtečky
Calibre-Web má systém uživatelských účtů, takže každému můžete vytvořit vlastní účet a nastavit mu ho na míru. Pokud chcete, aby to měli opravdu pohodlné a posílali si knížky přímo do čtečky, musíte každému nastavit, na jakou e-mailovou adresu se mají posílat. Třeba každý Kindle má přidělenou e-mailovou adresu, která se používá na doručování dokumentů do čtečky. Zjistíte ji ve svém účtu u Amazonu v sekci Manage Your Content and Devices.
Potřebujete také email, z kterého se budou knížky posílat. V nastavení Calibre-Web pak musíte nastavit přístup k jeho SMTP serveru. Aby Amazon e-mail s knížkou přijal, musí být adresa na seznamu povolených, takže ji v v sekci Manage Your Content and Devices nezapomeňte do tohoto seznamu přidat. I tak vás může ještě e-mailem Amazon požádat o autorizaci, takže si nezapomeňte zkontrolovat vlastní e-mail, jestli tam náhodou třeba ve spamu neleží e-mail s potvrzením, ať pak jako já zbytečně nedumáte, proč knížky do čtečky nechodí.
Když odesílání nastavíte, v profilu každé knihy se objeví tlačítko pro poslání do čtečky. Stačí na něj kliknout a případně v emailu potvrdit přijetí a kniha se objeví ve čtečce daného uživatele.
Filtrování
Velmi pěkná funkce je také filtrování knihovny pro každý účet zvlášť. Nejvíc z toho asi oceňuji filtrování podle jazyka knihy. Můžete mít mix knížek v angličtině a češtině, ale pokud vaši rodiče neumí anglicky, nemá smysl jim knihy v tomto jazyce zobrazovat. Calibre-Web vám v nastavení uživatele umožňuje zvolit jazyky, které se mají v knihovně daného uživatele objevit. Nutnou podmínkou je, abyste měli v metadatech všech knih jazyk správně nastavený.
Možná jste si v průběhu článku říkali, že jsem se zbláznil, když se takto veřejně přiznávám k porušování autorského zákona. Licence většiny elektronických knih přece sdílení s ostatními neumožňuje. Pokud chcete postupovat zcela dle litery zákona, má i pro to Calibre-Web řešení. Knihy pro jednotlivé uživatele můžete filtrovat také podle libovolných štítků. Já mám u každé volně šiřitelné knihy štítek „free“, který pak u ostatních uživatelů stačí nastavit v Allowed Tags. Můžete to dělat i naopak. U knih, jejichž licence volné šíření neumožňuje, nastavíte nějaký štítek a ten potom přidáte do Denied Tags. V obou případech dosáhnete toho, že knihy, které mají patřit jen vašim očím, nikdo další neuvidí.
Umí toho mnohem víc
Jak už jsem psal, Calibre-Web sice do začátku potřebuje databázi vytvořenou desktopovým Calibre, ale dál už dokáže fungovat jako samostatný správce knihovny. Dalších možností, které nabízí, je celá řada, např. „police“, kde si člověk může vytvářet vlastní kolekce knih a případně je sdílet s ostatními, převody knih z jednoho formátu do druhého, stahování metadat ke knihám, čtečku knih přímo v prohlížeči, OPDS feed, díky kterému můžete knihovnu načíst přímo v čtečce, pokud tento formát podporuje (populární Kindle bohužel nepodporuje).
Desktopové Calibre je pořád množstvím funkcí a nabídkou pluginů výš, proto jej i nadále používám ke správě knihovny. Calibre-Web mi ale vyřešilo problém, jak vybrané knihy ze své knihovny dát co nejjednodušeji k dispozici zbytku rodiny.
(Autorem obrázků je Jiří Eischmann, původně napsáno pro Sešívaný blog.)