Контент-сервер 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.

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

The new calibre server makes lots of use of advanced HTML 5 and CSS 3 features. As such it requires an up-to-date browser to use. It has been tested on Android Chrome and iOS Safari as well as Chrome and Firefox on the desktop. It is known not to work with Internet Explorer and Microsoft Edge (hopefully Edge will start working when Microsoft gets around to implementing a few missing standards).

The server is careful to use functionality that has either been already standardised or is on the standards track. As such if it does not currently work with your favorite browser, it probably will once that browser has caught up.

If you are using a particularly old or limited browser or you don’t like to run JavaScript, you can use the mobile view, by simply adding /mobile to the the server address.

Примечание

On iOS, Apple allows only a single browser engine, so Firefox, Chrome and Safari are all actually the same browser under the hood. The new server interface requires iOS 10.3.2 or newer. On Android, the server has been tested with Chrome version 58 and newer.

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

Browser makers have been trying to force people to use SSL by disabling advanced features in their browsers for plain HTTP connections. One such casualty is offline support. So you may need to enable HTTPS on the server to get offline support working. In addition, in Firefox on Android, you will need to type about:config and search for browser.tabs.useCache and toggle it to true.

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

The calibre program has a nice section in Preferences to allow you to manage user accounts for the server. However, if you want to run the standalone server and cannot run the main calibre program on the same computer/user account, you can also manage users using just the command-line.

You can manage user accounts using the --manage-users option to the standalone calibre-server program. Suppose you want to store the user database in the directory /srv/calibre, then you create it by running:

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

Just follow the prompts to create user accounts, set their permission, etc. Once you are done, you can run the server as:

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

It will use the user accounts you created in the previous step.

Интеграция контент-сервера calibre с другими серверами

Here, we will show you how to integrate the calibre Content server into another server. The most common reason for this is to make use of SSL or to serve the calibre library as part of a larger site. The basic technique is to run the calibre server and setup a reverse proxy to it from the main server.

A reverse proxy is when your normal server accepts incoming requests and passes them onto the calibre server. It then reads the response from the calibre server and forwards it to the client. This means that you can simply run the calibre server as normal without trying to integrate it closely with your main server.

Использование полностью виртуального хоста

The simplest configuration is to dedicate a full virtual host to the calibre server. In this case, run the calibre server as:

calibre-server

Now setup the virtual host in your main server, for example, for nginx:

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

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

Or, for 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-адреса

If you do not want to dedicate a full virtual host to calibre, you can have it use a URL prefix. Start the calibre server as:

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

The key parameter here is --url-prefix /calibre. This causes the Content server to serve all URLs prefixed by /calibre. To see this in action, visit http://localhost:8080/calibre in your browser. You should see the normal Content server website, but now it will run under /calibre.

With nginx, the required configuration is:

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;
}

For Apache, first enable the proxy modules in Apache, by adding the following to httpd.conf:

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

The exact technique for enabling the proxy modules will vary depending on your Apache installation. Once you have the proxy modules enabled, add the following rules to httpd.conf (or if you are using virtual hosts to the conf file for the virtual host in question):

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

That’s all, you will now be able to access the calibre Content server under the /calibre URL in your main server. The above rules pass all requests under /calibre to the calibre server running on port 8080 and thanks to the --url-prefix option above, the calibre server handles them transparently.

Примечание

When using a reverse proxy, you should tell the calibre Content server to only listen on localhost, by using --listen-on 127.0.0.1. That way, the server will only listen for connections coming from the same computer, i.e. from the reverse proxy.

Примечание

If you have setup SSL for your main server, you should tell the calibre server to use basic authentication instead of digest authentication, as it is faster. To do so, pass the --auth-mode=basic option to calibre-server.

Создание сервиса для сервера calibre в современной системе Linux

You can easily create a service to run calibre at boot on a modern (systemd) based Linux system. Just create the file /etc/systemd/system/calibre-server.service with the contents shown below:

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

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

[Install]
WantedBy=multi-user.target

Change mylinuxuser and mylinuxgroup to whatever user and group you want the server to run as. This should be the same user and group that own the files in the calibre library directory. Note that it is generally not a good idea to run the server as root. Also change the path to the calibre library directory to suit your system. You can add multiple libraries if needed. See the help for the calibre-server command.

Now run:

sudo systemctl start calibre-server

to start the server. Check its status with:

sudo systemctl status calibre-server

To make it start at boot, run:

sudo systemctl enable calibre-server

Примечание

The calibre server does not need a running X server, but it does need the X libraries installed as some components it uses link against them.

Примечание

The calibre server also supports systemd socket activation, so you can use that, if needed, as well.