Calibre-Web на Ubuntu 24.04: пошаговая установка
Домашняя библиотека книг обычно живёт где попало: часть в папке на ноутбуке, часть в читалке, часть в облаке, до которого не всегда есть доступ. Calibre-Web решает это одним движением — превращает вашу коллекцию в веб-сайт, доступный с телефона, планшета или чужого компьютера через браузер, без установки клиентов и синхронизации файлов вручную. Ниже — пошаговая установка Calibre-Web на Ubuntu 24.04 в изолированном окружении, с автозапуском через systemd, доступом по HTTPS и настройкой для читалок.
Содержание
- Что такое Calibre-Web и чем он отличается от десктопного Calibre
- Подготовка сервера: пользователь и зависимости
- Установка Calibre-Web в изолированном окружении
- Автозапуск через systemd
- Публикация по HTTPS через Nginx
- Импорт библиотеки, загрузка книг и OPDS для читалок
- Бэкап библиотеки и обновление Calibre-Web
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое Calibre-Web и чем он отличается от десктопного Calibre
Calibre — это классическое десктопное приложение для управления библиотекой книг: конвертация форматов, редактирование метаданных, отправка на Kindle. Calibre-Web — отдельный проект, веб-надстройка над той же файловой структурой библиотеки (файл metadata.db плюс папки с книгами). Он не запускает и не требует запущенного десктопного Calibre — читает и пишет ту же базу напрямую.
На практике это значит: сервер работает как маленький сайт с вашими книгами. Заходите с любого устройства, ищете по названию, автору, серии, читаете epub и pdf прямо в браузере через встроенную читалку, отправляете книгу на почту Kindle, скачиваете в нужном формате. Для нескольких человек в семье или небольшой команды работает многопользовательский режим с раздельными правами — кому-то только читать, кому-то ещё и загружать новые книги.
Важный нюанс: часть функций (конвертация форматов, редактирование обложек и метаданных «на лету») требует установленных консольных утилит из пакета calibre — ebook-convert, ebook-meta. Без них Calibre-Web всё равно работает как читалка и каталог, просто без конвертации между форматами.
Подготовка сервера: пользователь и зависимости
Работать под root неудобно и небезопасно — заведите отдельного системного пользователя и рабочие каталоги. Дальше все команды выполняются от root или через sudo.
apt update && apt upgrade -y
apt install -y python3-venv python3-pip python3-dev libldap2-dev libsasl2-dev libmagic1 unrar-free calibre
useradd -r -m -d /opt/calibre-web -s /usr/sbin/nologin calibreweb
mkdir -p /opt/calibre-web/{app,library,config}
chown -R calibreweb:calibreweb /opt/calibre-web
Пакет calibre из репозиториев Ubuntu 24.04 обычно отстаёт от последнего релиза на calibre-ebook.com, но для целей Calibre-Web (конвертация, метаданные) это не критично — используются только консольные утилиты, не графический интерфейс. Пакет unrar-free нужен, если в библиотеке есть комиксы в формате cbr — без распаковщика Calibre-Web не сможет их открыть. libldap2-dev и libsasl2-dev пригодятся, только если планируете подключать LDAP-аутентификацию; для обычной установки с локальными пользователями их можно пропустить, но лишними не будут.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверУстановка Calibre-Web в изолированном окружении
Ставить пакет Python-приложения системным pip — плохая идея: рано или поздно он поссорится с системными пакетами Ubuntu. Создайте виртуальное окружение под пользователем calibreweb и ставьте всё внутрь него.
su -s /bin/bash calibreweb -c "python3 -m venv /opt/calibre-web/venv"
su -s /bin/bash calibreweb -c "/opt/calibre-web/venv/bin/pip install --upgrade pip wheel"
su -s /bin/bash calibreweb -c "/opt/calibre-web/venv/bin/pip install calibreweb"
Если версия в PyPI на момент установки заметно отстаёт от актуальной ветки проекта на GitHub (janeczku/calibre-web), можно поставить из исходников — иногда там раньше появляются исправления багов:
su -s /bin/bash calibreweb -c "
git clone https://github.com/janeczku/calibre-web.git /opt/calibre-web/app
/opt/calibre-web/venv/bin/pip install -r /opt/calibre-web/app/requirements.txt
"
Проверьте, что сервис вообще стартует, до того как оборачивать его в systemd. Запустите вручную от пользователя calibreweb и загляните в браузере на http://IP-сервера:8083.
su -s /bin/bash calibreweb -c "/opt/calibre-web/venv/bin/calibreweb --port 8083"
Если видите страницу первичной настройки — всё поднялось, останавливайте (Ctrl+C) и переходите к автозапуску. Если порт закрыт файрволом, временно откройте его для проверки, детали настройки ufw разобраны в статье про файрвол UFW на Ubuntu 24.04 — в продакшене порт 8083 лучше вообще не открывать наружу, доступ пойдёт через Nginx.
Автозапуск через systemd
Ручной запуск в терминале умрёт при перезагрузке сервера или закрытии сессии SSH. Оформите Calibre-Web как системную службу.
cat > /etc/systemd/system/calibre-web.service << 'EOF'
[Unit]
Description=Calibre-Web
After=network.target
[Service]
Type=simple
User=calibreweb
Group=calibreweb
WorkingDirectory=/opt/calibre-web
ExecStart=/opt/calibre-web/venv/bin/calibreweb --port 8083
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now calibre-web
systemctl status calibre-web
Если ставили из исходников через git clone, вместо готового скрипта calibreweb в ExecStart укажите путь к cps.py: /opt/calibre-web/venv/bin/python3 /opt/calibre-web/app/cps.py. Логи службы смотрите через journalctl -u calibre-web -f — пригодится, если после правки конфига сервис не поднимается.
Публикация по HTTPS через Nginx
Отдавать сервис напрямую на порту 8083 в интернет не стоит: и трафик идёт без шифрования, и порт светится в любом сканере. Поставьте перед Calibre-Web обратный прокси Nginx с сертификатом Let's Encrypt — тем более что домен всё равно нужен для удобного доступа с читалок.
apt install -y nginx certbot python3-certbot-nginx
Направьте A-запись домена на IP сервера и создайте конфиг сайта с проксированием на локальный порт:
server {
listen 80;
server_name books.example.com;
location / {
proxy_pass http://127.0.0.1:8083;
proxy_set_header Host $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;
client_max_body_size 200M;
}
}
Параметр client_max_body_size важен отдельно — по умолчанию Nginx режет загрузку файлов больше 1 МБ, а книги в форматах djvu или сканы в pdf легко весят десятки мегабайт. Подробный разбор настройки обратного прокси и типичных ошибок — в статье Nginx как реверс-прокси на Ubuntu 24.04. После проверки конфига (nginx -t) и перезапуска получите сертификат:
certbot --nginx -d books.example.com
Certbot сам пропишет редирект с 80-го порта на HTTPS и настроит таймер автопродления. Проверить, что продление реально работает, а не просто числится в systemd, стоит заранее — если сертификат всё же не обновится сам, разбор причин есть в статье сертификат SSL не обновился.
Импорт библиотеки, загрузка книг и OPDS для читалок
При первом заходе на адрес сервиса откроется мастер настройки. Стандартные учётные данные администратора — admin / admin123, их нужно сменить сразу же в настройках пользователя, иначе библиотека открыта любому, кто найдёт адрес.
Ключевой шаг мастера — путь к библиотеке. Calibre-Web не создаёт библиотеку из воздуха, ему нужен существующий файл metadata.db в указанной папке. Если библиотеки ещё нет, самый простой способ инициализировать её — добавить первую книгу через консольную утилиту calibredb, она сама создаст структуру:
su -s /bin/bash calibreweb -c "calibredb add /путь/к/первой-книге.epub --library-path=/opt/calibre-web/library"
Если библиотека уже существует на другой машине (например, в десктопном Calibre), просто скопируйте всю папку библиотеки целиком — вместе с metadata.db и подпапками книг — в /opt/calibre-web/library и выставьте владельцем calibreweb:
rsync -av /путь/к/старой/библиотеке/ /opt/calibre-web/library/
chown -R calibreweb:calibreweb /opt/calibre-web/library
После указания пути в мастере укажите этот же путь в настройках — и библиотека появится в интерфейсе. Дальше книги можно загружать прямо через веб-интерфейс (кнопка загрузки, поддерживает epub, mobi, pdf, cbr/cbz и другие форматы), редактировать метаданные и обложки в браузере, читать epub и pdf во встроенной читалке без скачивания файла на устройство.
Отдельно стоит настроить два момента для удобства чтения на телефонах и читалках:
- Отправка на Kindle — в настройках профиля пользователя укажите SMTP-сервер и email-адрес Kindle, тогда книга уйдёт на устройство одним кликом прямо с сервера.
- OPDS-каталог по адресу
https://books.example.com/opds— стандартный протокол, который понимают приложения вроде KOReader, Moon+ Reader, Aldiko. Читалка подключается к этому адресу как к книжному магазину и синхронизирует список книг напрямую, без ручного копирования файлов через USB или облако.
Бэкап библиотеки и обновление Calibre-Web
Библиотека — это, по сути, папка с файлами и одна SQLite-база metadata.db, поэтому бэкап устроен просто: копировать /opt/calibre-web/library (сами книги и метаданные) и /opt/calibre-web/.calibre-web или директорию конфигурации (app.db с пользователями и настройками). Делать это стоит регулярно и хранить копию не на том же диске, что и оригинал — если интересует автоматизация с версионированием и дедупликацией, в статье про BorgBackup на Ubuntu 24.04 описана настройка с нуля.
Обновление в venv-установке — это обновление одного пакета:
systemctl stop calibre-web
su -s /bin/bash calibreweb -c "/opt/calibre-web/venv/bin/pip install --upgrade calibreweb"
systemctl start calibre-web
Перед крупным обновлением (например, при переходе через мажорную версию) сделайте свежий бэкап app.db — база настроек иногда мигрирует схему, и откатиться проще из копии, чем разбирать логи миграции. Для библиотеки с несколькими сотнями гигабайт книг и сканов имеет смысл держать сервер с диском на вырост — если текущий тариф начинает упираться в место или скорость чтения при листании крупных pdf, конфигурацию у MAATRIX можно поменять на более объёмную без переустановки всего окружения с нуля, оплата доступна из России картой, СБП или криптой.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Можно ли запустить Calibre-Web в Docker вместо venv?
Да, у проекта есть официальный образ, и это часто даже проще для тех, кто не хочет вручную настраивать systemd и виртуальное окружение. Venv-вариант из этой статьи удобен, когда сервер и так используется без Docker и хочется минимум лишних слоёв.
Почему при добавлении библиотеки Calibre-Web пишет, что metadata.db не найден?
Библиотека Calibre — это не просто папка с файлами, а именно набор с файлом metadata.db в корне. Либо скопируйте существующую библиотеку целиком, либо создайте её первой командой calibredb add, как показано выше.
Нужен ли доступ в интернет для распознавания метаданных книг?
Да, автоматический поиск обложек и описаний по названию использует внешние источники (Google Books, Amazon и другие в зависимости от настроек). Без интернета метаданные придётся вносить вручную.
Как ограничить доступ по IP или добавить второй уровень авторизации?
Проще всего — на уровне Nginx, добавить Basic Auth поверх встроенной аутентификации Calibre-Web или ограничить allow/deny по адресам в конфиге сайта. Штатная многопользовательская система при этом остаётся отдельным уровнем прав внутри приложения.
Почему не открываются файлы cbr после установки?
Скорее всего не хватает распаковщика rar. В Ubuntu 24.04 доступен пакет unrar-free, его функциональности достаточно для большинства архивов, но с некоторыми свежими алгоритмами сжатия rar5 он может не справиться — тогда потребуется собрать полноценный unrar из исходников или сконвертировать архивы в cbz заранее.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →