BookLore: цифровая библиотека для хомелаба — пошаговый гайд

Установите и настройте BookLore — бесплатное приложение для цифровой библиотеки. Пошаговый гайд по Docker, организации контента и доступу в хомелабе.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор25 января 2026 г.

Создание структуры директорий

Создайте папку для проекта и папку для данных. Это позволит хранить конфигурацию отдельно от файлов библиотеки.

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`)

Важные изменения:

  1. Замените /path/to/your/books на реальный путь к вашим книгам на сервере (например, /mnt/nas/books). Права доступа: убедитесь, что пользователь с UID 1000 (или вашим) имеет права на чтение этих файлов.
  2. Для настройки прав доступа 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 просканирует указанную папку и начнет индексацию.

Загрузка книг

  1. Автоматическая (рекомендуется): Скопируйте файлы в папку, смонтированную в контейнер (например, /path/to/your/books/Входящие). В настройках BookLore (Admin Panel -> Library Settings) настройте периодическое сканирование (Cron-демон).
  2. Ручная: В веб-интерфейсе есть кнопка "Загрузить файл", но это неэффективно для больших библиотек. Лучше кидать файлы в папку хоста.

Метаданные

  1. Встроенное сканирование: BookLore распознает форматы и пытается извлечь базовую информацию (название, автор).
  2. Внешние парсеры (Plugins): Для автоматического получения обложек, описаний и жанров часто используется интеграция с Calibre (особенно плагин Goodreads или Amazon). Настройка сложнее:
    • В BookLore перейдите в Admin -> Metadata Settings.
    • Здесь можно настроить API-ключи (например, для Google Books) или указать локальный сервер Calibre для запуска скриптов обогащения.
  3. Ручное редактирование: Кликнув на книгу, можно вручную исправить автора, название, добавить теги и обложку.

Настройка аутентификации и мультипользовательского доступа

BookLore поддерживает нескольких пользователей с разными ролями.

  1. Создание пользователя:

    • Зайдите как администратор.
    • Users -> Add User.
    • Укажите имя, email и пароль. Для доступа только для чтения (чтение без редактирования) выберите роль Read-only.
  2. Профили и настройки доступа:

    • У каждого пользователя есть свой профиль.
    • Администратор может настроить общие настройки библиотеки (сканирование, метаданные).
    • Настройки конфиденциальности: каждый пользователь видит только ту библиотеку, к которой у него есть доступ (BookLore позволяет настроить "папки" видимости).
  3. Доступ из сети:

    • Локально: Используйте 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.

Безопасность и резервное копирование данных

Безопасность

  1. Обновления: Регулярно обновляйте образ Docker:
    docker compose pull
    docker compose up -d
    
  2. Сетевая изоляция: Не пробрасывайте порт 4567 напрямую на роутер. Используйте обратный прокси или VPN.
  3. База данных: BookLore использует SQLite по умолчанию (файл booklore.db в папке ./booklib). Это хрупко. Регулярно делайте резервные копии всей папки booklib.

Резервное копирование

Что бекапить:

  1. Папку с базой данных и настройками (./booklib). Сюда входят пользователи, настройки и индексы метаданных.
  2. (Опционально) Папку с книгами. Она большая, но если вы дублируете ее на 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)

ХарактеристикаBookLoreCalibre-WebKavita
Основное назначениеСовременная обложка для библиотеки, фокус на UX.Полная библиотека Calibre + веб-интерфейс.Медиа-сервер для комиксов, журналов, PDF.
ЗависимостиDocker, база данных.Требует доступа к библиотеке Calibre (данные + config).Docker, база данных.
МетаданныеЧастично встроены, часто через плагины/интеграции.Полная интеграция с Calibre и его плагинами (мощно).Самодостаточен, сканирует файлы.
ПроизводительностьВысокая, легковесный.Средняя, зависит от базы Calibre.Высокая.
МультипользовательДа (RBAC).Да (обычно).Да (strict).
Поддержка форматовШирокая (через движки).Исчерпывающая (Calibre-движки).Фокус на комиксы/графические романы (CBZ, CBR, PDF).

Вывод по выбору:

  • BookLore: Идеален, если вы хотите чистый интерфейс и не привязаны к Calibre. Лучше подходит для гибридной библиотеки (книги, статьи, PDF).
  • Calibre-Web: Лучший выбор для тех, у кого уже есть большая библиотека Calibre и нужно максимальное управление метаданными.
  • Kavita: Выбор для специализированных коллекций (комиксы, манга) или если нужен вариант "кастомного Plex для чтения".

Выводы и советы по использованию

BookLore — отличная отправная точка для создания цифровой библиотеки в хомелабе. Он сочетает простоту развертывания с мощным веб-интерфейсом.

Ключевые советы:

  1. Начните с простого: Запустите на Docker с SQLite, синхронизируйте папку с книгами. Не усложняйте сразу метаданные.
  2. Безопасность первая: Никогда не оставляйте порт 4567 открытым в интернет. Используйте VPN или HTTPS-прокси.
  3. Регулярно делайте бекап: Особенно папку с конфигурацией и базой данных.
  4. Экспериментируйте: Попробуйте интеграцию с Telegram или настройку внешних парсеров метаданных для автоматизации.

Управление цифровой библиотекой — это не только хранение файлов, но и процесс классификации и поиска. BookLore дает для этого эффективные инструменты, полностью под вашим контролем.

Поделиться:TelegramX / TwitterVK