Контент-сервер calibre¶
calibre Контент-сервер позволяет вам получать доступ к своим библиотекам calibre и читать книги прямо в браузере на мобильном телефоне или планшете. В результате вам не нужно устанавливать на телефон какие-либо специальные приложения для чтения и управления книгами. Просто используйте браузер. Сервер загружает и сохраняет книгу, которую вы читаете, в автономном кэше, чтобы вы могли читать ее, даже если нет подключения к Интернету.
Чтобы запустить сервер, нажмите кнопку Соединиться/поделиться и выберите :guilabel:` Запустить контент-сервер`. Вы можете получить сообщение от брандмауэра вашего компьютера или антивирусной программы с вопросом, можно ли разрешить доступ к calibre.exe. Нажмите кнопку «Разрешить» или «ОК». Затем откройте браузер (предпочтительно Chrome или Firefox) на своем компьютере и введите следующий адрес:
Это откроет страницу в браузере, показывающую ваши библиотеки 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 на вашем устройстве. Если нет, то читайте дальше.
Устранение неполадок подключения к домашней сети¶
Если вы не можете получить доступ к серверу с вашего устройства, попробуйте выполнить следующие действия:
Убедитесь, что сервер работает, открыв адрес
http: //127.0.0.1: 8080в браузере, запущенном на том же компьютере, что и сервер.Убедитесь, что ваш брандмауэр/антивирус разрешает подключения к вашему компьютеру через порт
8080и к программе calibre. Самый простой способ устранить брандмауэр/антивирус как источник проблем - временно отключить их оба, а затем попробовать подключиться. Прежде чем отключать брандмауэр, сначала необходимо отключиться от Интернета, чтобы обеспечить безопасность компьютера.Убедитесь, что ваше устройство и компьютер находятся в одной сети. Это означает, что они оба должны быть подключены к одному беспроводному маршрутизатору. В частности, ни один из них не должен использовать сотовую связь или интернет-провайдер с прямым подключением.
Если у вас нестандартные настройки сети, возможно, IP-адрес, указанный в меню Соединиться/поделиться, неверен. В таком случае вам придется самостоятельно определить, какой правильный IP-адрес использовать. К сожалению, учитывая бесконечное разнообразие возможных сетевых конфигураций, невозможно дать вам план действий для этого.
Если вы настроили имя пользователя и пароль, попробуйте сначала без них, чтобы увидеть, вызывает ли это проблемы. Некоторые устройства e-ink имеют браузеры, которые не поддерживают аутентификацию. Иногда это можно обойти, включив имя пользователя и пароль в URL, напр.:
http://username: password@192.168.1.2: 8080.Если вы застряли, вы всегда можете обратиться за помощью на форумы пользователей calibre.
Доступ к серверу из любой точки интернета¶
Предупреждение
Перед этим вы должны включить защиту на сервере с указанием имени пользователя/пароля, иначе любой человек в мире сможет получить доступ к вашим книгам. Перейдите по адресу Настройки → Поделиться → Поделиться по сети и включите опцию Требуется имя пользователя и пароль для доступа к контент-серверу.
Хотя конкретные сведения о настройке доступа в Интернет различаются в зависимости от конфигурации сети и типа используемого вами компьютера, основная схема выглядит следующим образом.
Узнайте внешний IP-адрес компьютера, на котором вы собираетесь запустить сервер. Вы можете сделать это, посетив сайт What is my IP address в браузере, работающем на компьютере.
Если компьютер находится за маршрутизатором, включите переадресацию портов на маршрутизаторе, чтобы перенаправить порт
8080(или любой другой порт, на котором вы хотите запустить контент-сервер calibre) на компьютер.Убедитесь, что доступ к серверу calibre разрешен через любые брандмауэры/антивирусные программы на вашем компьютере.
Теперь вы сможете получить доступ к серверу на любом подключенном к Интернету устройстве, используя IP-адрес, который вы нашли в первом шаге. Напр., если IP-адрес, который вы нашли, был
123.123.123.123, а порт, который вы используете для сервера calibre -8080, адрес, который будет использоваться на вашем устройстве, станет:http://123.123 .123.123:8080.При желании можно использовать службу типа no-ip <https://www.noip.com/free>`_, чтобы настроить легко запоминаемый адрес для использования вместо IP-адреса, найденного на первом шаге.
Примечание
Для максимальной безопасности вы также должны включить HTTPS на сервере содержимого. Вы можете сделать это непосредственно на сервере, указав путь к сертификату HTTPS для использования в дополнительных параметрах конфигурации для сервера, или вы можете настроить обратный прокси-сервер, как описано ниже, для использования существующей настройки HTTPS.
Интерфейс сервера¶
Интерфейс сервера - это упрощенная версия основного интерфейса calibre, оптимизированная для использования с сенсорными экранами. На главном экране отображаются книги, которые вы сейчас читаете, а также можно выбрать библиотеку calibre, которую вы хотите просмотреть. calibre сервер предоставляет вам доступ ко всем вашим библиотекам, а не только к одной, как раньше.
Список книг¶
Список книг сервера представляет собой простую сетку обложек. Нажмите на обложку, чтобы увидеть подробные метаданные для книги или прочитать книгу. Если вы предпочитаете более подробный список, вы можете изменить вид по умолчанию, нажав на три вертикальные точки в верхнем правом углу.
Сортировка и поиск в списке книг должны быть знакомы пользователям calibre. Доступ к ним можно получить, щелкнув их значки в правом верхнем углу. Они оба работают точно так же, как в основной программе calibre. Страница поиска даже позволяет создавать поисковые запросы, нажимая на авторов/ теги и т. д., так же, как и в Браузере тегов в основной программе.
Особо любимая особенность основной программы Виртуальные библиотеки также присутствует в интерфейсе сервера. Нажмите на три вертикальные точки в правом верхнем углу, чтобы выбрать виртуальную библиотеку.
Просмотрщик книг¶
Вы можете прочитать любую книгу в библиотеке calibre, просто нажав на неё, а затем нажав кнопку Читать. Просмотрщик книг очень прост в управлении. Вы можете нажать и провести пальцем, чтобы перевернуть страницы. Смахивание вверх/вниз пропускает главы. При нажатии на верхнюю четверть экрана вы получите подробные элементы управления и настройки просмотра.
Если вы оставите сервер содержимого включенным, вы даже сможете открыть одну и ту же книгу на нескольких устройствах, и она запомнит вашу последнюю прочитанную позицию. Если это не так, вы можете вызвать синхронизацию, нажав в верхней четверти и выбрав :guilabel: Sync.
Searching book contents in OPDS applications¶
When full text indexing is enabled for a library, its OPDS catalog offers a catalog entry titled Search book contents. Open this entry and use the application’s search control to find books by words and phrases inside them, using calibre’s existing full text index. Each feed has a single search link, so clients do not have to choose between multiple search links. Results contain the normal book information and download links. A book is listed once even if more than one of its formats matches. Only books available to the current user are searched.
The original search continues to search book metadata. Content search uses
the same SQLite full text query syntax as calibre’s full text search window.
It searches the text indexed so far; books still waiting to be indexed will
not appear yet. The content search entry is absent when indexing is disabled.
Both OPDS 1 and OPDS 2 catalogs support content search, through the normal
search URL with full_text=y added to its query parameters.
Reading comics in OPDS applications¶
Applications that support OPDS 2.0 and the Readium Divina format can read CBZ comics one
page at a time, without downloading the entire archive. Connect the application
to the server’s /opds catalog. OPDS 2.0 applications request the JSON catalog
using Accept: application/opds+json.
Comic entries link to a Divina manifest. The server lists pages only when the application opens that manifest, using the same page order as calibre’s comic conversion. Each page offers its original image format, including AVIF and JPEG XL, and alternate formats the server can produce. GIF pages, which may be animated, are only offered in their original format. The application chooses an image format it supports from those links. JPEG is offered as the default for AVIF and JPEG XL pages when conversion is available.
For manga, a ComicInfo.xml file with Manga set to YesAndRightToLeft
tells the application to use right-to-left reading direction. The file can be
in the root of the archive or in the folder containing the page images. Page
images remain in their original order. The reading direction is only given in
the comic manifest, not in OPDS feeds, as finding it requires opening the
archive.
The normal username/password and library restrictions apply to manifests and page images. Complete archive downloads remain available. This feature supports CBZ archives; CBR and CB7 comics can still be downloaded as complete files.
Поддержка браузеров¶
В новом сервере calibre широко используются расширенные функции HTML 5 и CSS 3. Таким образом, для использования требуется современный браузер. Он был протестирован в Android Chrome и iOS Safari, а также в Chrome и Firefox на рабочем столе
Сервер использует функциональные возможности, которые либо уже стандартизированы, либо находятся в соответствии со стандартами. Если он в настоящее время не работает с вашим любимым браузером, но, вероятно, будет работать, когда этот браузер догонит его по возможностям.
Если вы используете особенно старый или ограниченный браузер или вам не нравится запускать JavaScript, вы можете использовать представление mobile, просто добавив /mobile к адресу сервера.
Примечание
В iOS Apple позволяет использовать только один движок браузера, поэтому Firefox, Chrome и Safari на самом деле являются одним и тем же браузером. Для нового серверного интерфейса требуется iOS 10.3.2 или новее. На Android сервер был протестирован с Chrome версии 58 и новее.
Включение режима автономной работы¶
Сервер полностью поддерживает оффлай режим, вы можете открыть книгу и как только она загрузится, продолжить её чтение офлайн. Однако типичные браузеры требуют использования HTTPS-соединений для включения автономного режима (service workers). Итак, настройка поддержки HTTPS, как описано выше. Прокрутите домашнюю страницу вниз и вы увидите сообщение о статусе автономного режима.
Альтернативно вы можете открыть книгу и оставить вкладку браузера открытой. Пока вкладка открыта, вы можете продолжать читать книгу даже в автономном режиме.
Управление пользовательскими аккаунтами с помощью командной строки¶
У calibre неплохой раздел в Preferences, позволяющий управлять учётными записями пользователей на сервере. Однако, если вы хотите запустить автономный сервер и не можете запустить основную программу 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
Он будет использовать учетные записи пользователей, которые вы создали на предыдущем шаге.
Синхронизация прогресса чтения с KOReader¶
Сервер содержимого может выступать в роли сервера синхронизации прогресса для программы чтения электронных книг KOReader, чтобы устройства с KOReader могли синхронизировать между собой вашу позицию чтения в книгах. В KOReader перейдите в Инструменты → Синхронизация прогресса → Пользовательский сервер синхронизации и введите адрес сервера содержимого, за которым следует /kosync, например:
http://192.168.1.2:8080/kosync
Если вы используете префикс URL, укажите его перед /kosync. Затем выполните Вход с именем пользователя и паролем учётной записи на сервере содержимого. Учётные записи нельзя создать из KOReader — ими управляет Calibre, как описано выше. Пользователи, которым разрешён только доступ на чтение, не могут синхронизировать свои позиции чтения. Если учётные записи пользователей на сервере не включены, можно использовать любое имя пользователя и пароль, но позиции чтения можно синхронизировать только с устройств, которым разрешено вносить изменения без аутентификации; см. параметры Разрешить неаутентифицированным локальным подключениям вносить изменения и Разрешить неаутентифицированным подключениям с определённых IP-адресов вносить изменения. Позиции чтения, синхронизированные при отключённых учётных записях пользователей, хранятся отдельно от позиций учётных записей пользователей. Позиции чтения каждого пользователя хранятся отдельно в базе данных пользователей сервера.
By default, KOReader identifies books by a checksum of the book file. The Content server can change the metadata embedded in books when they are downloaded, so copies of a book downloaded at different times can have different checksums. Once KOReader has synced with the server, it remembers the checksums of downloaded books and of the library files they were created from, so that all copies of the same format of a book share one reading position. Different formats of a book have separate reading positions, as positions in one format cannot be used in another. Copies downloaded before KOReader first synced with the server, or obtained other than by downloading them from the server, are not recognized. If reading positions do not sync for such copies, set Document matching method in the KOReader progress sync settings to Filename on all devices and keep the file names of books the same.
Интеграция контент-сервера 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>
Использование префикса URL-адреса¶
Если вы не хотите выделять полный виртуальный хост для calibre, вы можете использовать префикс URL. Запустите сервер calibre как:
calibre-server --url-prefix /calibre --port 8080
Ключевым параметром здесь является --url-prefix/calibre. В результате сервер содержимого будет обслуживать все URL-адреса с префиксом /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. После включения прокси-модулей добавьте следующие правила в httpd.conf (или, если вы используете виртуальные хосты, в файл conf для рассматриваемого виртуального хоста):
AllowEncodedSlashes On
RewriteEngine on
RewriteRule ^/calibre/(.*) http://127.0.0.1:8080/calibre/$1 [proxy]
RedirectMatch permanent ^/calibre$ /calibre/
Вот и всё, теперь вы сможете получить доступ к серверу содержимого calibre по URL-адресу /calibre на вашем основном сервере. Вышеупомянутые правила передают все запросы из раздела /calibre серверу calibre, работающему на порту 8080, и благодаря указанному выше параметру --url-prefix сервер calibre обрабатывает их прозрачно.
Примечание
При использовании обратного прокси-сервера вы должны указать серверу контента calibre прослушивать только локальный хост, используя параметр --listen-on 127.0.0.1. Таким образом, сервер будет прослушивать соединения только с того же компьютера, то есть с обратного прокси.
Примечание
Если вы настроили SSL для вашего основного сервера, вы должны указать серверу calibre использовать базовую аутентификацию вместо digest-аутентификации, так как это быстрее. Для этого передайте параметр --auth-mode=basic в calibre-server.
Создание сервиса для сервера calibre в современной системе Linux¶
Вы можете легко создать службу для запуска calibre при загрузке в современной системе Linux (systemd). Просто создайте файл /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
To make it start at boot, run:
sudo systemctl enable calibre-server
Примечание
Серверу calibre не нужен работающий X-сервер, но ему нужны установленные X-библиотеки, поскольку некоторые компоненты, которые он использует, связаны с ними.
Примечание
Сервер calibre также поддерживает активацию сокета systemd, так что вы также можете использовать его при необходимости.
