Установка сервера · 10 min read · Oct 11, 2025

Как установить сервер Calibre Ebook на Ubuntu 22.04

Calibre — это бесплатный и открытый менеджер электронных книг. Он работает как кроссплатформенное настольное приложение вместе с серверным компонентом. Настольный компонент может управлять вашей библиотекой электронных книг на одном устройстве. А серверный компонент позволяет вам:

  • Получать доступ к вашим книгам из любой точки мира.
  • Легко передавать ваши книги на мобильные устройства.
  • Делиться книгами с друзьями и семьей.
  • Читать электронные книги непосредственно в интернете.

В этом руководстве вы научитесь устанавливать сервер Calibre на машину с Ubuntu 22.04.

Предварительные требования

  • Сервер с установленной Ubuntu 22.04.
  • Пользователь без прав root с правами sudo.
  • Простой брандмауэр (UFW) включен и работает.
  • Полностью квалифицированное доменное имя, указывающее на сервер. Для нашего руководства мы будем использовать домен calibre.example.com.
  • Все обновлено. $ sudo apt update && sudo apt upgrade

Шаг 1 - Настройка брандмауэра

Первый шаг перед установкой любых пакетов — настроить брандмауэр для разрешения HTTP и HTTPS соединений.

Проверьте статус брандмауэра.

$ sudo ufw status

Вы должны увидеть что-то вроде следующего.

Статус: активен

Кому                       Действие      Откуда
--                         ------      ----
OpenSSH                    РАЗРЕШИТЬ       Везде
OpenSSH (v6)               РАЗРЕШИТЬ       Везде (v6)

Разрешите порты HTTP и HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Проверьте статус снова, чтобы подтвердить.

$ sudo ufw status
Статус: активен

Кому                       Действие      Откуда
--                         ------      ----
OpenSSH                    РАЗРЕШИТЬ       Везде
80/tcp                     РАЗРЕШИТЬ       Везде
443/tcp                    РАЗРЕШИТЬ       Везде
OpenSSH (v6)               РАЗРЕШИТЬ       Везде (v6)
80/tcp (v6)                РАЗРЕШИТЬ       Везде (v6)
443/tcp (v6)               РАЗРЕШИТЬ       Везде (v6)

Шаг 2 - Скачивание и установка сервера Calibre

Ubuntu 22.04 поставляется с Calibre, но лучше установить его напрямую, чтобы получить последнюю версию.

Первый шаг — установить некоторые зависимости.

$ sudo apt install libopengl0 libxkbcommon-x11-0 libegl1 libfontconfig libgl1-mesa-glx

Скачайте установщик сервера Calibre.

$ wget https://download.calibre-ebook.com/linux-installer.sh

Сделайте скрипт установщика исполняемым.

$ chmod +x ./linux-installer.sh

Запустите установщик.

$ sudo ./linux-installer.sh

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

Шаг 3 - Создание библиотеки Calibre и добавление первой книги

Следующий шаг — настроить библиотеку Calibre и добавить в нее несколько книг. Для нашего руководства мы загрузим книгу «Приключения Шерлока Холмса» Артура Конан Дойла с сайта Project Gutenberg.

$ wget http://www.gutenberg.org/ebooks/1661.kindle.noimages -O adventuresofsherlockholmes.mobi

Всегда загружайте версию Kindle книги с сайта. Здесь мы переименовываем версию Kindle в filename.mobi, потому что формат Mobi поддерживается нативно в Kindle, именно поэтому он так называется на сайте. Он также предлагает лучшие варианты форматирования, чем версия Epub.

Создайте каталог для библиотеки Calibre.

$ mkdir calibre-library

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

$ calibredb add adventuresofsherlockholmes.mobi --with-library calibre-library/
Добавлены идентификаторы книг: 1

Вы можете добавить несколько книг сразу следующим образом.

$ calibredb add *.mobi --with-library calibre-library/

Шаг 4 - Запуск сервера Calibre

Теперь, когда наши книги готовы, пришло время запустить сервер Calibre.

$ calibre-server calibre-library

Команда calibre-server принимает местоположение библиотеки в качестве аргумента. Вы должны увидеть аналогичный вывод.

сервер calibre слушает на 0.0.0.0:8080
Потоки OPDS рекламируются через BonJour на: ваш_ip_сервера порт: 8080

Это открывает сервер Calibre на порту 8080. Чтобы просмотреть сервер, вам нужно сначала открыть порт. Выполните следующую команду, чтобы открыть порт 8080.

$ sudo ufw allow 8080

Откройте URL http://:8080/ в вашем браузере, и вы получите следующий экран. Экран будет отображаться темным или светлым в зависимости от выбора темы вашей операционной системы.

Домашняя страница сервера Calibre

Нажмите на ссылку calibre-library, чтобы просмотреть книгу, добавленную на предыдущем шаге.

Просмотр библиотеки сервера Calibre

