Установка Calibre в Ubuntu 14.04

Calibre – это свободный и открытый менеджер электронных библиотек.

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

Сервер предоставляет простой и удобный браузер, с помощью которого можно искать и загружать книги в библиотеку. Calibre имеет простой встроенный сайт (с мобильной версией), который позволяет загружать книги прямо в ридер.

Браузер Calibre работает с ридером Kindle Touch, который может загружать книги даже на самые простые девайсы.

Данное руководство поможет установить и настроить Calibre на сервере Ubuntu 14.04, а также научит вас управлять электронными книгами с помощью команды calibredb.

Требования

  • Настроенный сервер Ubuntu 14.04.
  • Пользователь с доступом к sudo (инструкции по созданию такого пользователя можно найти здесь).

Примечание: Инструкции руководства предназначены для свежего сервера Ubuntu 14.04, но их легко адаптировать к другим операционным системам.

1: Установка Calibre

Пакет Calibre можно найти в стандартном репозитории системы, но на сайте проекта размещена более современная версия.

Calibre часто обновляется, потому версии из репозитория системы быстро становятся устаревшими.

К счастью, разработчики Calibre упростили установку до одной команды. Чтобы установить пакет, нужно просто запустить на сервере следующую команду Python.

Примечание: Сначала проверьте официальный сайт Calibre и убедитесь, что команда не изменилась.

sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

Команда может выдать несколько предупреждений о неудачной интеграции настольного клиента, но их можно проигнорировать, поскольку вы устанавливаете Calibre на удаленном сервере.

2: Установка зависимостей

Команда calibredb управляет библиотекой Calibre. С её помощью можно добавлять и перемещать книги, извлекать метаданные, выбирать обложку и т.п.

У этой команды есть пара зависимостей, без которых она не будет работать: это ImageMagick и xvfb (позволяет запустить Calibre без дисплея).

Чтобы установить эти зависимости, нужно просто обновить индекс пакетов и запустить следующие команды.

sudo apt-get update
sudo apt-get install xvfb
sudo apt-get install imagemagick

3: Создание библиотеки

Сервер почти готов к запуску. Добавьте несколько книг в библиотеку, чтобы посмотреть, как это работает. Рассмотрим два способа:

  1. Добавление электронных книг напрямую.
  2. Импортирование готовой библиотеки Calibre (особенно полезно, если вы уже используете Calibre в качестве настольного клиента).

Загрузка книги

Для начала создайте каталог для библиотеки Calibre в домашнем каталоге.

mkdir ~/calibre-library
mkdir ~/calibre-library/toadd

Теперь в домашнем каталоге есть два каталога. Первый, ~/calibre-library, для автоматической загрузки Calibre. Во второй каталог, toadd, вы сможете добавлять книги вручную.

Для работы загрузите несколько книг (например, с Gutenberg).

Примечание: В данном руководстве используются книги «Гордость и предубеждение» Джейн Остин (Pride and Prejudice) и «Рождественская песнь» Чарльза Диккенса (A Christmas Carol).

Перейдите в каталог toad:

cd ~/calibre-library/toadd

Загрузите книги:

wget http://www.gutenberg.org/ebooks/1342.kindle.noimages -O pride.mobi
wget http://www.gutenberg.org/ebooks/46.kindle.noimages -O christmascarol.mobi

Чтобы правильно добавлять книги, Calibre использует расширения. Флаг –О позволяет выбрать более удобное имя файла. Если вы загрузили книгу в другом формате (например, в .epub), вам нужно указать в команде соответствующее расширение.

Добавление книги в базу Calibre

Теперь нужно добавить загруженные книги в базу Calibre с помощью команды calibredb и виртуального дисплея xvfb.

