Установка и запуск Calibre content server на Ubuntu 20.04
Calibre — бесплатный менеджер электронных книг, который можно запустить как сервер на Ubuntu 20.04: установить пакет напрямую с сайта проекта, создать библиотеку, запустить calibre-server, настроить systemd‑сервис для автозапуска, добавить авторизацию пользователей, организовать «watch folder» для автоматической подстановки книг и поставить Nginx с Let’s Encrypt для HTTPS и домена. В статье пошаговые команды, примеры конфигураций и рекомендации по безопасности.

Введение
Calibre — это бесплатный и открытый менеджер электронных книг. Он доступен как кроссплатформенное настольное приложение и как серверный компонент. Запуск calibre в режиме сервера позволяет получить удалённый доступ к вашей библиотеке, делиться книгами с родственниками и переносить их на мобильные устройства. Кроме того, Calibre Server предоставляет веб-интерфейс для чтения электронных книг прямо в браузере.
В этом руководстве подробно описано, как установить и настроить Calibre content server на сервере с Ubuntu 20.04, включая настройку брандмауэра, автоматику добавления книг, организацию автозапуска через systemd, защиту с помощью Nginx и SSL, а также несколько практических чеклистов и сценариев на случай проблем.
Кому подойдет это руководство
Кому это полезно: системным администраторам, владельцам домашних серверов, техно-энтузиастам, желающим организовать приватную библиотеку с удалённым доступом.
Определение: Calibre content server — компонент Calibre, который раздаёт веб‑интерфейс, API и OPDS‑ленты для библиотеки электронных книг.
Необходимые требования
- Сервер под управлением Ubuntu 20.04 с пользователем, имеющим sudo‑привилегии.
- Поддерживаемый объём дискового пространства для хранения книг (зависит от вашей коллекции).
- Подключение к интернету для установки пакетов и получения сертификатов SSL.
- (Рекомендуется) доменное имя, указывающее на сервер для удобного доступа и настройки HTTPS.
Выполните обновление системы перед началом:
$ sudo apt update && sudo apt upgradeНастройка брандмауэра
Ubuntu 20.04 обычно поставляется с UFW (Uncomplicated Firewall). Если он не установлен — установите его.
$ sudo apt install ufwОткройте SSH, чтобы не потерять доступ к серверу:
$ sudo ufw allow "OpenSSH"Включите брандмауэр:
$ sudo ufw enableCalibre по умолчанию работает на порту 8080, откройте его:
$ sudo ufw allow 8080Проверка статуса UFW:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
8080 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
8080 (v6) ALLOW Anywhere (v6)Важно: если вы позже будете проксировать через Nginx и использовать HTTPS, порт 8080 можно закрыть и использовать локальный прокси (127.0.0.1:8080).
Установка Calibre Server
Хотя Ubuntu предоставляет пакет calibre, рекомендуется поставить последнюю версию с официального сайта разработчиков.
Установите зависимости, необходимые для корректной работы Calibre на headless‑сервере:
$ sudo apt install libfontconfig libgl1-mesa-glxСкачайте инсталлятор:
$ wget https://download.calibre-ebook.com/linux-installer.shСделайте скрипт исполняемым и запустите его:
$ chmod +x ./linux-installer.sh
$ sudo ./linux-installer.shИнсталлятор рассчитан на рабочую систему с GUI и может выводить предупреждения на headless‑сервере — их безопасно игнорировать.
Создание библиотеки и добавление первой книги
Для примера загрузим книгу с Project Gutenberg. Это большой репозиторий бесплатных книг в общественном достоянии.
Загрузим «The Turn of the Screw» в формате MOBI:
$ wget http://www.gutenberg.org/ebooks/209.kindle.noimages -O turnofthescrew.mobiСоздайте директорию библиотеки:
$ mkdir calibre-libraryДобавьте книгу в библиотеку с помощью утилиты calibredb:
$ calibredb add *.mobi --with-library calibre-library/
Added book ids: 1Если у вас много файлов, calibredb умеет рекурсивно добавлять директории.
Запуск calibre-server
Запустите сервер так, чтобы он раздавал созданную библиотеку:
$ calibre-server calibre-librarycalibre-server — основная команда, calibre-library — директория с вашей библиотекой.
При успешном запуске вы увидите примерно такой вывод:
calibre server listening on 0.0.0.0:8080
OPDS feeds advertised via BonJour at: your_server_ip port: 8080Откройте в браузере адрес http://

Кликнув по каталогу calibre-library, вы увидите добавленную книгу.

