Как создать сервер калибра Ebook на Ubuntu 14.04

Вступление

Caliber - бесплатный менеджер электронных книг с открытым исходным кодом.

Хотя Caliber, вероятно, более известен своим настольным клиентом, он также может выступать в качестве мощного сервера, позволяя вам получать доступ к своим электронным книгам из любой точки мира (или делиться своей коллекцией с друзьями). Хранение ваших электронных книг на сервере - это прекрасно, так как вы не полагаетесь на то, что у вас есть то же устройство для чтения, когда вы хотите читать. И если вы отправляетесь в путешествие, вам не нужно беспокоиться о том, чтобы взять свою коллекцию электронных книг с собой!

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

Например, браузер Calibre работает с Kindle Touch, который может загружать книги напрямую, даже если устройство имеет только дисплей e-ink и экспериментальный браузер.

В этом руководстве мы рассмотрим, как установить, настроить и использовать Caliber на сервере Ubuntu 14.04. Мы также рассмотрим, как использовать http://manual.calibre-ebook.com/cli/calibredb.html [+ calibredb + команда] для создания, настройки и обслуживания базы данных электронных книг прямо с сервера. ,

  • Для этого урока мы рассмотрим: *

  • Установка Калибра

  • Создание библиотеки электронных книг или импорт существующей

  • Превращение сервера Caliber в фоновый сервис

  • Автоматическое добавление новых книг в библиотеку

К концу этого урока у вас будет небольшая начальная библиотека, в которую вы сможете легко добавлять новые книги!

Предпосылки

Пожалуйста, убедитесь, что у вас есть следующие условия:

  • Ubuntu 14.04 Droplet

  • Https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04[sudo user]

Примеры в этом руководстве показаны для Droplet, работающего с новой установкой Ubuntu 14.04, но они должны легко адаптироваться к другим операционным системам.

Шаг 1 - Установка Калибра

Калибр доступен в репозиториях программного обеспечения APT, но, по совету его создателей, его гораздо лучше установить из двоичных файлов, представленных на их веб-сайте. Калибр обновляется очень часто, а версия в репозиториях имеет тенденцию отставать.

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

Установите Caliber (не забудьте прокрутить, чтобы получить всю команду):

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()"

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

Шаг 2 - Установка зависимостей

Инструмент командной строки Caliber + calibredb + используется для различных операций в вашей библиотеке Caliber, таких как добавление или импорт книг, а также выбор метаданных и обложек для книг.

Мы рассмотрим, как использовать некоторые из этих команд позже, но сейчас мы просто установим две зависимости. Первым является ImageMagick, без которого + calibredb + не будет работать; и второе это + xvfb +, которое мы будем использовать для запуска + calibredb + на виртуальном сервере X display - чтобы обойти проблемы, вызванные запуском Caliber в среде без дисплея.

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

Обновите свои списки пакетов:

sudo apt-get update

Установите + xvfb +:

sudo apt-get install xvfb

Установите ImageMagick:

sudo apt-get install imagemagick

Шаг 3 - Создание библиотеки

Теперь мы почти готовы запустить сервер. Однако нам нужно получить несколько книг для обслуживания.

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

  1. Добавить файлы электронных книг напрямую; мы возьмем пару из проекта Гутенберга

  2. Импортировать существующую библиотеку Caliber; полезно, если вы уже используете настольную версию Caliber

Получать книги

Сначала давайте создадим каталог для нашей библиотеки Caliber. В этом примере создается каталог в домашнем каталоге вашего пользователя, хотя вы можете разместить его в любом месте на сервере. Запустите следующие команды:

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

Мы создали два каталога: первый, + ~ / caliber-library, который Caliber организует автоматически, в то время как мы будем добавлять книги вручную в подкаталог` + todd + `. Позже мы также рассмотрим, как автоматизировать этот процесс.

Как мы возьмем некоторые книги с Project Gutenberg. Для этого урока мы загрузим Pride и Prejudice от Джейн Остин и A Christmas Carol от Чарльза Диккенса.

Перейдите в каталог + toadd +, чтобы начать.

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

Caliber в некоторой степени полагается на расширения файлов для правильного добавления книг, поэтому флаг + -O + в команде + wget + указывает более понятное имя файла. Если вы загрузили другой формат из Гутенберга (например, + .epub +), вам необходимо соответствующим образом изменить расширение файла.

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

Теперь нам нужно добавить эти книги в базу данных Caliber с помощью команды + calibredb + через виртуальный дисплей + xvfb +, который мы установили ранее. Для этого запустите:

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

Звездочка означает, что Caliber добавит все книги, найденные в каталоге + toadd +, в библиотеку, в каталог + caliber-library +. Вы можете увидеть ошибку, связанную с отсутствием обложки (мы решили загрузить файлы + .mobi + без изображений), но вы также должны увидеть подтверждение того, что книги были добавлены в базу данных Caliber.

Образец вывода:

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

Это все, что нам нужно, чтобы начать видеть первые результаты. Давайте проверим сервер. Run:

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

Команда не выдаст никакого вывода, а просто будет зависать в вашем терминале. Это хорошо сейчас; мы посмотрим, как это правильно сделать позже. Теперь откройте веб-браузер и перейдите к:

  • + HTTP: //: 8080 +

Замените ++ на IP-адрес вашего дроплета. Вы должны увидеть главную страницу вашей библиотеки, похожую на скриншот ниже.

