Контент-сервер calibre

calibre Контент-сервер позволяет вам получать доступ к своим библиотекам calibre и читать книги прямо в браузере на мобильном телефоне или планшете. В результате вам не нужно устанавливать на телефон какие-либо специальные приложения для чтения и управления книгами. Просто используйте браузер. Сервер загружает и сохраняет книгу, которую вы читаете, в автономном кэше, чтобы вы могли читать ее, даже если нет подключения к Интернету.

Чтобы запустить сервер, нажмите кнопку Соединиться/поделиться и выберите :guilabel:` Запустить контент-сервер`. Вы можете получить сообщение от брандмауэра вашего компьютера или антивирусной программы с вопросом, можно ли разрешить доступ к 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. Убедитесь, что ваше устройство и компьютер находятся в одной сети. Это означает, что они оба должны быть подключены к одному беспроводному маршрутизатору. В частности, ни один из них не должен использовать сотовую связь или интернет-провайдер с прямым подключением.

  4. Если у вас нестандартные настройки сети, возможно, IP-адрес, указанный в меню Соединиться/поделиться, неверен. В таком случае вам придется самостоятельно определить, какой правильный IP-адрес использовать. К сожалению, учитывая бесконечное разнообразие возможных сетевых конфигураций, невозможно дать вам план действий для этого.

  5. Если вы настроили имя пользователя и пароль, попробуйте сначала без них, чтобы увидеть, вызывает ли это проблемы. Некоторые устройства e-ink имеют браузеры, которые не поддерживают аутентификацию. Иногда это можно обойти, включив имя пользователя и пароль в URL, например: http://username: password@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 <https://www.noip.com/free>`_, чтобы настроить легко запоминаемый адрес для использования вместо IP-адреса, найденного на первом шаге.

Примечание

Для максимальной безопасности вы также должны включить HTTPS на контент-сервере. Вы можете сделать это непосредственно на сервере, указав путь к сертификату HTTPS для использования в дополнительных параметрах конфигурации для сервера, или настроить обратный прокси-сервер, как описано ниже, для использования существующей настройки HTTPS.

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

Интерфейс сервера - это упрощенная версия основного интерфейса calibre, оптимизированная для использования с сенсорными экранами. На главном экране отображаются книги, которые вы сейчас читаете, а также можно выбрать библиотеку calibre, которую вы хотите просмотреть. calibre сервер предоставляет вам доступ ко всем вашим библиотекам, а не только к одной, как раньше.

Список книг

Список книг сервера представляет собой простую сетку обложек. Нажмите на обложку, чтобы увидеть подробные метаданные для книги или прочитать книгу. Если вы предпочитаете более подробный список, вы можете изменить вид по умолчанию, нажав на три вертикальные точки в верхнем правом углу.

Сортировка и поиск в списке книг должны быть знакомы пользователям calibre. Доступ к ним можно получить, щелкнув их значки в правом верхнем углу. Они оба работают точно так же, как в основной программе calibre. Страница поиска даже позволяет создавать поисковые запросы, нажимая на авторов/ теги и т. д., так же, как и в Браузере тегов в основной программе.

Особо любимая особенность основной программы Виртуальные библиотеки также присутствует в интерфейсе сервера. Нажмите на три вертикальные точки в правом верхнем углу, чтобы выбрать виртуальную библиотеку.

Читалка книг

Вы можете прочитать любую книгу в своей библиотеке calibre, просто нажав на неё, а затем нажав кнопку Читать книгу. Читалка книг очень проста в управлении. Вы можете нажать и провести пальцем, чтобы перевернуть страницы. Смахивание вверх/вниз пропускает между главами. При нажатии на верхнюю четверть экрана вы получите подробные элементы управления и настройки просмотра.

Если вы оставите сервер содержимого включенным, вы даже сможете открыть одну и ту же книгу на нескольких устройствах, и она запомнит вашу последнюю прочитанную позицию. Если это не так, вы можете вызвать синхронизацию, нажав в верхней четверти и выбрав :guilabel: Sync.

Поддержка браузеров

В новом сервере 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 и новее.

Включение режима автономной работы

Производители браузеров пытались заставить людей использовать SSL, отключая расширенные функции в своих браузерах для простых HTTP-соединений. Одна из таких жертв - офлайн-поддержка. Поэтому вам может потребоваться включить HTTPS на сервере, чтобы обеспечить работу автономной поддержки. Кроме того, в Firefox на Android вам нужно будет ввести about: config, выполнить поиск по запросу browser.tabs.useCache и переключить его на true.

Управление пользовательскими аккаунтами с помощью командной строки

У 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

Он будет использовать учетные записи пользователей, которые вы создали на предыдущем шаге.

Интеграция контент-сервера 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, так что вы также можете использовать его при необходимости.