xvfb-run calibredb add ~/calibre-library/toadd/* --library-path ~/calibre-library

Символ звёздочки позволяет Calibre добавить все книги из каталога toadd в библиотеку (каталог calibre-library).

Команда может выдать ошибку из-за отсутствия обложек (файлы .mobi загружаются без картинок), однако это не помешает добавить книги в базу Calibre.

Failed to read MOBI cover
Backing up metadata
Added book ids: 1, 2
Notifying calibre of the change

Теперь попробуйте запустить сервер:

calibre-server --with-library ~/calibre-library

Эта команда не вернёт никакого вывода, а просто останется в терминале. На данный момент это нормальное поведение. Теперь откройте браузер и перейдите по ссылке:

http://your_server_ip:8080

Примечание: Вместо your_server_ip укажите ip-адрес своего сервера.

На экране появится главная страница библиотеки.

Перейдите по ссылке All books. Вы увидите в списке добавленные только что книги. Чтобы загрузить какую-либо книгу, нажмите Get.

Загрузка готовой библиотеки Calibre

Если вы уже используете Calibre и у вас есть готовая библиотека, вы можете загрузить её на удалённый сервер.

Перейдите в папку библиотеки и найдите в ней файл metadata.db. Если такой файл существует, то библиотека не нуждается в дополнительной настройке.

Загрузите библиотеку на сервер. Затем запустите команду:

calibre-server --with-library /path/to/calibre-library

Теперь вся библиотека будет доступна на сервере. Чтобы добавить в неё новую книгу, поместите её в каталог toadd.

4: Запуск Calibre в фоновом режиме

Теперь нужно перевести команду calibre-server в фоновый режим.

Для этого существует флаг –daemonize, однако есть и более удобные способы. Например, можно просто запустить calibre-server как сервис. В таком случае команда будет автоматически запускаться и перезапускаться вместе с сервером.

Раньше для этого нужно было писать сложный сценарий в /etc/init.d/. Теперь можно использовать простой сценарий Upstart с расширением .conf в каталоге /etc/init/.

Если сервер запущен, остановите его, нажав CTRL + C.

Создайте конфигурационный файл:

sudo nano /etc/init/calibre-server.conf

Создайте сценарий Upstart.

description "Calibre (ebook manager) content server"
start on runlevel [2345] stop on runlevel [^2345] respawn
env USER='myusername'
env PASSWORD='mypassword'
env LIBRARY_PATH='/home/user/calibre-library'
env MAX_COVER='300x400'
env PORT='80'
script
exec /usr/bin/calibre-server --with-library $LIBRARY_PATH --auto-reload \
--max-cover $MAX_COVER --port $PORT \
--username $USER --password $PASSWORD
end script

Примечание: Выделенные красным значения нужно заменить своими данными.

Добавив в файл такой код, сохраните и закройте его.

  • Первая строка – описание сервера.
  • Следующие две строки задают уровень выполнения.
  • respawn перезапустит сервис в случае сбоя.
  • Далее идут переменные команды calibre-server. Они задают имя пользователя и пароль для доступа к библиотеке, путь размещения библиотеки, максимальный размер изображения для обложки книги и номер порта (в руководстве это порт 80, но если у вас этот порт уже занят, укажите другой номер).
  • Раздел script задаёт команду, которую нужно выполнить, и передаёт все переменные. /usr/bin/calibre-server – это путь к переменным.

Сохраните и закройте сценарий.

Запустите сервер:

sudo start calibre-server

Команда должна вернуть (номер процесса будет другим):

calibre-server start/running, process 7811

Откройте в браузере доменное имя или IP сервера.

На экране появится всплывающая форма аутентификации. Введите учётные данные, указанные в сценарии Upstart, чтобы получить доступ к библиотеке.

Управлять сервером можно с помощью команд:

sudo service calibre-server stop
sudo service calibre-server start
sudo service calibre-server restart

По умолчанию у сайта есть мобильная версия, которая позволяет читать книги с устройств с небольшим экраном.

5: Автоматическое добавление книг с помощью cron

Напишите простой cronjob для автоматического обновления библиотеки.

Например, команда будет проверять каталог toadd на наличие новых книг каждые 10 минут, добавлять (копировать) новые книги в библиотеку Calibre, а затем удалять исходный файл из каталога.

Чтобы создать cronjob, выполните:

crontab -e

Добавьте в конец файла:

*/10 * * * * xvfb-run calibredb add /home/user/calibre-library/toadd/ -r --with-library /home/user/calibre-library && rm /home/user/calibre-server/toadd/*

Примечание: Результаты поиска в Calibre не сортируются по релевантности. Потому если вы вводите общий термин, пытаясь найти какую-то книгу, вы найдёте много других книг. Вы можете выполнять поиск по названию или по автору, а также сортировать результат в алфавитном порядке.

Заключение

При работе с Calibre важно постоянно поддерживать сервер. Для этого нужно помнить о правах на публикацию и обновлениях программы.

Авторские права

Вы можете публиковать книги из Gutenberg или подобных сайтов (т.е., книги, срок авторского права которых уже истёк) без дополнительных разрешений. Пользуясь подобными сервисами, следуйте их условиям.

Публикуя платные книги или книги, на которые действуют авторские права, помните о DRM (управлении цифровыми правами). Такие книги, как правило, бывают доступны только для чтения с зарегистрированного устройства.

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

Обновления

Программное обеспечение Calibre часто обновляется. Как правило, разработчики выпускают пачти и обновления некоторых функций. Рекомендуется своевременно обновлять сервер электронной библиотеки.

Следить за обновлениями можно здесь.

Безопасность

Даже если вы не публикуете IP-адрес сервера, вредоносные сценарии могут просканировать его на наличие открытых портов. Calibre не ограничивает количество попыток входа, потому есть вероятность атак методом подбора пароля. Во избежание взлома:

  • Никогда не используйте простые имена пользователей (admin, calibre или ebooks).
  • Выбирайте сложный уникальный пароль.
  • Запустите Calibre на нестандартном порте (вместо 80 выберите другой номер).
Tags: ,

Добавить комментарий