Закройте сервер, нажав клавиши Ctrl + C в вашем терминале.

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

$ calibre-server calibre-library --port 7654

Шаг 5 - Создание файла службы systemd

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

Создайте файл с именем calibre-server.service в каталоге /etc/systemd/system/ и откройте его для редактирования.

$ sudo nano /etc/systemd/system/calibre-server.service

Вставьте следующий код в него.

[Unit]
Description=Сервер Calibre
After=network.target

[Service]
Type=simple
User=
Group=
ExecStart=/opt/calibre/calibre-server /home//calibre-library --enable-local-write

[Install]
WantedBy=multi-user.target

Флаг --enable-local-write дает серверу права на запись для добавления новых книг в библиотеку. Это связано с тем, что вы не можете добавлять книги с помощью команды calibredb, пока сервер работает.

Замените на имя пользователя вашей системы Linux в приведенном выше коде. Сохраните и закройте файл, нажав Ctrl+W и введя Y, когда будет предложено.

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

$ sudo systemctl daemon-reload

Включите и запустите службу Calibre.

$ sudo systemctl enable calibre-server
$ sudo systemctl start calibre-server

Проверьте статус службы.

$ sudo systemctl status calibre-server
? calibre-server.service - Сервер Calibre
     Загружено: загружено (/etc/systemd/system/calibre-server.service; включено; предустановка поставщика: включено)
     Активно: активно (работает) с Пн 2022-07-25 07:23:42 UTC; 15с назад
   Основной PID: 1877 (BonJour)
      Задачи: 13 (лимит: 2241)
     Память: 53.3M
        CPU: 762ms
     CGroup: /system.slice/calibre-server.service
             ??1877 /opt/calibre/bin/calibre-server /home//calibre-library --enable-local-write

25 июля 07:23:42 calibre systemd[1]: Запущен сервер Calibre.
25 июля 07:23:42 calibre calibre-server[1877]: QStandardPaths: XDG_RUNTIME_DIR не установлен, по умолчанию используется '/tmp/runtime-'
25 июля 07:23:42 calibre calibre-server[1877]: сервер calibre слушает на 0.0.0.0:8080
25 июля 07:23:43 calibre calibre-server[1877]: Потоки OPDS рекламируются через BonJour на: 69.28.84.201 порт: 8080

Шаг 6 - Включение аутентификации пользователей

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

$ sudo systemctl stop calibre-server

Calibre использует базу данных SQLite для хранения учетных данных пользователей. Запустите скрипт управления пользователями Calibre, чтобы добавить пользователя.

$ sudo calibre-server --manage-users

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

1) Добавить нового пользователя
2) Изменить существующего пользователя
3) Удалить пользователя
4) Отменить

Что вы хотите сделать? [1-4]: (Нажмите 1)
Введите имя пользователя: howtoforge
Введите новый пароль для howtoforge:
Введите новый пароль для howtoforge еще раз, чтобы подтвердить:
Пользователь howtoforge успешно добавлен!

Далее вам нужно отредактировать файл службы, чтобы проверить аутентификацию. Откройте файл для редактирования.

$ sudo nano /etc/systemd/system/calibre-server.service

Добавьте флаг --enable-auth в конце строки, начинающейся с ExecStart, чтобы включить аутентификацию пользователей.

...
ExecStart=/opt/calibre/calibre-server "/home//calibre-library" --userdb "/home//.config/calibre/server-users.sqlite" --enable-local-write --enable-auth
...

Сохраните и закройте файл, нажав Ctrl+W и введя Y, когда будет предложено.

Перезагрузите демон службы и запустите службу.

$ sudo systemctl daemon-reload
$ sudo systemctl start calibre-server

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

Запрос аутентификации сервера Calibre

Шаг 7 - Автоматическое добавление книг в библиотеку

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

Первый шаг — создать каталог для наблюдения.

$ mkdir ~/calibre-watch
$ cd ~/calibre-watch

Скачайте книгу «Война и мир» Льва Толстого в этот каталог с сайта Project Gutenberg.

$ wget https://www.gutenberg.org/ebooks/2600.kindle.images -O warandpeace.mobi

Если вы заметили, на этот раз мы загружаем версию, которая содержит изображения. Это варьируется от книги к книге на сайте Project Gutenberg. Некоторые имеют доступные версии с изображениями, а некоторые нет. Calibre хорошо работает с любым форматом.

Откройте редактор Crontab.

$ crontab -e

Если вы впервые используете Crontab, вам будет предложено выбрать редактор.

нет crontab для  - используется пустой

Выберите редактор.  Чтобы изменить позже, выполните 'select-editor'.
  1. /bin/nano        <---- самый простой
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Выберите 1-4 [1]:

Введите 1, чтобы выбрать редактор Nano, так как это самый простой в использовании.

Добавьте следующую команду в конец файла.