Остановить сервер можно сочетанием клавиш Ctrl+C.
По умолчанию используется порт 8080. Чтобы запустить на другом порту, добавьте флаг –port:
$ calibre-server calibre-library --port 7530Не забудьте открыть этот порт в UFW:
$ sudo ufw allow 7530Создание systemd сервиса для автозапуска
Чтобы Calibre запускался автоматически после перезагрузки, создайте systemd‑сервис.
Откройте файл /etc/systemd/system/calibre-server.service:
$ sudo nano /etc/systemd/system/calibre-server.serviceВставьте следующий блок, заменив
## startup service
[Unit]
Description=calibre content server
After=network.target
[Service]
Type=simple
User=
Group=
ExecStart=/opt/calibre/calibre-server /home//calibre-library --enable-local-write
[Install]
WantedBy=multi-user.target Сохраните файл и выполните:
$ sudo systemctl enable calibre-server
$ sudo systemctl start calibre-serverЕсли вы изменили файл сервиса — перезапустите демона:
$ sudo systemctl daemon-reload
$ sudo systemctl restart calibre-serverПроверьте работу после перезагрузки:
$ sudo rebootПодождите пару минут и откройте http://
Добавление аутентификации пользователей
По умолчанию сервер открыт для всех, кто знает IP. Добавим пользовательскую базу и включим авторизацию.
Остановите сервис:
$ sudo systemctl stop calibre-serverЗапустите менеджер пользователей calibre и укажите путь для хранения базы пользователей (SQLite):
$ sudo calibre-server --userdb /home//.config/calibre/server-users.sqlite --manage-users
1) Add a new user
2) Edit an existing user
3) Remove a user
4) Cancel
What do you want to do? [1-4]: 1
Enter the username: howtoforge
Enter the new password for howtoforge:
Re-enter the new password for howtoforge, to verify:
User howtoforge added successfully! Создайте пользователя и задайте надежный пароль.
Добавьте флаги авторизации в systemd‑сервис, изменив строку ExecStart следующим образом:
ExecStart=/opt/calibre/calibre-server "/home//calibre-library" --userdb "/home//.config/calibre/server-users.sqlite" --enable-local-write --enable-auth После редактирования перезагрузите демон и запустите сервис:
$ sudo systemctl daemon-reload
$ sudo systemctl start calibre-serverПри следующем входе в веб‑интерфейс потребуется логин и пароль.

