Программа Calibre более широко известна как настольный клиент, но также она может выступать в качестве производительного сервера для обслуживания электронных книг. Calibre открывает доступ к книге из любой точки мира с любого устройства и позволяет делиться своей коллекцией книг.
Сервер предоставляет простой и удобный браузер, с помощью которого можно искать и загружать книги в библиотеку. Calibre имеет простой встроенный сайт (с мобильной версией), который позволяет загружать книги прямо в ридер.
Предпосылки
- Сервер с Ubuntu 22.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Обновите систему
Свежая установка Ubuntu 22.04 требует обновления пакетов до последних доступных версий.
|
|
Установка Calibre
Пакет Calibre можно найти в стандартном репозитории системы, но на сайте проекта размещена более современная версия.
Calibre часто обновляется, потому версии из репозитория системы быстро становятся устаревшими.
К счастью, разработчики Calibre упростили установку до одной команды. Чтобы установить пакет, нужно просто запустить на сервере следующую команду.
|
|
Команда может выдать несколько предупреждений о неудачной интеграции настольного клиента, но их можно проигнорировать, поскольку вы устанавливаете Calibre на удаленном сервере.
Установка зависимостей
Команда calibredb
управляет библиотекой Calibre. С её помощью можно добавлять и перемещать книги, извлекать метаданные, выбирать обложку и т.п.
У этой команды есть пара зависимостей, без которых она не будет работать: это ImageMagick
и xvfb
(позволяет запустить Calibre без дисплея).
Чтобы установить эти зависимости, нужно просто обновить индекс пакетов и запустить следующие команды.
|
|
Создание библиотеки
Сервер почти готов к запуску. Добавьте несколько книг в библиотеку, чтобы посмотреть, как это работает. Рассмотрим два способа:
- Добавление электронных книг напрямую.
- Импортирование готовой библиотеки Calibre (особенно полезно, если вы уже используете Calibre в качестве настольного клиента).
Создайте пользователя для запуска
|
|
Загрузка книги
Для начала создайте каталог для библиотеки Calibre в домашнем каталоге.
|
|
Теперь в домашнем каталоге есть два каталога. Первый, ~/calibre-library
, для автоматической загрузки Calibre. Во второй каталог, toadd
, вы сможете добавлять книги вручную.
Для работы загрузите несколько книг (например, с Gutenberg).
Загрузите книгу:
|
|
Чтобы правильно добавлять книги, Calibre использует расширения. Флаг –О
позволяет выбрать более удобное имя файла. Если вы загрузили книгу в другом формате (например, в .epub), вам нужно указать в команде соответствующее расширение.
Добавление книги в базу Calibre
Теперь нужно добавить загруженные книги в базу Calibre с помощью команды calibredb
и виртуального дисплея xvfb
.
|
|
Символ звёздочки позволяет Calibre добавить все книги из каталога toadd в библиотеку (каталог calibre-library).
Команда может выдать ошибку из-за отсутствия обложек (файлы .mobi загружаются без картинок), однако это не помешает добавить книги в базу Calibre.
Теперь попробуйте запустить сервер:
|
|
Эта команда не вернёт никакого вывода, а просто останется в терминале. На данный момент это нормальное поведение. Теперь откройте браузер и перейдите по ссылке:
|
|
На экране появится главная страница библиотеки.
Перейдите по ссылке All books. Вы увидите в списке добавленные только что книги. Чтобы загрузить какую-либо книгу, нажмите Get.
Настройте Nginx в качестве обратного прокси
|
|
Создайте обратный конфигурацию прокси-сервера для Calibre.
|
|
Заполните файл следующей конфигурацией.
|
|
Включите конфигурацию обратной прокси-сервера Calibre Nginx.
|
|
Проверка конфигурации и перезагрузите службу Nginx.
|
|
Загрузка готовой библиотеки Calibre
Если вы уже используете Calibre и у вас есть готовая библиотека, вы можете загрузить её на удалённый сервер.
Перейдите в папку библиотеки и найдите в ней файл metadata.db. Если такой файл существует, то библиотека не нуждается в дополнительной настройке.
Загрузите библиотеку на сервер. Затем запустите команду:
|
|
Теперь вся библиотека будет доступна на сервере. Чтобы добавить в неё новую книгу, поместите её в каталог toadd.
Перечислите содержимое библиотеки
Получите список всех книг в библиотеке.
|
|
Удалить книги из библиотеки
calibredb
требует идентификационного номера для удаления книги. Например, удалить книгу ID 1:
|
|
Чтобы снова добавить книгу:
|
|
Запуск Calibre в фоновом режиме
Теперь нужно перевести команду calibre-server в фоновый режим.
Используйте nano
, чтобы создать новый файл сервиса.
|
|
Добавьте следующее содержимое в calibre-server.service
.
|
|
Измените calibre и calibre на любого пользователя и группу, от которой вы хотите, чтобы сервер работал. Это должен быть тот же пользователь и группа, которым принадлежат файлы в папке библиотеки calibre. Обратите внимание, что обычно не рекомендуется запускать сервер с правами root. Также измените путь к папке библиотеки calibre в соответствии с вашей системой. При необходимости вы можете добавить несколько библиотек.
Сохраните и закройте сценарий.
Запустите сервер:
|
|
Добавить аутентификацию
Добавьте аутентификацию, чтобы предотвратить несанкционированный доступ к библиотеке электронных книг.
Остановите сервер.
|
|
Запустите скрипт управления пользователями:
|
|
Следуйте инструкциям, чтобы сделать новый пользователь с именем calibreuser
и выбрать безопасный пароль. Убедитесь, что вы видите сообщение подтверждения:
|
|
Отредактируйте файл службы Calibre, чтобы включить аутентификацию.
|
|
Заменить эту строку:
|
|
С участием:
|
|
Перезагрузите сервисные файлы с systemd и перезапустите службу.
|
|
Аутентификация теперь требуется для доступа к серверу.
Автоматическое добавление книг с помощью cron
Напишите простой cronjob для автоматического обновления библиотеки.
Например, команда будет проверять каталог toadd
на наличие новых книг каждые 15 минут, добавлять (копировать) новые книги в библиотеку Calibre, а затем удалять исходный файл из каталога.
Чтобы создать cronjob, выполните:
|
|
Добавьте в конец файла:
|
|
Примечание: Результаты поиска в Calibre не сортируются по релевантности. Потому если вы вводите общий термин, пытаясь найти какую-то книгу, вы найдёте много других книг. Вы можете выполнять поиск по названию или по автору, а также сортировать результат в алфавитном порядке.
Запуск Calibre-Web
Calibre-Web - это веб-приложение, предоставляющее чистый интерфейс для просмотра, чтения и загрузки электронных книг, используя существующую базу данных Calibre.
Перед установкой Calibre-Web мы должны установить компонент: python3-pip
|
|
Вы можете создать виртуальную среду, используя:
|
|
Активировать виртуальную среду:
|
|
Мы выполняем установку Calibre-Web:
|
|
Запуск Calibre-Web
|
|
Теперь откройте браузер и перейдите по ссылке: http://your_server_ip:8083
, указываем путь к каталогу с библиотекой /home/calibre/calibre-library
(в которой должен располагаться файл metadata.db
, используемый Calibre для хранения информации о книгах в библиотеке)
Логинимся с дефолтными admin:admin123. На экране появится главная страница библиотеки.
Запуск Calibre-Web в фоновом режиме
Теперь нужно перевести команду calibre-web в фоновый режим.
Используйте nano
, чтобы создать новый файл сервиса.
|
|
Добавьте следующее содержимое на calibre-web.service
.
|
|
Сохраните и закройте сценарий.
Запустите сервер:
|
|
Настройте Nginx в качестве обратного прокси
|
|
Создайте обратный конфигурацию прокси-сервера для calibre-web.
|
|
Заполните файл следующей конфигурацией.
|
|
Включите конфигурацию обратной прокси-сервера Calibre-Web Nginx.
|
|
Проверка конфигурации и перезагрузите службу Nginx.
|
|
Собственно на этом всё. Остается только у своего доменного регистратора прописать на используемый my.domain.tld требуемый ip-адрес, дождаться его делегирования, и можно открывать уже свой Calibre-Web в браузере.
Если вам понравился этот пост об установке Calibre и Calibre-Web на Ubuntu 22.04, поделитесь им с друзьями в социальных сетях. Спасибо.