Сервер даних calibre

За допомогою Сервера даних calibre ви можете отримувати доступ до ваших бібліотек calibre і читати книги безпосередньо у програмі для перегляду інтернету на вашому улюбленому мобільному телефоні або планшетному пристрої. Таким чином, у вас не буде потреби у встановленні спеціальних програм для читання і керування книгами на вашому телефоні. Достатньо буде програми для перегляду інтернету. Сервер отримує і зберігає книгу, яку ви читаєте у автономному кеші, отже ви зможете продовжити читання, навіть якщо з’єднання з інтернетом буде втрачено.

Щоб запустити сервер, натисніть кнопку З’єднатись/Роздати і виберіть пункт Запустити сервер даних. Можливо, вам буде показано повідомлення від брандмауера або антивірусної програми на вашому комп’ютері щодо надання доступу до мережі програмі calibre.exe. Натисніть кнопку Дозволити або Гаразд. Далі, відкрийте програму для перегляду інтернету (бажано Chrome або Firefox) на вашому комп’ютері і введіть таку адресу:

http://127.0.0.1:8080

У відповідь у програмі для перегляду інтернету буде відкрито сторінку зі списком ваших бібліотек calibre. Натисніть пункт однієї з бібліотек і перегляньте список книг у бібліотеці. У відповідь на натискання пункту книги ви зможете переглянути метадані щодо неї та отримати доступ до кнопок Читати і Отримати. Щоб розпочати читання книги, натисніть кнопку Читати.

Примітка

Вказаною вище адресою, http://127.0.0.1:8080, можна скористатися лише на тому комп’ютері, де запущено calibre. Щоб отримати доступ до сервера з іншого комп’ютера, телефону, планшета тощо, вам доведеться ще дещо налаштувати. Докладніше про це у наступному розділі.

Доступ до сервера даних з інших пристроїв

Існує два типи віддаленого доступу з пристроїв, які, типово, можуть вам знадобитися. Перший, простіший, — це доступ з вашої домашньої мережі. Якщо calibre працює на комп’ютері у вашій домашній мережі, і у вас вже є інші пристрої, з’єднані із цією домашньою мережею, вам буде просто отримати доступ до сервера з цих пристроїв.

Доступ до сервера з пристроїв у вашій домашній мережі

Після запуску сервера calibre у описаний вище спосіб натисніть кнопку З’єднатись/Роздати ще раз. Замість пункту Запустити сервер даних має бути показано пункт Зупинити сервер даних. Праворуч від пункту цієї дії буде показано IP-адресу і номер порту. Це виглядає як послідовність чисел, відокремлених крапками. Приклад:

Stop Content server [192.168.1.5, port 8080]

Ці числа підкажуть вам, за якою адресою слід встановлювати з’єднання із сервером з ваших пристроїв. Якщо використовувати наведених вище приклад, адресою буде:

http://192.168.1.5:8080

Першою частиною адреси завжди є рядок http://, далі йде IP-адреса, тобто числа до коми, і нарешті, номер порту, який слід додати до IP-адрес після двокрапки (:). Якщо інших проблем немає, цього достатньо, і ви зможете переглядати бібліотеки calibre за допомогою вашого пристрою. Якщо ж нічого не виходить, доведеться читати цей підручник далі.

Діагностика з’єднання у домашній мережі

Якщо ви не можете встановити з’єднання із сервером за допомогою вашого пристрою, спробуйте виконати такі кроки:

  1. Переконайтеся, що сервер працює, відкривши сторінку з адресою http://127.0.0.1:8080 у вашій програмі для перегляду інтернету на комп’ютері, на якому запущено сервер.

  2. Перевірте, чи дозволено у налаштуваннях вашого брандмауера або антивіруса з’єднання з вашим комп’ютером на порту 8080 для програми calibre. Найпростішим способом усунути джерело проблеми, якщо проблему пов’язано із брандмауером або антивірусом, є тимчасове вимикання обох цих засобів захисту із наступною спробою встановити з’єднання. Щоб захистити ваш комп’ютер від загроз з інтернету, перш ніж вимикати брандмауер, від’єднайте комп’ютер від мережі.

  3. Переконайтеся, що ваш пристрій і комп’ютер працюють у одній мережі. Це означає, що обидва пристрої має бути з’єднано із одним бездротовим маршрутизатором. Зокрема, жоден з пристроїв не повинен використовувати стільникове з’єднання або надане оператором безпосереднє з’єднання WiFi.

  4. Якщо використано нестандартні налаштування мережі, адреса, показана у меню З’єднатись/Роздати, може бути помилковою. У такому випадку вам доведеться визначити правильну IP-адресу власноруч. На жаль, оскільки можливих налаштувань мережі дуже багато, ми не можемо дати конкретних порад щодо визначення адреси.

  5. Якщо у вашій конфігурації для доступу потрібно вказати ім’я користувача і пароль, спочатку спробуйте з’єднатися без них, щоб переконатися, що саме ім’я і пароль спричиняють проблеми. На деяких пристроях з електронним чорнилом у програмах для перегляду інтернету просто не передбачено можливість обробки розпізнавання за іменем і паролем. Іноді, можна скористатися обхідним маневром, включивши ім’я і пароль до самої адреси. Приклад: http://користувач:пароль@192.168.1.2:8080.

  6. Якщо у вас нічого не виходить, ви завжди можете попросити про допомогу на форумі користувачів calibre.