Автоматическое добавление книг в библиотеку (watch folder)
Calibre умеет автоматически добавлять файлы из указанной директории. Это удобно для автоматизации загрузки.
Создайте папку наблюдения и перейдите в неё:
$ mkdir ~/watchbooks
$ cd ~/watchbooksПример загрузки новой книги в папку:
$ wget http://www.gutenberg.org/ebooks/514.epub.noimages -o littlewomen.epubОткройте crontab для пользователя, который будет выполнять добавление:
$ crontab -eДобавьте задачу, которая каждые 5 минут будет добавлять файлы из папки и затем очищать её:
*/5 * * * * calibredb add /home//watchbooks/ -r --with-library http://localhost:8080#calibre-library --username calibreuser --password YourPassword && rm -r /home//watchbooks/* Пояснения:
- calibredb add с URL вида http://localhost:8080#calibre-library добавляет в удалённую библиотеку через локальный сервер;
- опция -r рекурсивно добавляет файлы; после добавления файлы удаляются.
Подождите несколько минут и обновите веб‑страницу — новая книга должна появиться.
Важно: храните пароли с осторожностью. Для большей безопасности используйте локальный скрипт с чтением пароля из защищённого файла с правами 600.
Установка и настройка Nginx как обратного прокси
Чтобы иметь доступ через доменное имя и HTTPS, поставим Nginx и настроим проксирование на локальный Calibre‑сервер.
Установите Nginx:
$ sudo apt install nginxОткройте порты 80 и 443 и закройте 8080 (если вы будете доступать через прокси снаружи):
$ sudo ufw allow "Nginx Full"
$ sudo ufw delete allow 8080Проверка статуса:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full ALLOW Anywhere (v6)Получение SSL‑сертификата от Let’s Encrypt
Установите certbot:
$ sudo apt install certbotНужно временно остановить Nginx, чтобы certbot мог слушать 80 порт:
$ sudo systemctl stop nginxЗапустите certbot в режиме standalone, заменив переменные на ваше доменное имя и email:
$ export LDOMAIN="calibre.yourdomain.com"
$ export LEMAIL="[email protected]"
$ sudo certbot certonly --standalone -d $LDOMAIN --preferred-challenges http --agree-tos -n -m $LEMAIL --keep-until-expiring
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Добавьте cron для автоматического обновления сертификатов (пример запуска в 02:25):
$ sudo crontab -e
25 2 * * * /usr/bin/certbot renew --quiet --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"Проверьте, что cron записан корректно. certbot обычно умеет сам обновлять сертификаты, но crontab обеспечивает дополнительную надежность.
Конфигурация Nginx для проксирования Calibre через HTTPS
Создайте файл конфигурации Nginx, например /etc/nginx/sites-available/calibre.conf:
$ sudo nano /etc/nginx/sites-available/calibre.confВставьте следующий пример, заменив calibre.yourdomain.com на ваше доменное имя:
server {
listen 80;
listen [::]:80;
server_name calibre.yourdomain.com;
# enforce https
return 301 https://$server_name:443$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name calibre.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
ssl_certificate /etc/letsencrypt/live/calibre.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/calibre.yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
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_prefer_server_ciphers off;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
}Активируйте конфигурацию и проверьте синтаксис:
$ sudo ln -s /etc/nginx/sites-available/calibre.conf /etc/nginx/sites-enabled/
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl reload nginxТеперь сайт должен быть доступен по https://calibre.yourdomain.com.
Рекомендации по безопасности
- Используйте auth (–enable-auth) и сильные пароли для всех пользователей.
- Ограничьте доступ по IP к админским функциям, если это возможно.
- Храните файлы базы пользователей и библиотеки с правами, ограничивающими доступ (например, 700 для домашней папки пользователя и 600 для файлов sqlite).
- Регулярно обновляйте систему и сам Calibre.
- Для автоматического добавления книг используйте локальные скрипты и не передавайте пароли в открытом виде в crontab; предпочтительнее — файл конфигурации с правами 600 или systemd‑таймер с защищённой переменной.
Проблемы и их решения
- Сервер не запускается: проверьте логи systemd: sudo journalctl -u calibre-server -e.
- Ничего не отображается в вебе: убедитесь, что ExecStart указывает на корректную директорию библиотеки и что calibre-server слушает 127.0.0.1:8080 или 0.0.0.0:8080.
- Проблемы с сертификатом: проверьте /etc/letsencrypt/live и логи certbot.
- Неправильные права доступа к базе пользователей: убедитесь, что пользователь, под которым запускается service, имеет доступ к указанному файлу server-users.sqlite.
Чеклист по ролям
Администратор сервера
- Установить зависимости и Calibre
- Создать systemd‑сервис и настроить автозапуск
- Настроить брандмауэр и Nginx
- Настроить certbot и cron для автопродления
Владелец библиотеки
- Подготовить папку calibre-library
- Настроить watch folder и crontab или systemd таймер
- Создать пользователей и выдать права
Пользователь
- Получить логин/пароль
- Проверить доступ по HTTPS
- Сообщать об ошибках и просьбах по добавлению контента
Мини‑методология развертывания (быстрые шаги)
- Обновить систему.
- Установить зависимости и Calibre через официальный инсталлятор.
- Создать библиотеку и протестировать локально.
- Создать systemd‑сервис для автозапуска.
- Настроить пользователей и авторизацию.
- Настроить Nginx и получить SSL через certbot.
- Настроить watch folder и резервное копирование библиотеки.
Критерии приёмки
- При загрузке https://ваш-домен отображается веб‑интерфейс Calibre;
- Вход под созданным пользователем проходит успешно;
- Книги, добавленные в watch folder, появляются в библиотеке в течение интервала cron;
- После перезагрузки сервиса или сервера calibre‑сервис автоматически стартует.
Отказоустойчивость и откат
Если новое изменение сломало сервис (например, неверная конфигурация nginx):
- Откат конфигурации: sudo rm /etc/nginx/sites-enabled/calibre.conf и sudo systemctl reload nginx.
- Вернуть предыдущую версию systemd файла, если вы вносили правки: заменить и выполнить sudo systemctl daemon-reload; sudo systemctl restart calibre-server.
- Проверить логи: sudo journalctl -u calibre-server и sudo tail -n 200 /var/log/nginx/error.log.
Совместимость и миграция
- Если вы переносите библиотеку с другой машины, скопируйте всю директорию библиотеки (включая метаданные) и права владельца.
- Версии Calibre между релизами иногда меняют внутренние форматы метаданных: перед массовой миграцией протестируйте на копии.
Краткий глоссарий
- calibre-server — компонент Calibre, раздающий веб‑интерфейс;
- calibredb — утилита для управления библиотекой через CLI;
- OPDS — формат каталогов для загрузки книг в ридерах.
Частые сценарии тестирования
- Запуск и доступ по локальному IP: откройте http://localhost:8080 на сервере или http://
:8080 с другого хоста. - Проверка авторизации: зайдите по HTTPS и введите учетные данные.
- Проверка автоматического добавления: поместите EPUB/MOBI в watch folder и проверьте появление через 5–10 минут.
Заключение
Вы развернули Calibre content server на Ubuntu 20.04 с автозапуском, пользовательской аутентификацией, автоматическим добавлением книг и использованием Nginx + Let’s Encrypt для HTTPS и доступа по домену. Дальше рекомендуем настроить регулярное резервное копирование каталога calibre-library и мониторинг (например, через simple health check на страницу /) для своевременного обнаружения проблем.
Если остались вопросы, укажите конкретные ошибки или вывод команд — это поможет дать точные рекомендации.
Important: храните резервную копию библиотеки и базы пользователей до глобальных изменений.
Похожие материалы
Reddit не загружается в Chrome — как исправить
Как удалить историю прослушиваний в Apple Music
Как делать отличные фотографии на смартфон
VPN на Amazon Fire — настройка и тест
Создание сайта за минуты с Emmet