Установка сервера · 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:// в вашем браузере, и вы получите следующий экран. Экран будет отображаться темным или светлым в зависимости от выбора темы вашей операционной системы.

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

Закройте сервер, нажав клавиши 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 библиотеки, вам будет предложено ввести имя пользователя и пароль перед тем, как получить доступ к ней. Введите свои учетные данные и нажмите кнопку Войти, чтобы получить доступ к библиотеке.

Шаг 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 и удалит все оригинальные файлы, так как они больше не нужны. Вышеуказанная задача будет выполняться каждые 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 на машину с Ubuntu 22.04 с использованием Nginx. Мы также настроили Calibre для включения базовой аутентификации и добавления поддержки для автоматического добавления новых книг. Сервер Calibre поставляется с множеством инструментов командной строки. Чтобы узнать больше о них, вы можете посетить документацию Calibre. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.