Доступ до сервера з довільного комп’ютера у інтернеті

Попередження

Перш ніж це робити, вам слід увімкнути захист розпізнаванням користувача з паролем на сервері. Якщо ви цього не зробите, доступ до ваших книг отримає будь-хто. Відкрийте сторінку Налаштування  →  Спільний доступ  →  Обмін мережею і позначте пункт Вимагати введення імені користувача і пароля для доступу до сервера даних.

Хоча окремі речі у налаштовуванні доступу до інтернету залежать від налаштувань мережі і типу використаного комп’ютера, загальну схему можна знайти нижче.

  1. Визначте зовнішню IP-адресу комп’ютера, на якому ви збираєтеся запустити сервер. Зробити це можна за допомогою сайта What is my IP address, відкривши його сторінку у програмі для перегляду інтернету на відповідному комп’ютері.

  2. Якщо комп’ютер працює з інтернетом за допомогою маршрутизатора, увімкніть на маршрутизаторі переспрямовування портів, щоб переспрямувати порт 8080 (або інший вибраний вами порт для запуску сервера даних calibre) на комп’ютер.

  3. Переконайтеся, що доступ до сервера calibre уможливлено у налаштуваннях брандмауерів та антивірусних програм, які працюють на вашому комп’ютері.

  4. Тепер ви повинні мати змогу отримати доступ до сервера з будь-якого пристрою, з’єднаного з інтернетом, вказавши IP-адресу, яку ви визначили на першому кроці. Наприклад, якщо визначена вами IP-адреса — 123.123.123.123, а порт, яким ви користуєтеся на сервері calibre — 8080, адресою, яку слід ввести на пристрої, буде така: http://123.123.123.123:8080.

  5. Ви також можете скористатися службою, подібною до no-ip, для визначення простої для запам’ятовування адреси замість цифрової IP-адреси, яку ви визначити на першому кроці.

Примітка

Щоб забезпечити максимальний захист, вам слід також увімкнути на сервері даних HTTPS. Зробити це можна або на самому сервері, вказавши шлях до сертифіката HTTPS, яким слід користуватися, у параметрах додаткового налаштовування для сервера, або за допомогою зворотного проксі, налаштовування якого описано нижче, якщо ви хочете скористатися наявним налаштуванням HTTPS.

Інтерфейс сервера

Інтерфейс сервера є спрощеною версією основного інтерфейсу calibre, яку оптимізовано для сенсорних екранів. На домашній сторінці вам буде показано книги, які ви читаєте, а також запропоновано вибрати бібліотеку calibre, книги у якій ви хочете переглянути. Сервер у calibre надає вам доступу до усіх ваших бібліотек, а не лише однієї, як це було у попередніх версіях.

Список книг

Список книг на сторінці сервера це проста таблиця із зображеннями обкладинок. Натисніть обкладинку, щоб переглянути докладні метадані щодо книги або щоб розпочати читання книги. Якщо вам потрібен список із докладнішими даними, ви можете змінити типовий режим перегляду, натиснувши кнопку із трьома вертикальними крапками, яку розташовано у правому верхньому куті екрана.

Прийоми упорядковування та пошуку книг мають бути знайомими користувачам calibre. Доступ до відповідних можливостей можна здійснювати за допомогою натискання піктограм у верхній правій частині екрана. Обидві можливості працюють абсолютно так само, як і у основній програмі calibre. На сторінці пошуку ви навіть можете будувати запити, натискаючи пункти авторів, міток тощо, зовсім так само, як ви це робите на панелі перегляду міток у вікні основної програми.

Одна із найулюбленіших можливостей основної програми, Віртуальні бібліотеки, також є частиною інтерфейсу сервера. Натисніть кнопку із трьома вертикальними крапками у верхній правій частині екрана, щоб вибрати віртуальну бібліотеку.

