BookLore: цифровая библиотека для хомелаба — пошаговый гайд
Установите и настройте BookLore — бесплатное приложение для цифровой библиотеки. Пошаговый гайд по Docker, организации контента и доступу в хомелабе.
Создание структуры директорий
Создайте папку для проекта и папку для данных. Это позволит хранить конфигурацию отдельно от файлов библиотеки.
mkdir -p ~/booklore_app/booklib
cd ~/booklore_appСоздание файла docker-compose.yml
Создайте файл docker-compose.yml в папке ~/booklore_app. В этом файле укажите образ контейнера, порты и пути к директориям. Обязательно замените /path/to/your/books на реальный путь к вашим книгам на сервере.
version: '3.8'
services:
booklore:
image: ghcr.io/booklore-app/booklore:latest
container_name: booklore
restart: unless-stopped
ports:
- "4567:4567"
volumes:
# Директория с базой данных и настройками
- ./booklib:/config
# Директория с литературными файлами
- /path/to/your/books:/books
environment:
- TZ=Europe/Moscow # Ваш часовой пояс
- PUID=1000 # UID пользователя (узнать командой `id -u`)
- PGID=1000 # GID группы (узнать командой `id -g`)Запуск контейнера
В терминале в папке с файлом docker-compose.yml выполните команду для запуска контейнера в фоновом режиме. Docker автоматически скачает необходимый образ.
docker compose up -dПроверка логов и доступ
Проверьте, что контейнер запустился без ошибок. После успешного запуска откройте браузер и перейдите по адресу сервера, указав порт 4567 (например, http://192.168.1.10:4567).
docker compose logs -f bookloreПервоначальная настройка
При первом входе создайте учетную запись администратора. Заполните форму регистрации, затем войдите в систему. В веб-интерфейсе убедитесь, что путь к библиотеке (/books) корректно отображается и файлы доступны.
Настройка сканирования библиотеки
Перейдите в панель администратора (Admin Panel) -> Library Settings. Включите опцию 'Auto-scan' для автоматического обнаружения новых файлов в смонтированной папке. Установите интервал сканирования (например, раз в 15 минут).
BookLore: цифровая библиотека для вашего хомелаба — обзор и настройка
Введение: Зачем нужна самодельная цифровая библиотека?
Цифровые библиотеки давно стали неотъемлемой частью личных коллекций. Но облачные сервисы часто ограничивают контроль, являются платными или не гарантируют конфиденциальность. Самодельное решение в хомелабе решает несколько задач:
- Полный контроль: Ваши данные хранятся на вашем сервере, под вашим управлением.
- Конфиденциальность: Информация о ваших чтениях и коллекции не уходит третьим сторонам.
- Интеграция: Возможность связать библиотеку с другими системами домашней инфраструктуры (например, автоматическое добавление новых книг из Telegram-бота или папки загрузок).
- Изучение технологий: Отличная возможность попрактиковаться в контейнеризации и сетевом администрировании.
BookLore: основные возможности
BookLore — это современное самодельное веб-приложение (middleware) для управления цифровой библиотекой. Оно не хранит файлы, а служит оберткой над ними, предоставляя красивый веб-интерфейс и метаданные. Основные преимущества:
- Поддержка форматов: EPUB, PDF, FB2, MOBI и другие (обычно через интеграцию с Calibre или плагинами).
- Метаданные: Автоматическое получение информации с внешних источников (Amazon, Goodreads и др., в зависимости от конфигурации).
- Веб-интерфейс: Чистый, адаптивный дизайн для чтения на любых устройствах.
- Сканирование папок: Автоматическое обнаружение новых файлов в указанных директориях.
- Легкость развертывания: Основной способ запуска — через Docker, что обеспечивает изоляцию и простоту обновления.
Требования и подготовка инфраструктуры (Docker)
Для развертывания BookLore требуется базовая инфраструктура хомелаба.
Аппаратные требования
- Процессор: x86_64 (например, Intel/AMD) или ARM64 (например, Raspberry Pi 4/5, Apple Silicon). Нагрузка незначительна, подойдут даже слабые процессоры.
- ОЗУ: 512 MB — 2 GB (зависит от размера библиотеки).
- Хранилище: Свободное место на диске, соответствующее размеру вашей коллекции + запас для кэша и базы данных (минимум 10-20 ГБ).
- Сеть: Локальная сеть для доступа с устройств хомелаба, возможность проброса портов или настройки обратного прокси (nginx, Traefik) для доступа извне.
Программные требования
- Операционная система: Linux (Ubuntu, Debian, Fedora) — предпочтительно, но подойдет и Windows с WSL2.
- Docker: Основная зависимость. Если Docker не установлен, следуйте официальной документации для вашей ОС.
- Docker Compose: Рекомендуется для управления контейнерами (BookLore и, возможно, базой данных или парсером метаданных).
Проверка установки Docker: Откройте терминал и выполните:
docker --version
docker compose version
Если команды выдают версии, всё готово.
Пошаговая установка и первичная настройка
Мы будем использовать Docker Compose для удобства и управления. База данных SQLite (встроенная) подойдет для большинства хомелабов. PostgreSQL можно настроить позже при необходимости масштабирования.
Шаг 1: Создание структуры директорий
Создайте папку для проекта и внутри нее папку для данных (библиотеки).
mkdir -p ~/booklore_app/booklib
cd ~/booklore_app
Где:
booklore_app— папка для файлов конфигурации (Compose-файла).booklib— папка для хранения базы данных и кэша метаданных (не самих книг!).
Шаг 2: Создание файла docker-compose.yml
В папке ~/booklore_app создайте файл docker-compose.yml:
version: '3.8'
services:
booklore:
image: ghcr.io/booklore-app/booklore:latest
container_name: booklore
restart: unless-stopped
ports:
- "4567:4567"
volumes:
# Директория с базой данных и настройками
- ./booklib:/config
# Директория с литературными файлами (монтируем в контейнер)
# Замените /path/to/your/books на ваш путь в хостовой системе
- /path/to/your/books:/books
environment:
- TZ=Europe/Moscow # Ваш часовой пояс
- PUID=1000 # UID пользователя (узнать командой `id -u`)
- PGID=1000 # GID группы (узнать командой `id -g`)
Важные изменения:
- Замените
/path/to/your/booksна реальный путь к вашим книгам на сервере (например,/mnt/nas/books). Права доступа: убедитесь, что пользователь с UID1000(или вашим) имеет права на чтение этих файлов. - Для настройки прав доступа Docker-контейнера к файлам хоста (Linux) укажите корректные PUID/PGID. Для Windows это менее критично.
Шаг 3: Запуск
В терминале в папке с файлом docker-compose.yml выполните:
docker compose up -d
Команда скачает образ (если нет локально) и запустит контейнер в фоновом режиме. Проверьте логи на наличие ошибок:
docker compose logs -f booklore
При успехе вы увидите сообщение о запуске веб-сервера (например, INFO: Server started).
Шаг 4: Первоначальный вход
Откройте браузер и перейдите по адресу http://<IP-адрес-сервера>:4567.
- При первом запуске будет предложено создать администратора.
- Заполните форму (имя, email, пароль).
- Сразу перейдите в настройки и проверьте путь к папке с книгами (в Docker мы смонтировали папку
/booksв контейнер).
Организация библиотеки: загрузка, метаданные и доступ
Структура хранения
Принцип: BookLore лучше всего работает, если в базе хранятся ссылки на файлы. Сама файловая структура на сервере остается на ваше усмотрение. Рекомендуемая структура:
/path/to/your/books/
├── Авторы/
│ ├── Иванов И.И. (1980-2020)/
│ │ ├── Книга А.fb2
│ │ └── Книга Б.pdf
├── Жанры/
│ └── Научная фантастика/
└── Входящие/ (для автозагрузки)
BookLore просканирует указанную папку и начнет индексацию.
Загрузка книг
- Автоматическая (рекомендуется): Скопируйте файлы в папку, смонтированную в контейнер (например,
/path/to/your/books/Входящие). В настройках BookLore (Admin Panel -> Library Settings) настройте периодическое сканирование (Cron-демон). - Ручная: В веб-интерфейсе есть кнопка "Загрузить файл", но это неэффективно для больших библиотек. Лучше кидать файлы в папку хоста.
Метаданные
- Встроенное сканирование: BookLore распознает форматы и пытается извлечь базовую информацию (название, автор).
- Внешние парсеры (Plugins): Для автоматического получения обложек, описаний и жанров часто используется интеграция с Calibre (особенно плагин
GoodreadsилиAmazon). Настройка сложнее:- В BookLore перейдите в
Admin -> Metadata Settings. - Здесь можно настроить API-ключи (например, для Google Books) или указать локальный сервер Calibre для запуска скриптов обогащения.
- В BookLore перейдите в
- Ручное редактирование: Кликнув на книгу, можно вручную исправить автора, название, добавить теги и обложку.
Настройка аутентификации и мультипользовательского доступа
BookLore поддерживает нескольких пользователей с разными ролями.
-
Создание пользователя:
- Зайдите как администратор.
Users->Add User.- Укажите имя, email и пароль. Для доступа только для чтения (чтение без редактирования) выберите роль
Read-only.
-
Профили и настройки доступа:
- У каждого пользователя есть свой профиль.
- Администратор может настроить общие настройки библиотеки (сканирование, метаданные).
- Настройки конфиденциальности: каждый пользователь видит только ту библиотеку, к которой у него есть доступ (BookLore позволяет настроить "папки" видимости).
-
Доступ из сети:
- Локально: Используйте IP и порт 4567.
- Извне (безопасно):
- VPN (WireGuard, OpenVPN): Самый безопасный способ.
- Обратный прокси (nginx/Traefik) + SSL: Настройте домен (например,
lib.home.yourdomain.com) и проксируйте запросы наlocalhost:4567. Включите HTTPS (Let's Encrypt). Критически важно для доступа из интернета.
Интеграция с внешними сервисами и автоматизация
Для упрощения жизни можно настроить несколько сценариев.
1. Автоматическое сканирование новых файлов
В настройках BookLore (Admin -> Library Settings) включите опцию "Auto-scan". Укажите интервал (например, раз в 15 минут). BookLore будет проверять монтированную папку и добавлять новые файлы.
2. Интеграция с загрузчиками (например, через Telegram)
Популярный хомелаб-хак: бот в Telegram, который принимает файлы и сохраняет их в папку монтирования BookLore.
- Напишите простого бота на Python (библиотека
python-telegram-bot). - Бот принимает документ, сохраняет в папку
/path/to/your/books/Входящие. - BookLore автоматически подхватит его при следующем сканировании.
3. Интеграция с Calibre-Web (опционально)
Если вы используете Calibre-Web для основной библиотеки, а BookLore как вторую (например, для специализированных коллекций), можно синхронизировать папки через общие сетевые диски или rsync.
Безопасность и резервное копирование данных
Безопасность
- Обновления: Регулярно обновляйте образ Docker:
docker compose pull docker compose up -d - Сетевая изоляция: Не пробрасывайте порт 4567 напрямую на роутер. Используйте обратный прокси или VPN.
- База данных: BookLore использует SQLite по умолчанию (файл
booklore.dbв папке./booklib). Это хрупко. Регулярно делайте резервные копии всей папкиbooklib.
Резервное копирование
Что бекапить:
- Папку с базой данных и настройками (
./booklib). Сюда входят пользователи, настройки и индексы метаданных. - (Опционально) Папку с книгами. Она большая, но если вы дублируете ее на NAS, этого достаточно.
Пример скрипта для бекапа (Bash):
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/path/to/backups/booklore"
# Резервная копия конфигурации (основная)
docker compose stop booklore
tar -czf "$BACKUP_DIR/config_$DATE.tar.gz" -C ~/booklore_app booklib
docker compose start booklore
# Если книги на отдельном диске, делайте rsync отдельно
Восстановление: Распаковать архив в папку booklib и перезапустить контейнер. Папку с книгами монтировать так же, как в docker-compose.yml.
Сравнение с альтернативами (Calibre-Web, Kavita)
| Характеристика | BookLore | Calibre-Web | Kavita |
|---|---|---|---|
| Основное назначение | Современная обложка для библиотеки, фокус на UX. | Полная библиотека Calibre + веб-интерфейс. | Медиа-сервер для комиксов, журналов, PDF. |
| Зависимости | Docker, база данных. | Требует доступа к библиотеке Calibre (данные + config). | Docker, база данных. |
| Метаданные | Частично встроены, часто через плагины/интеграции. | Полная интеграция с Calibre и его плагинами (мощно). | Самодостаточен, сканирует файлы. |
| Производительность | Высокая, легковесный. | Средняя, зависит от базы Calibre. | Высокая. |
| Мультипользователь | Да (RBAC). | Да (обычно). | Да (strict). |
| Поддержка форматов | Широкая (через движки). | Исчерпывающая (Calibre-движки). | Фокус на комиксы/графические романы (CBZ, CBR, PDF). |
Вывод по выбору:
- BookLore: Идеален, если вы хотите чистый интерфейс и не привязаны к Calibre. Лучше подходит для гибридной библиотеки (книги, статьи, PDF).
- Calibre-Web: Лучший выбор для тех, у кого уже есть большая библиотека Calibre и нужно максимальное управление метаданными.
- Kavita: Выбор для специализированных коллекций (комиксы, манга) или если нужен вариант "кастомного Plex для чтения".
Выводы и советы по использованию
BookLore — отличная отправная точка для создания цифровой библиотеки в хомелабе. Он сочетает простоту развертывания с мощным веб-интерфейсом.
Ключевые советы:
- Начните с простого: Запустите на Docker с SQLite, синхронизируйте папку с книгами. Не усложняйте сразу метаданные.
- Безопасность первая: Никогда не оставляйте порт 4567 открытым в интернет. Используйте VPN или HTTPS-прокси.
- Регулярно делайте бекап: Особенно папку с конфигурацией и базой данных.
- Экспериментируйте: Попробуйте интеграцию с Telegram или настройку внешних парсеров метаданных для автоматизации.
Управление цифровой библиотекой — это не только хранение файлов, но и процесс классификации и поиска. BookLore дает для этого эффективные инструменты, полностью под вашим контролем.