Booklore: Как создать цифровую библиотеку на сервере
Узнайте, как установить и настроить Booklore — современную цифровую библиотеку для self-hosted. Инструкция по Docker, конфигурации и управлению книгами.
Установка Docker и Docker Compose
Обновите систему и установите Docker Engine и Docker Compose Plugin.
sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
sudo apt install docker-compose-pluginСоздание структуры директорий
Создайте папки для конфигурации и библиотеки.
mkdir -p ~/booklore/{config,books}
cd ~/bookloreСоздание файла docker-compose.yml
Создайте файл конфигурации Docker Compose. Замените PUID и PGID на ваши (команда id -u и id -g).
version: '3.8'
services:
booklore:
image: ghcr.io/benjaminjonathan/b-booklore:latest
container_name: booklore
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Moscow
volumes:
- ./config:/config
- ./books:/books
ports:
- "3000:3000"
networks:
- booklore_net
networks:
booklore_net:
driver: bridgeЗапуск контейнера
Запустите контейнер в фоновом режиме и проверьте логи.
docker compose up -d
docker compose logs -fПервоначальная настройка (First Run)
Откройте браузер по адресу http://<IP-сервера>:3000. Пройдите регистрацию администратора, затем в настройках (Settings -> Library) укажите путь к библиотеке: /books. Нажмите 'Scan Library'.
Настройка Nginx Proxy Manager (Reverse Proxy и SSL)
Для безопасного доступа из интернета установите NPM. Создайте папку и файл docker-compose.yml для NPM, запустите его и настройте прокси на порт 3000 Booklore с получением SSL сертификата.
version: '3'
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencryptИмпорт книг и сканирование
Скопируйте файлы книг в папку ~/booklore/books. В интерфейсе Booklore нажмите 'Scan Library' для извлечения метаданных.
cp -r /path/to/books/* ~/booklore/books/Настройка бэкапа
Создайте скрипт для архивации данных. Не забудьте сделать его исполняемым (chmod +x backup.sh) и настроить cron.
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/путь/к/бэкапу"
docker compose stop
tar -czf $BACKUP_DIR/booklore_full_$DATE.tar.gz /путь/к/booklore
docker compose start
find $BACKUP_DIR -name "booklore_*.tar.gz" -mtime +7 -deleteИнтеграция с Calibre (опционально)
Запустите Calibre Content Server в Docker. В Booklore (Settings -> Integrations -> Calibre) укажите адрес сервера Calibre для поддержки конвертации.
docker run -d --name=calibre -p 8080:8080 -v /путь/к/calibre-library:/library -e USER=user -e PASSWORD=pass linuxserver/calibreBooklore: Создание собственной цифровой библиотеки и управления книгами для self-hosted энтузиастов
Введение
Современный цифровой книгообмен столкнулся с проблемой фрагментации: файлы разбросаны по устройствам, восприятие художественной литературы смешивается с научной, а выбор подходящего софта для чтения становится головоломкой. Книжные менеджеры вроде Calibre монструозны, а облачные сервисы требуют доверия к данным сторонних компаний. Для энтузиастов self-hosting, ценящих контроль и приватность, Booklore предлагает элегантное решение — современную библиотечную платформу, совместимую с Docker, с интуитивным веб-интерфейсом.
Этот гайд рассмотрит установку и настройку Booklore (v1.18.5) на собственном сервере, а также проверку интеграции, бэкапа и управления библиотекой.
Ключевые возможности Booklore v1.18.5 (обзор годичного релиза)
После года активной разработки, версия 1.18.5 представляет собой стабильное ядро для управления библиотекой.
- Веб-интерфейс: Полноценный современный UI для управления коллекциями, поиска и чтения.
- Форматы: Читает EPUB, PDF, FB2, AZW3 и ZIP-архивы книг (целевые форматы).
- Метаданные: Парсинг обложек и тегов (Dublin Core, Calibre-style).
- Пользователи: Мульти-пользовательская система с разграничением доступа (можно гостевой доступ).
- Чтение: Встроенный читалка (EPUB) и скачивание оригинальных файлов.
- Docker-совместимость: Официальный образ, настраиваемый через переменные окружения.
- API: RESTful API для интеграции с внешними инструментами.
- Импорт: Прямая загрузка или монтирование папок (сканирование директории).
- Интеграции: Поддержка Calibre-Server для конвертации.
Подготовка окружения: требования и первоначальная настройка
Booklore не требует мощного сервера, но нуждается в стабильном окружении.
Минимальные требования:
- Сервер: VPS или домашний ПК (1-2 ядра, 1-2 ГБ RAM).
- ОС: Linux (Ubuntu/Debian рекомендованы), Windows Server или macOS.
- Docker: Docker Engine и Docker Compose (версия 2.x).
- Сетевой доступ: Порт по умолчанию:
3000. - Дисковое пространство: Минимум 100 МБ для системы + место под библиотеку.
Первоначальная настройка сервера:
-
Обновление системы:
sudo apt update && sudo apt upgrade -y -
Установка Docker и Docker Compose: Для Ubuntu/Debian:
# Установка Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # Добавление пользователя в группу docker (чтобы не использовать sudo) sudo usermod -aG docker $USER # Активация группы (войдите и выйдите или выполните) newgrp docker # Установка Docker Compose (плагин) sudo apt install docker-compose-pluginПроверка:
docker compose version. -
Создание структуры директорий: Создадим папки для конфигов, данных и самих книг.
mkdir -p ~/booklore/{config,books} cd ~/bookloreЗдесь:
config— хранит базу данных и настройки.books— корневая папка для художественной литературы (лучше монтировать отдельный диск).
Установка Booklore: через Docker Compose (пошагово)
Booklore официально поддерживает Docker. Мы используем docker-compose.yml для оркестрации.
Шаг 1: Создание файла docker-compose.yml
В созданной директории ~/booklore создайте файл:
nano docker-compose.yml
Вставьте следующее содержимое:
version: '3.8'
services:
booklore:
image: ghcr.io/benjaminjonathan/b-booklore:latest
container_name: booklore
restart: unless-stopped
environment:
- PUID=1000 # ID вашего пользователя (команда: id -u)
- PGID=1000 # ID вашей группы (команда: id -g)
- TZ=Europe/Moscow # Ваш часовой пояс
volumes:
# Папка для базы данных и конфигов
- ./config:/config
# Папка с книгами (можно монтировать внешний диск)
- ./books:/books
ports:
- "3000:3000" # WebUI порт
networks:
- booklore_net
networks:
booklore_net:
driver: bridge
Примечание: Замените PUID и PGID на ваши. Узнать их можно командой id -u и id -g. Это позволит избежать проблем с правами доступа к файлам.
Шаг 2: Запуск контейнера
Выполните в директории ~/booklore:
docker compose up -d
Контейнер скачает образ и запустится в фоне. Проверьте логи:
docker compose logs -f
Вы должны увидеть сообщение о том, что сервер запущен и слушает порт 3000.
Шаг 3: Первоначальная настройка (First Run)
- Откройте браузер и перейдите по адресу:
http://<IP-вашего-сервера>:3000. - Вы увидите экран приветствия. Нажмите "Get Started".
- Создание администратора: Укажите имя пользователя, email и пароль (сохраните их).
- Настройка путей:
- В интерфейсе перейдите в Settings -> Library.
- В поле Library Path укажите путь, который мы смонтировали внутрь контейнера:
/books. - Нажмите "Scan Library" (пока пусто, если вы не добавили файлы).
- Вы успешно вошли в систему!
Конфигурация для доступа извне (Reverse Proxy, SSL)
Использовать IP:3000 в локальной сети удобно, но для доступа из интернета нужен SSL и безопасный домен.
Вариант А: Прямой порт (не рекомендуется для интернета)
Пробросьте порт 3000 в настройках вашего роутера и используйте ваш внешний IP.
Вариант Б: Nginx Proxy Manager (Рекомендуется)
Самый простой способ реализации reverse proxy и SSL (Let's Encrypt).
-
Установка NPM: Создайте отдельную папку и
docker-compose.ymlдля NPM.# docker-compose для NPM version: '3' services: app: image: jc21/nginx-proxy-manager:latest restart: unless-stopped ports: - "80:80" - "81:81" - "443:443" volumes: - ./data:/data - ./letsencrypt:/etc/letsencryptЗапустите:
docker compose up -d. Доступ к панели:http://<IP>:81(логин:admin@example.com, пароль:changeme). -
Настройка прокси в NPM:
- Войдите в NPM.
- Hosts -> Proxy Hosts -> Add Proxy Host.
- Details: Домен (например,
books.yourdomain.com), SSL -> Request a new SSL Certificate (введите email, поставьте галочку "Force SSL"). - Scheme:
http. - Forward Hostname/IP:
booklore(имя контейнера) или IP хоста (если NPM в той же сети). - Forward Port:
3000. - Сохраните. NPM автоматически получит SSL-сертификат и перенаправит трафик.
Импорт и организация библиотеки: базовые принципы
Booklore работает лучше всего с организованной файловой структурой. Рекомендуется структура:
/books/
├── Художественная/
│ ├── Автор 1/
│ │ ├── Книга 1.epub
│ │ └── Книга 2.pdf
│ └── Автор 2/
├── Научная/
│ └── ...
└── Комиксы/
Как добавить книги:
- Копирование: Скопируйте файлы в папку
~/booklore/booksна сервере. - Сканирование: В Booklore зайдите в Library -> Scan Library. Система проанализирует файлы и извлечет метаданные (обложки, авторов, названия).
- Обновление: Если вы добавляете новые файлы, просто нажмите Scan Library снова (полная пересканирование быстрая).
Важно: Booklore в основном парсит метаданные из самого файла (EPUB/XML). Если метаданные отсутствуют, вам придется редактировать их вручную (в интерфейсе или через Calibre).
Расширенные функции: метки, коллекции, поиск
Одна из сильных сторон Booklore — гибкая система тегов.
-
Метки (Tags):
- Перейдите в книгу, нажмите Edit.
- Добавьте теги:
fantasy,russian-literature,to-read. - На главной странице слева появятся фильтры по тегам.
-
Коллекции (Collections):
- Это виртуальные папки. Создайте коллекцию (например, "Любимые").
- Перетащите книги в нее (Drag & Drop или через меню).
- Поддерживается иерархия (под-коллекции).
-
Поиск:
- Работает по всем полям: название, автор, описание, теги.
- Поддержка fuzzy search (нечеткий поиск).
-
Сортировка и вид:
- Переключение между сеткой (Grid) и списком (List).
- Сортировка по дате добавления, названию, автору.
Бэкап данных и восстановление: лучшие практики
Данные Booklore хранятся в двух местах: SQLite база данных и файлы книг.
Стратегия бэкапа (Дешево и сердито)
Рекомендуемое решение: скрипт rsync или tar + cron.
-
Создание скрипта бэкапа: Создайте файл
backup.shв папке~/booklore:#!/bin/bash DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/путь/к/вашему/дальнему/бэкапу" # 1. Останавливаем контейнер для консистентности БД (опционально для SQLite) docker compose stop # 2. Архивируем конфиг и книги tar -czf $BACKUP_DIR/booklore_full_$DATE.tar.gz /путь/к/booklore # 3. Запускаем контейнер docker compose start # 4. Удаляем старые бэкапы (старше 7 дней) find $BACKUP_DIR -name "booklore_*.tar.gz" -mtime +7 -deleteСделайте скрипт исполняемым:
chmod +x backup.sh. -
Автоматизация (Cron): Добавьте задание в cron (
crontab -e) для еженедельного бэкапа:0 3 * * 0 /home/user/booklore/backup.sh >> /home/user/backup.log 2>&1
Восстановление
- Остановите текущий контейнер:
docker compose down. - Удалите папку
configиbooks. - Распакуйте архив бэкапа в корень
~/booklore. - Запустите контейнер:
docker compose up -d.
Интеграция с Calibre для конвертации и синхронизации
Booklore не умеет конвертировать форматы "на лету". Для этого используют внешний Calibre Server.
- Запуск Calibre Content Server (в Docker):
docker run -d \ --name=calibre \ -p 8080:8080 \ -v /путь/к/calibre-library:/library \ -e USER=user -e PASSWORD=pass \ linuxserver/calibre - Настройка интеграции в Booklore:
- Settings -> Integrations -> Calibre.
- Введите адрес Calibre Server:
http://<IP>:8080. - Укажите логин/пароль.
- Как это работает:
- Вы можете загружать книги в Calibre для конвертации (например, PDF в EPUB).
- После конвертации Calibre выгружает файл в общую папку.
- Booklore сканирует папку и подхватывает новый EPUB.
Сравнение с аналогами (Calibre-Web, Kavita)
| Характеристика | Booklore | Calibre-Web | Kavita |
|---|---|---|---|
| Фокус | Книги (художественная) | База Calibre (универсальна) | Комиксы / Манга / Книги |
| Интерфейс | Современный, минималистичный | Функциональный, настраиваемый | Кинематографичный, для чтения |
| Зависимости | Docker, SQLite | Docker, Calibre DB | Docker, PostgreSQL/SQLite |
| Чтение EPUB | Встроенный веб-читалка | Нет (скачивание или интеграция) | Нет (скачивание) |
| Сложность | Низкая | Высокая (нужен Calibre) | Средняя |
| Лучше для | Личной библиотеки (EPUB/FB2) | Сложных коллекций, конвертации | Комиксов и манги |
Вывод: Если у вас преимущественно EPUB/FB2 и вы хотите "как Kindle, но свой" — Booklore. Если нужна мощная база данных и конвертация — Calibre-Web. Для комиксов — Kavita.
Заключение
Booklore v1.18.5 — это "золотая середина" для self-hosted энтузиастов. Он не перегружен функциями, как Calibre, но предоставляет именно то, что нужно для чтения: чистый интерфейс, удобное управление коллекциями и простоту развертывания благодаря Docker.
Для кого подходит Booklore?
- Для тех, кто хочет читать на любых устройствах через браузер.
- Для тех, кому надоел Calibre-Web, но нужна приватность.
- Для тех, кто хочет избежать ручного копирования файлов между устройствами.
Итог: Настройка занимает 15-20 минут, а результат — собственная цифровая библиотека, полностью контролируемая вами.