Calibre — это универсальное решение для управления электронными книгами, поддерживающее форматы EPUB, MOBI, PDF и другие. Calibre Server позволяет превратить ваш сервер в личное облачное хранилище книг, доступное через браузер. В этой статье вы узнаете, как установить Calibre, настроить сервер, организовать библиотеку и защитить доступ с помощью современных методов аутентификации и шифрования.

Подготовка сервера и настройка файрвола
Перед установкой Calibre необходимо убедиться, что сервер готов к безопасной работе. Одним из таких шагов обеспечения безопасности является настройка файрвола для разрешения необходимых сетевых подключений. Мы рассмотрим настройку с использованием двух популярных инструментов: ufw (Uncomplicated Firewall) и firewalld.
Настройка файрвола с помощью ufw
ufw — это простой инструмент для управления iptables, часто используемый в дистрибутивах на основе Debian.
- Проверка статуса файрвола
Убедитесь, что файрвол активен:
sudo ufw status
Если он неактивен, включите его:
sudo ufw enable
- Открытие портов
Calibre Server по умолчанию использует порт 8080 для HTTP. Если вы планируете настроить HTTPS (рекомендуется), также откройте порт 443. Выполните команды:
sudo ufw allow 8080/tcp
sudo ufw allow 443/tcp
Проверьте статус:
sudo ufw status
Ожидаемый вывод:
Status: active
To Action From
-- ------ ----
8080/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
Настройка файрвола с помощью firewalld
firewalld — это динамический инструмент управления файрволом, распространённый в дистрибутивах, таких как Fedora, CentOS и RHEL.
- Проверка статуса файрвола
Убедитесь, что firewalld установлен и запущен:
sudo systemctl status firewalld
Если служба неактивна, включите и запустите её:
sudo systemctl enable firewalld
sudo systemctl start firewalld
- Открытие портов
Разрешите трафик на портах 8080 (HTTP) и 443 (HTTPS):
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
Перезагрузите конфигурацию файрвола:
sudo firewall-cmd --reload
- Проверка открытых портов
Убедитесь, что порты добавлены:
sudo firewall-cmd --list-ports
Ожидаемый вывод:
8080/tcp 443/tcp
💡Примечание: Если вы используете другой инструмент управления файрволом (например, iptables напрямую), убедитесь, что порты 8080 и 443 открыты для входящих соединений. Обратитесь к документации вашего дистрибутива для соответствующих команд.

Установка Calibre
Calibre предоставляет официальный установочный скрипт для Linux, который упрощает процесс установки. На момент написания статьи актуальная версия Calibre — 8.4, и мы будем использовать её. Однако для работы Calibre требуется современная версия GNU libc (как минимум 2.35), что может быть проблемой на некоторых дистрибутивах.
Установка зависимостей
Calibre требует несколько библиотек для корректной работы графических и системных компонентов. Установите их с помощью менеджера пакетов вашего дистрибутива. Например, для систем на базе apt выполните:
sudo apt update
sudo apt install -y libfontconfig1 libegl1 libopengl0 libxcb-cursor0 libxkbcommon0 libgl1 libglx0 libxcomposite1 libxdamage1 libxrandr2 libxtst6 libasound2 libxkbfile1
Для систем на базе dnf (Fedora и подобные):
sudo dnf install -y fontconfig libEGL libxcb libxkbcommon libglvnd-glx libXcomposite libXdamage libXrandr libXtst alsa-lib libxkbfile
Проверка системных требований
Перед установкой проверьте версию GNU libc на вашей системе:
ldd --version
Ожидаемый вывод должен содержать строку, например:
ldd (GNU libc) 2.35
Если версия ниже 2.35 (например, 2.28), вы получите ошибку при установке Calibre. В таком случае рассмотрите следующие варианты:
- Обновление системы: Если ваш дистрибутив поддерживает обновление до более новой версии, выполните:
sudo dnf update --refresh
или для систем на базе apt:
sudo apt update && sudo apt full-upgrade
После обновления проверьте версию GNU libc снова.
- Использование контейнера: Если обновление системы невозможно (например, для AlmaLinux 8, где GNU libc 2.28 является стандартной), используйте Docker или Podman для запуска Calibre в контейнере. Установите Docker:
sudo dnf install -y docker
sudo systemctl enable --now docker
Затем запустите Calibre в контейнере:
sudo docker run -d -p 8080:8080 -v ~/calibre-library:/calibre-library linuxserver/calibre
Это обходит проблему с версией GNU libc, так как контейнер содержит все необходимые зависимости.
- Статическая сборка Calibre: Если контейнеры не подходят, скачайте статическую сборку Calibre, которая не зависит от системной версии GNU libc:
wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin version=<version>
⚠️ Замените <version> на необходимую версию calibre
💡Примечание: Для этой статьи мы будем использовать стандартный установочный скрипт, предполагая, что версия GNU libc соответствует требованиям. Если вы используете контейнер, настройка сервера будет аналогична, но с использованием Docker-команд.
Загрузка и установка Calibre
Загрузите официальный установочный скрипт:
wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh
Этот скрипт автоматически устанавливает последнюю версию Calibre в /opt/calibre.
Проверьте установку:
calibre --version
Ожидаемый вывод:

Создание и наполнение библиотеки
Calibre хранит книги в структурированной библиотеке, которая представляет собой каталог с метаданными и файлами книг.
Создание каталога библиотеки
Создайте директорию для хранения библиотеки:
mkdir ~/calibre-library
Добавление книг
Для примера добавим бесплатную книгу из Project Gutenberg:
wget https://www.gutenberg.org/ebooks/84.kindle.images -O frankenstein.mobi
calibredb add frankenstein.mobi --with-library ~/calibre-library
Команда calibredb добавляет книгу в библиотеку, автоматически извлекая метаданные (название, автор, обложка). Вы можете добавлять книги в любых форматах, поддерживаемых Calibre (EPUB, MOBI, PDF и др.).

Запуск Calibre Server
Calibre Server позволяет получить доступ к библиотеке через веб-интерфейс. Запустите сервер командой:
calibre-server --port 8080 ~/calibre-library
Сервер будет доступен по адресу http://<ваш_IP>:8080. Откройте этот адрес в браузере, чтобы убедиться, что сервер работает.
💡Примечание: Если порт 8080 занят или заблокирован, выберите другой порт (например, 8081) с помощью флага —port. Откройте новый порт в файрволе:
Bashsudo ufw allow 8081/tcp
или для firewalld:
Bashsudo firewall-cmd --permanent --add-port=8081/tcp sudo firewall-cmd --reload

Настройка Calibre Server как системной службы
Для автоматического запуска сервера при загрузке системы создадим systemd-юнит.
Создание systemd-юнита
- Создайте файл службы:
sudo nano /etc/systemd/system/calibre-server.service
- Добавьте следующее содержимое, заменив <username> на имя вашего пользователя:
[Unit]
Description=Calibre Content Server
After=network.target
[Service]
Type=simple
User=<username>
Group=<username>
ExecStart=/opt/calibre/calibre-server /home/<username>/calibre-library --port 8080 --enable-local-write
Restart=on-failure
[Install]
WantedBy=multi-user.target
- Перезагрузите конфигурацию systemd и запустите службу:
sudo systemctl daemon-reload
sudo systemctl enable calibre-server
sudo systemctl start calibre-server
- Проверьте статус службы:
sudo systemctl status calibre-server
Убедитесь, что служба активна (active (running)).

Настройка аутентификации и безопасности
Для защиты библиотеки от несанкционированного доступа настроим аутентификацию и (опционально) HTTPS.
Настройка аутентификации
Остановите сервер:
sudo systemctl stop calibre-server
Добавьте пользователя для доступа к серверу:
calibre-server --manage-users
Выберите опцию 1 (Add a new user) и следуйте инструкциям для создания имени пользователя и пароля.
Отредактируйте файл службы, чтобы включить аутентификацию:
sudo nano /etc/systemd/system/calibre-server.service
Измените строку ExecStart:
ExecStart=/opt/calibre/calibre-server /home/<username>/calibre-library --port 8080 --userdb /home/<username>/.config/calibre/server-users.sqlite --enable-auth --enable-local-write
Перезапустите службу:
sudo systemctl daemon-reload
sudo systemctl start calibre-server
Теперь при входе на http://<ваш_IP>:8080 потребуется ввести логин и пароль.

Настройка HTTPS (опционально)
Для повышения безопасности рекомендуется настроить HTTPS с использованием SSL-сертификата. Используйте Let’s Encrypt для бесплатного сертификата:
- Установите Certbot:
sudo apt install -y certbot
или для систем на базе dnf:
sudo dnf install -y certbot
💡Примечание: Возможно потребуется дополнительно установить репозитории EPEL:
Bashsudo dnf install epel-release
- Получите сертификат:
sudo certbot certonly --standalone -d <ваш_домен>
- Измените ExecStart, добавив флаги —ssl-cert и —ssl-key:
ExecStart=/opt/calibre/calibre-server /home/<username>/calibre-library --port 443 --userdb /home/<username>/.config/calibre/server-users.sqlite --enable-auth --enable-local-write --ssl-cert /etc/letsencrypt/live/<ваш_домен>/fullchain.pem --ssl-key /etc/letsencrypt/live/<ваш_домен>/privkey.pem
- Откройте порт 443 в файрволе (если ещё не открыт):
sudo ufw allow 443/tcp
или для firewalld:
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
- Перезапустите службу:
sudo systemctl daemon-reload
sudo systemctl start calibre-server
Оптимизация и дополнительные функции
Оптимизация производительности
- Кэширование метаданных: Calibre Server автоматически кэширует метаданные книг для ускорения загрузки. Убедитесь, что у сервера достаточно дискового пространства для хранения кэша.
- Ограничение трафика: Используйте флаг —max-opds-items для ограничения количества книг, отображаемых в OPDS-каталоге, чтобы снизить нагрузку:
calibre-server --max-opds-items 50 ~/calibre-library
Интеграция с мобильными приложениями
Calibre Server поддерживает OPDS-протокол, позволяющий подключаться к библиотеке через приложения, такие как Moon+ Reader или FBReader. Введите адрес http://<ваш_IP>:8080/opds в приложении для доступа к каталогу.
Заключение.
Вы успешно настроили Calibre Server для управления библиотекой электронных книг. Теперь вы можете:
- Получать доступ к книгам через веб-интерфейс или мобильные приложения.
- Защищать библиотеку с помощью аутентификации и HTTPS.
- Автоматически запускать сервер при загрузке системы.
Calibre Server — это мощный инструмент для создания личного облачного хранилища книг. Если у вас остались вопросы или вы хотите узнать о дополнительных настройках, оставляйте комментарии. Поделитесь статьёй с друзьями, чтобы они тоже могли организовать свою библиотеку!
Was this helpful?
2 / 0