Засіб для читання книг

Ви можете почати читати будь-яку книгу із вашої бібліотеки calibre простим натисканням її пункту з наступним натисканням кнопки Читати. Працювати із засобом читання книг дуже просто. Гортати сторінки можна як натисканням, так і рухом пальця. Рухами пальцем вгору-вниз можна переходити між розділами книги. Натисканням у верхній чверті екрана ви можете отримати доступу до засобів керування програмою та параметрів перегляду.

Якщо сервер даних постійно працюватиме, ви можете навіть відкривати книгу на різних пристроях, зберігаючи при цьому місце, на якому ви закінчили читання попереднього разу. Якщо синхронізація місця читання не відбувається, ви можете виконати її у примусовому режимі. Для цього натисніть на екран у верхній чверті і виберіть у меню пункт Синхронізувати.

Підтримка з боку програм для перегляду інтернету

У новому сервері calibre широко використано додаткові можливості HTML 5 і CSS 3. Через це, для його роботи потрібна сучасна програма для перегляду інтернету. Тестування виконувалося на Android Chrome та iOS Safari, а також на Chrome і Firefox на комп’ютері.

У сервері використовуються лише ті можливості, які вже стандартизовано, або ті, які буде стандартизовано найближчим часом. Тому, якщо сервер не працює із вашою улюбленою програмою для перегляду інтернету, він запрацює у якійсь найближчій версії вашої програми.

Якщо ви користуєтеся застарілою програмою для перегляду інтернету, програмою із обмеженими можливостями або не хочете користуватися JavaScript, ви можете скористатися мобільним режимом перегляду, просто додавши /mobile до адреси сервера.

Примітка

У iOS Apple надає змогу використовувати лише один рушій роботи браузера. Отже, Firefox, Chrome і Safari насправді є одним і тим самим браузером. Для роботи нового інтерфейсу сервера потрібна iOS 10.3.2 або новіша версія. На Android сервер працює з Chrome версії 58 або новішої.

Вмикання підтримки автономної роботи

Розробники браузерів намагаються спонукати користувачів до вживання SSL, вимикаючи додаткові можливості браузерів для простих (нешифрованих) з’єднань HTTP. Однією із таких додаткових можливостей є ApplicationCache, те, що у calibre було використано для підтримки автономної роботи. У результаті на сьогодні, на жаль, програма може працювати в автономному режимі, лише якщо ви не закриєте вкладку браузера. Крім того, у Firefox для Android вам доведеться ввести адресу about:config і створити параметр із назвою browser.tabs.useCache, встановивши для нього значення true.

Керування обліковими записами лише з командного рядка

У програмі calibre є чудовий розділ у вікні Налаштування, за допомогою якого ви можете керувати обліковими записами для сервера. Втім, якщо ви хочете користуватися лише сервером і не маєте змоги запустити основну програму calibre на тому самому комп’ютері або обліковому записі, ви можете керувати записами користувачів за допомогою лише інтерфейсу командного рядка.

Щоб перейти до режиму керування записами користувачів, скористайтеся параметром --manage-users під час запуску окремої програми calibre-server. Припустімо, вам потрібно зберегти базу даних користувачів до теки /srv/calibre. Створіть її за допомогою такої команди:

calibre-server --userdb /srv/calibre/users.sqlite --manage-users

Виконайте настанови щодо створення облікових записів користувачів, встановлення паролів тощо. Виконавши відповідні дії, запустіть сервер такою командою:

calibre-server --userdb /srv/calibre/users.sqlite --enable-auth

На запущеному сервері використовуватимуться облікові записи користувачів, створені вами на попередньому кроці.

Інтегрування сервера даних calibre в інші сервери

Тут описано спосіб інтеграції сервера даних calibre до іншого сервера. Найпоширенішою причиною для такої інтеграції є використання SSL або обслуговування бібліотеки calibre як частини більшого сайта. Основною методикою є запуск сервера calibre і налаштовування на основному сервері зворотного проксі-сервера до сервера даних.

Зворотною називається схема проксі-сервера, коли ваш звичайний сервер приймає вхідні запити і передає їх серверу calibre. Далі він читає відповідь від сервера calibre і переспрямовує її клієнту. Це означає, що ви можете просто запустити сервер calibre як звичайно, без спроб тісно інтегрувати його зі вашим основним сервером.

Використання повного віртуального вузла

Найпростішою є конфігурація із використанням повного віртуального вузла для роботи сервера calibre. У цьому випадку сервер calibre запускається так:

calibre-server

Далі, слід налаштувати віртуальний вузол на вашому основному сервері. Приклад для nginx:

