Jak zrobić serwer OPDS z Raspberry Pi i mirrorem na zewnętrzny host

W tym poradniku pokażę jak szybko zrobić serwer eBooków OPDS z Raspberry Pi i jego mirrorem na zewnętrznym hostingu.

Co będzie potrzebne

  • Raspberry Pi z zainstalowanym Raspbianem lub jakimkolwiek systemem operacyjnym dla Raspberry Pi. Ja użyłem do tego celu OSMC.
  • Calibre – system kliencki (tj. Windows, Linux, MacOS, itp.)
  • COPS (nieoficjalny Calibre OPDS)
  • Czytnik eBooków obsługujący OPDS
  • Zewnętrzny hosting (opcjonalnie dla mirroru)

Przygotowanie Raspberry Pi

Na tym etapie zakładam, że już zainstalowałeś wybraną przez siebie dystrybucję Linuksa. Przygotuj też folder dla swojej biblioteki Calibre z eBookami.

Instalacja Calibre

 

Ustawianie autostartu serwera Calibre OPSD (calibre-server)

Do tego celu skorzystamy z CRONa. Można to zrobić korzystając z init.d, ale dla jednego polecenia nie widzę sensu robienia pliku konfiguracyjnego.

 

W otwartym oknie na końcu dodaj wiersz:

 

Teraz może objaśnię dokładne co robi ten wiersz

 

Teraz przy każdym uruchomieniu Raspberry Pi serwer OPDS będzie się uruchamiał z naszymi ustawieniami.

Pobranie i wypakowanie COPSa

COPS będzie potrzebny do korzystania z eBooków znajdujących się na zewnętrznym hoście. Jeśli swoją kolekcję będziesz przechowywał tylko na Raspberry Pi w sieci lokalnej lub wcześniej konfigurowałeś Raspberry Pi, aby był dostępny z zewnątrz to możesz pominąć ten etap i od razu przejść do następnego kroku przygotowującego Twoją kolekcję eBooków na cele OPDS.

Poniższe polecenia wykonują kolejno:

  • przejście do folderu z biblioteką z eBookami
  • pobranie COPSa
  • wypakowanie COPSa do katalogu z biblioteką eBooków

Tutaj może się zrodzić pytanie Dlaczego wypakowujemy COPSa lokalnie zamiast na zdalnym hoście?
Robimy tak dlatego, że później będziemy korzystać z RSYNCa w celu robienia mirrora OPDSa. Gdybyśmy wypakowali go na zdalnym hoście to po użyciu RSYNCa pliki COPSa zostałyby usunięte.

Przygotowanie biblioteki eBooków

  1. Pobierz i zainstaluj Calibre (strona pobierania)
  2. Zaimportuj do Calibre wszystkie swoje eBooki
  3. Zamknij Calibre
  4. Przekopiuj wszystkie pliki z biblioteki Calibre do folderu z biblioteką na Raspberry Pi
  5. Zrestartuj Raspberry Pi

Uzyskiwanie dostępu do OPDSa

Do lokalnego serwera OPDS możesz uzyskać dostęp na kilka sposobów:

  • Poprzez stronę internetową
  • Z czytnika eBooków obsługującego OPDSa lub posiadającego prostą przeglądarkę internetową (niektóre modele eBooków nie obsługują OPDSa, ale posiadają prostą przeglądarkę internetową)
  • Z czytnika na smartfonie lub tablecie obsługującego OPDS

Uzyskiwanie dostępu przez przeglądarkę internetową

Wystarczy wejść na stronę internetową lokalnego serwera z uwzględnieniem portu, np. http://192.168.2.41:8037/

Uzyskiwanie dostępu przez funkcję OPDS w aplikacji lub czytniku

Należy dodać serwer OPDS w konfiguracji. Adres URI ma postać: adres URL (jak wyżej) i po slashu opds. Nie wiem czy dobrze wyjaśniłem, dlatego poniżej zamieszczam zrzut ekranu z aplikacji Fiction Book Reader:wp_ss_20160721_0002

Tworzenie mirrora na zewnętrznym hoście z wykorzystaniem RSYNC (opcjonalnie)

 

Objaśnienie polecenia:

Po wykonaniu polecenia zostaniesz poproszony o wyrażenie zgody na wykorzystanie klucza RSA zdalnego serwera i podanie hasła do serwera.

Uzyskiwanie dostępu do COPSa

Dostęp do COPSa uzyskuje się dokładnie w taki sam sposób jak do lokalnego OPDSa z tym, że zamieniamy adres IP na adres hosta, wraz ze ścieszką, a w przypadku klienta OPDS dopisujemy po slashu feed.php.

Korzystając z OPDSa możesz zauważyć, że lokalny OPDS i COPS mają inną strukturę katalogów w aplikacji. To jest całkiem normalne.

Mała uwaga odnośnie mirrora

Jeśli planujesz czytać eBooki nie tylko w domu to koniecznie zrób mirrora. Pamiętaj też, aby adres mirrora był jak najbardzej skomplikowany. Na pewno nie chciałbyś, aby ktoś uzyskał dostęp do Twoich eBooków ze względu na koszty jakie poniosłeś pozyskując je, ale też ze zględów licencyjnych lub co gorsze, gdy niektóre eBooki mają cyfrową pieczęć informującą, że to ty jesteś właścicielem eBooka, nie fajnie by było gdyby taki wyciekł ;).