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
1 |
sudo apt-get install 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.
1 |
sudo crontab -e |
W otwartym oknie na końcu dodaj wiersz:
1 |
@reboot calibre-server -p 8037 --with-library=/media/Elements/calibre/ --daemonize --auto-reload |
Teraz może objaśnię dokładne co robi ten wiersz
1 2 3 4 5 6 |
@reboot // Wykonuje to polecenie przy uruchamianiu systemu calibre-server // Co by tu napisać? -p 8037 // Informacja o dostępności serwera Calibre OPDS na wybranym porcie. Zalecane w sytuacji, gdy uruchamiamy więcej serwerów, a nie chcemy bawić się w konfigurację. Port ten będzie potrzebny w celu dostępu przez przeglądarkę i poprzez czytnik do naszego serwera OPDS --with-library=/media/Elements/calibre/ // Ścieżka do biblioteki z eBookami --daemonize // Teoretycznie powinno uruchamiać serwer jako daemona, ale tego nie robi :( --auto-reload // Podobno restartuje serwer, gdy wykryje zmianę kodu. Nie wiem dokładnie o co chodzi, ale brzmi zachęcająco :) |
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
1 2 3 |
cd /media/Elements/calibre wget https://github.com/seblucas/cops/releases/download/1.0.0/cops-1.0.0.zip unzip cops-1.0.0.zip |
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
- Pobierz i zainstaluj Calibre (strona pobierania)
- Zaimportuj do Calibre wszystkie swoje eBooki
- Zamknij Calibre
- Przekopiuj wszystkie pliki z biblioteki Calibre do folderu z biblioteką na Raspberry Pi
- 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:
Tworzenie mirrora na zewnętrznym hoście z wykorzystaniem RSYNC (opcjonalnie)
1 |
rsync -rvz --progress --delete /media/Elements/calibre/* -e ssh user@moj-opds.tk:/home/user/public_html/opds |
Objaśnienie polecenia:
1 2 3 4 5 6 7 8 9 10 11 |
rsync // ? -r // rekursywne przesyłanie plików, czyli z podfolderami -v // wyświetla co się dzieje -z // kompresuje przesyłane pliki --progress // wyświetla informacje o postępie wysyłania pliku --delete // usuwa pliki, które nie znajdują się już lokalnie, dlatego COPS był wypakowywany lokalnie /media/Elements/calibre/* // ścieżka do lokalnej bibioteki eBooków -e // informuje rsync o tym, że dane ą synchronizowane ze zdalnym hostem ssh // protokuł przesyłania plików user@moj-opds.tk: // nazwa użytkowika i adres zdalnego serwera OPDS /home/user/public_html/opds // ścieżka biblioteki eBooków na zdalnym serwerze |
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ł ;).