http {
    client_max_body_size 64M;  # needed to upload large books
}

server {
    listen [::]:80;
    server_name myserver.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

Або для Apache:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>
    ServerName myserver.example.com
    AllowEncodedSlashes On
    ProxyPreserveHost On
    ProxyPass "/"  "http://localhost:8080/"
</VirtualHost>

Використання префікса адреси

Якщо ви не хочете використовувати окремий віртуальний вузол для calibre, ви можете налаштувати систему з використанням префікса адреси. Запустіть сервер calibre так:

calibre-server --url-prefix /calibre --port 8080

Ключовим параметром тут є --url-prefix /calibre. Цей параметр наказує серверу даних обслуговувати усі адреси із префіксом calibre. Щоб побачити як це праціює, відкрийте сторінку з адресою http://localhost:8080/calibre у вашій програмі для перегляду інтернету. Ви маєте побачити звичайний сайт сервера даних, але тепер він працюватиме у теці «/calibre».

Для nginx потрібні такі налаштування:

http {
    client_max_body_size 64M;  # needed to upload large books
}

proxy_set_header X-Forwarded-For $remote_addr;
location /calibre/ {
    proxy_buffering off;
    proxy_pass http://127.0.0.1:8080$request_uri;
}
location /calibre {
    # we need a trailing slash for the Application Cache to work
    rewrite /calibre /calibre/ permanent;
}

Для Apache спочатку увімкніть модулі проксі в Apache додаванням таких рядків до httpd.conf:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Точна методика вмикання модулів проксі залежить від встановленого варіанта Apache. Щойно модулі проксі буде увімкнено, додайте такі правила до файла :file»httpd.conf (або якщо ви використовуєте віртуальні вузли, до файла налаштувань віртуального вузла):

AllowEncodedSlashes On
RewriteEngine on
RewriteRule ^/calibre/(.*) http://127.0.0.1:8080/calibre/$1 [proxy]
RedirectMatch permanent ^/calibre$ /calibre/

Ось і усе, тепер ви можете отримувати доступ до сервера даних calibre за префіксом «/calibre» на вашому основному сервері. Вказані вище правила передають усі запити до «/calibre» на сервер calibre, який запущено на порту 8080 і, завдяки вказаному параметру «–url-prefix», сервер calibre прозоро їх обробляє.

Примітка

Якщо використовується зворотний проксі, вам слід повідомити сервер даних calibre про те, що слід очікувати на встановлення зв’язку лише від локального вузла, скориставшись параметром --listen-on 127.0.0.1. Таким чином, сервер оброблятиме лише ті з’єднання, які встановлюватиметься з того самого комп’ютера, на якому його запущено, тобто з’єднання від зворотного проксі.

Примітка

Якщо вами налаштовано SSL на вашому основному сервері, вам слід повідомити сервер calibre про те, що слід використовувати базове розпізнавання замість розпізнавання за контрольними сумами, оскільки воно працює швидше. Для цього передайте параметр --auth-mode=basic програмі calibre-server.

Створення служби для сервера calibre у сучасній системі Linux

Створити службу для запуску calibre під час завантаження у сучасній заснованій на systemd системі Linux дуже просто. Створіть файл /etc/systemd/system/calibre-server.service із таким вмістом:

[Unit]
Description=calibre Content server
After=network.target

[Service]
Type=simple
User=mylinuxuser
Group=mylinuxgroup
ExecStart=/opt/calibre/calibre-server "/path/to/calibre library folder"

[Install]
WantedBy=multi-user.target

Замініть mylinuxuser і mylinuxgroup на користувача і групу, від імені яких має бути запущено сервер. Користувач і група мають бути тими самими, що і користувач і група власника файлів у теці бібліотеки calibre. Зауважте, що, зазвичай, не варто запускати сервер від імені адміністратора (root). Крім того, вам слід змінити шлях до теки бібліотеки calibre так, щоб він збігався зі шляхом у вашій системі. Якщо треба, можете додати декілька бібліотек. Докладніший опис можна знайти у довідці до програми calibre-server.

Тепер віддайте команду:

sudo systemctl start calibre-server

для запуску сервера. Перевірте стан сервера такою командою:

sudo systemctl status calibre-server

Щоб сервер запускався під час завантаження системи, віддайте таку команду:

sudo systemctl enable calibre-server

Примітка

Для роботи сервера calibre не потрібен графічний серве X, але йому знадобляться встановлені бібліотеки X, оскільки деякі з його компонентів зібрано із використанням цих бібліотек.

Примітка

У сервері calibre також передбачено підтримку активації сокетів systemd. Отже, ви можете нею скористатися, якщо цього захочете.