*/5 * * * * calibredb add /home//calibre-watch/ -r --with-library http://localhost:8080#calibre-library --username mycalibreuser --password StrongPassword! && rm -r /home//calibre-watch/*

Этот скрипт добавит все файлы в каталоге /home//calibre-watch в библиотеку calibre и удалит все оригинальные файлы, так как они больше не нужны. Вышеуказанная задача будет выполняться каждые 5 минут. Замените на имя пользователя вашей системы Linux и добавьте свои учетные данные Calibre в соответствующих местах.

Сохраните и закройте файл, нажав Ctrl+W и введя Y, когда будет предложено. Подождите несколько минут и перезагрузите сайт сервера calibre, чтобы увидеть, как книга, которую вы только что добавили, появляется в библиотеке.

Шаг 8 - Установка Nginx

Ubuntu 22.04 поставляется со старой версией Nginx. Чтобы установить последнюю версию, вам нужно загрузить официальный репозиторий Nginx.

Импортируйте ключ подписи Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Добавьте репозиторий для стабильной версии Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Обновите системные репозитории.

$ sudo apt update

Установите Nginx.

$ sudo apt install nginx

Проверьте установку.

$ nginx -v
nginx version: nginx/1.22.0

Шаг 9 - Установка SSL

Сейчас Calibre доступен на HTTP порту через IP-адрес. Чтобы лучше его защитить, мы включим доступ через выделенное доменное имя с использованием SSL-сертификата.

Нам нужно установить Certbot для генерации SSL-сертификата для Calibre. Вы можете установить Certbot, используя репозиторий Ubuntu, или получить последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.

Ubuntu 22.04 поставляется с установленным Snapd по умолчанию. Выполните следующие команды, чтобы убедиться, что ваша версия Snapd обновлена.

$ sudo snap install core

Установите Certbot.

$ sudo snap install --classic certbot

Используйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку на каталог /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Выполните следующую команду для генерации SSL-сертификата.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d calibre.example.com

Вышеуказанная команда загрузит сертификат в каталог /etc/letsencrypt/live/calibre.example.com на вашем сервере.

Сгенерируйте сертификат группы Диффи-Хеллмана.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Откройте файл /etc/letsencrypt/renewal/calibre.example.com.conf для редактирования.

$ sudo nano /etc/letsencrypt/renewal/calibre.example.com.conf

Вставьте следующий код внизу.

pre_hook = systemctl stop nginx
post_hook = systemctl start nginx

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Мы сгенерировали SSL-сертификат, используя автономный вариант Certbot. Он запускает свой веб-сервер для создания сертификата, что означает, что Nginx должен быть выключен во время обновления. Команды pre_hook и post_hook выполняются до и после обновления, чтобы автоматически остановить и перезапустить сервер Nginx, тем самым не требуя ручного вмешательства.

Чтобы проверить, работает ли обновление SSL, выполните пробный запуск процесса.

$ sudo certbot renew --dry-run

Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.

Шаг 10 - Настройка Nginx

Откройте файл /etc/nginx/nginx.conf для редактирования.

$ sudo nano /etc/nginx/nginx.conf

Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Создайте и откройте файл /etc/nginx/conf.d/calibre.conf для редактирования.

$ sudo nano /etc/nginx/conf.d/calibre.conf

Вставьте следующий код в него. Замените calibre.example.com на ваше доменное имя. Мы установили значение переменной client_max_body_size на 50 МБ. Вы можете изменить его в соответствии с вашими требованиями.

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    http2_push_preload on; # Включить HTTP/2 Server Push
    
    # Включить 0-RTT TLSv1.3. Используйте $ssl_early_data при обратном проксировании, чтобы
    # предотвратить атаки повторного воспроизведения.
    #
    # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
    ssl_early_data on;

    server_name calibre.example.com;

    client_max_body_size 50M;

    access_log  /var/log/nginx/calibre.access.log;
    error_log   /var/log/nginx/calibre.error.log;

    ssl_certificate      /etc/letsencrypt/live/calibre.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/calibre.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/calibre.example.com/chain.pem;
    
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;        
    }
}
# принудить HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  calibre.example.com;
    return 301   https://$host$request_uri;
}

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Проверьте конфигурацию Nginx.

$ sudo nginx -t

Перезапустите сервер Nginx, чтобы включить файлы конфигурации.

$ sudo systemctl restart nginx

Посетите https://calibre.example.com в вашем браузере, чтобы получить доступ к Calibre. Вы можете увидеть, что книга, добавленная через Cron, также доступна в библиотеке.

Обновление библиотеки Calibre

Заключение

Это завершает наше руководство по установке сервера Calibre на машину с Ubuntu 22.04 с использованием Nginx. Мы также настроили Calibre для включения базовой аутентификации и добавления поддержки для автоматического добавления новых книг. Сервер Calibre поставляется с множеством инструментов командной строки. Чтобы узнать больше о них, вы можете посетить документацию Calibre. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.