изображение: https: //assets.digitalocean.com/articles/calibre_bookserver/1.png [домашняя страница калибра]

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

изображение: https: //assets.digitalocean.com/articles/calibre_bookserver/2.png [Просмотр ваших книг]

Загрузка библиотеки существующего калибра

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

Дважды проверьте текущую папку библиотеки на наличие файла с именем + metadata.db +. Если этот файл существует, то все должно работать без дополнительной настройки.

Загрузите всю папку библиотеки на свой сервер.

Затем выполните эту команду:

calibre-server --with-library

Это полностью добавит вашу существующую библиотеку на сервер. Вы можете добавить больше книг к нему на сервере, поместив файлы книг в каталог + toadd +, как объяснено в этом руководстве.

Шаг 4. Создание Caliber в качестве фоновой службы.

Мы не хотим, чтобы оболочка была открыта с помощью команды + caliber-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=''
env PASSWORD=''
env LIBRARY_PATH='/home//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

Вставьте это в ваш текстовый редактор и сохраните. (CTRL + X, затем Y, затем ENTER). Посмотрим, что делает каждая строка ниже:

  • Первая строка - это просто описание, которое поможет вам (или другим) узнать, что делает скрипт

  • В следующих двух строках указывается, на каком уровне вы хотите запускать и останавливать свой сценарий, поскольку Upstart позволяет задавать порядок заказов, чтобы сценарии, основанные друг на друге, запускались в правильном порядке. Уровень 1 предназначен для всех основных служб, поэтому мы начнем с уровня 2, и к тому времени мы узнаем, что сеть и все остальное, что нам нужно, будет в рабочем состоянии.

  • + respawn + означает, что если служба неожиданно остановится, она попытается перезапустить

Следующие строки - это все переменные, которые мы передаем команде + calibre-server +. Раньше мы просто использовали минимум указания опции + - with-library, но теперь мы можем видеть, какую гибкость предлагает Caliber. Выше мы указали:

  • Имя пользователя и пароль для доступа к библиотеке из Интернета (пожалуйста, измените их из приведенных примеров)

  • Путь к местоположению библиотеки, как и раньше

  • Максимальный размер изображения для обложек книг (это полезно для ускорения загрузки страницы)

  • Номер порта (здесь мы изменили его на «+ 80 +»; измените его на другой, если вы уже используете порт 80 для обслуживания стандартных веб-страниц и т. Д.)

  • Наконец, в разделе + script + (известном как stanza) мы запускаем основную команду, используя + exec +, и передаем все наши переменные. Часть + / usr / bin / caliber-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 для автоматического добавления книг

Мы можем написать простую задачу cron для просмотра каталога + toadd + для новых книг.

Каждые 10 минут он будет искать файлы в каталоге + / home // caliber-library / toadd / +, добавлять любые файлы в нашу базу данных Caliber, а затем удалять исходные файлы. (Калибр делает копии файлов, когда добавляет их в нашу библиотеку, поэтому нам не нужны оригиналы после того, как добавление вступило в силу.) Это означает, что если вы передаете файлы книг через scp, ssh и т. Д. в этот каталог с вашего основного компьютера или просто загрузите их прямо в каталог + toadd +, тогда они будут автоматически добавлены в вашу базу данных Caliber и будут доступны для загрузки из вашей библиотеки!

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

crontab -e

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

В конце файла добавьте строку:

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

Первая часть команды (+ * / 10 * * * * +) означает, что команда должна выполняться каждые десять минут. Вторая часть аналогична команде, которую мы запускали ранее. Он добавляет все книги из папки + toadd + в базу данных, а затем удаляет исходные файлы.

Ничего не поделаешь. Теперь вы можете получить доступ к своим книгам из любой точки мира.

_ * Примечание: * Результаты поиска в Calibre не сортируются по релевантности, поэтому, если вы вводите общий термин, вы часто находите несвязанные книги раньше, чем тот, который вы ищете. Тем не менее, вы можете указать поиск только по названию или автору, что очень помогает, и опции просмотра (например, просмотр по алфавиту по автору) также очень хорошо реализованы. _

Заключение

При запуске и обслуживании сервера Caliber необходимо помнить одну или две вещи. Мы кратко рассмотрим их, чтобы закончить.

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

Если вы размещаете только книги из Гутенберга или аналогичных сайтов (то есть книг, которые не защищены авторскими правами), то мало что можно сказать. Просто убедитесь, что вы следуете правилам Гутенберга. В частности, если вы предоставляете доступ к своей коллекции книг другим, обязательно прочитайте раздел TOS Гутенберга, касающийся http://www.gutenberg.org/wiki/Gutenberg:The_Project_Gutenberg_License#Section_1._General_Terms_of_Use_and_Redistributing_Project_Gisttenberg_mjects.

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

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

Обновления

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

Если опубликовано важное обновление, вы должны вручную обновить программное обеспечение сервера. (Опять же, репозитории APT имеют тенденцию отставать, поэтому не рекомендуется полагаться на них в обновлениях).

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

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

  • Не используйте общее имя пользователя, например * admin *, * calibre * или * ebooks *

  • Не используйте общий или короткий пароль, и определенно не используйте свое имя пользователя в качестве пароля

  • Попробуйте запустить Caliber на нестандартном порту вместо порта 80

И это завершает наш урок. Мы надеемся, что вам понравится доступ к вашим книгам из любого места и с любого устройства!

Related