Booklore: Как создать цифровую библиотеку на сервере

Узнайте, как установить и настроить Booklore — современную цифровую библиотеку для self-hosted. Инструкция по Docker, конфигурации и управлению книгами.

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

Установка 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/calibre

Booklore: Создание собственной цифровой библиотеки и управления книгами для self-hosted энтузиастов

Введение

Современный цифровой книгообмен столкнулся с проблемой фрагментации: файлы разбросаны по устройствам, восприятие художественной литературы смешивается с научной, а выбор подходящего софта для чтения становится головоломкой. Книжные менеджеры вроде Calibre монструозны, а облачные сервисы требуют доверия к данным сторонних компаний. Для энтузиастов self-hosting, ценящих контроль и приватность, Booklore предлагает элегантное решение — современную библиотечную платформу, совместимую с Docker, с интуитивным веб-интерфейсом.

Этот гайд рассмотрит установку и настройку Booklore (v1.18.5) на собственном сервере, а также проверку интеграции, бэкапа и управления библиотекой.

Ключевые возможности Booklore v1.18.5 (обзор годичного релиза)

После года активной разработки, версия 1.18.5 представляет собой стабильное ядро для управления библиотекой.

  1. Веб-интерфейс: Полноценный современный UI для управления коллекциями, поиска и чтения.
  2. Форматы: Читает EPUB, PDF, FB2, AZW3 и ZIP-архивы книг (целевые форматы).
  3. Метаданные: Парсинг обложек и тегов (Dublin Core, Calibre-style).
  4. Пользователи: Мульти-пользовательская система с разграничением доступа (можно гостевой доступ).
  5. Чтение: Встроенный читалка (EPUB) и скачивание оригинальных файлов.
  6. Docker-совместимость: Официальный образ, настраиваемый через переменные окружения.
  7. API: RESTful API для интеграции с внешними инструментами.
  8. Импорт: Прямая загрузка или монтирование папок (сканирование директории).
  9. Интеграции: Поддержка Calibre-Server для конвертации.

Подготовка окружения: требования и первоначальная настройка

Booklore не требует мощного сервера, но нуждается в стабильном окружении.

Минимальные требования:

  • Сервер: VPS или домашний ПК (1-2 ядра, 1-2 ГБ RAM).
  • ОС: Linux (Ubuntu/Debian рекомендованы), Windows Server или macOS.
  • Docker: Docker Engine и Docker Compose (версия 2.x).
  • Сетевой доступ: Порт по умолчанию: 3000.
  • Дисковое пространство: Минимум 100 МБ для системы + место под библиотеку.

Первоначальная настройка сервера:

  1. Обновление системы:

    sudo apt update && sudo apt upgrade -y
    
  2. Установка 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.

  3. Создание структуры директорий: Создадим папки для конфигов, данных и самих книг.

    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)

  1. Откройте браузер и перейдите по адресу: http://<IP-вашего-сервера>:3000.
  2. Вы увидите экран приветствия. Нажмите "Get Started".
  3. Создание администратора: Укажите имя пользователя, email и пароль (сохраните их).
  4. Настройка путей:
    • В интерфейсе перейдите в Settings -> Library.
    • В поле Library Path укажите путь, который мы смонтировали внутрь контейнера: /books.
    • Нажмите "Scan Library" (пока пусто, если вы не добавили файлы).
  5. Вы успешно вошли в систему!

Конфигурация для доступа извне (Reverse Proxy, SSL)

Использовать IP:3000 в локальной сети удобно, но для доступа из интернета нужен SSL и безопасный домен.

Вариант А: Прямой порт (не рекомендуется для интернета)

Пробросьте порт 3000 в настройках вашего роутера и используйте ваш внешний IP.

Вариант Б: Nginx Proxy Manager (Рекомендуется)

Самый простой способ реализации reverse proxy и SSL (Let's Encrypt).

  1. Установка 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).

  2. Настройка прокси в 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/
├── Научная/
│   └── ...
└── Комиксы/

Как добавить книги:

  1. Копирование: Скопируйте файлы в папку ~/booklore/books на сервере.
  2. Сканирование: В Booklore зайдите в Library -> Scan Library. Система проанализирует файлы и извлечет метаданные (обложки, авторов, названия).
  3. Обновление: Если вы добавляете новые файлы, просто нажмите Scan Library снова (полная пересканирование быстрая).

Важно: Booklore в основном парсит метаданные из самого файла (EPUB/XML). Если метаданные отсутствуют, вам придется редактировать их вручную (в интерфейсе или через Calibre).

Расширенные функции: метки, коллекции, поиск

Одна из сильных сторон Booklore — гибкая система тегов.

  1. Метки (Tags):

    • Перейдите в книгу, нажмите Edit.
    • Добавьте теги: fantasy, russian-literature, to-read.
    • На главной странице слева появятся фильтры по тегам.
  2. Коллекции (Collections):

    • Это виртуальные папки. Создайте коллекцию (например, "Любимые").
    • Перетащите книги в нее (Drag & Drop или через меню).
    • Поддерживается иерархия (под-коллекции).
  3. Поиск:

    • Работает по всем полям: название, автор, описание, теги.
    • Поддержка fuzzy search (нечеткий поиск).
  4. Сортировка и вид:

    • Переключение между сеткой (Grid) и списком (List).
    • Сортировка по дате добавления, названию, автору.

Бэкап данных и восстановление: лучшие практики

Данные Booklore хранятся в двух местах: SQLite база данных и файлы книг.

Стратегия бэкапа (Дешево и сердито)

Рекомендуемое решение: скрипт rsync или tar + cron.

  1. Создание скрипта бэкапа: Создайте файл 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.

  2. Автоматизация (Cron): Добавьте задание в cron (crontab -e) для еженедельного бэкапа:

    0 3 * * 0 /home/user/booklore/backup.sh >> /home/user/backup.log 2>&1
    

Восстановление

  1. Остановите текущий контейнер: docker compose down.
  2. Удалите папку config и books.
  3. Распакуйте архив бэкапа в корень ~/booklore.
  4. Запустите контейнер: docker compose up -d.

Интеграция с Calibre для конвертации и синхронизации

Booklore не умеет конвертировать форматы "на лету". Для этого используют внешний Calibre Server.

  1. Запуск Calibre Content Server (в Docker):
    docker run -d \
      --name=calibre \
      -p 8080:8080 \
      -v /путь/к/calibre-library:/library \
      -e USER=user -e PASSWORD=pass \
      linuxserver/calibre
    
  2. Настройка интеграции в Booklore:
    • Settings -> Integrations -> Calibre.
    • Введите адрес Calibre Server: http://<IP>:8080.
    • Укажите логин/пароль.
  3. Как это работает:
    • Вы можете загружать книги в Calibre для конвертации (например, PDF в EPUB).
    • После конвертации Calibre выгружает файл в общую папку.
    • Booklore сканирует папку и подхватывает новый EPUB.

Сравнение с аналогами (Calibre-Web, Kavita)

ХарактеристикаBookloreCalibre-WebKavita
ФокусКниги (художественная)База Calibre (универсальна)Комиксы / Манга / Книги
ИнтерфейсСовременный, минималистичныйФункциональный, настраиваемыйКинематографичный, для чтения
ЗависимостиDocker, SQLiteDocker, Calibre DBDocker, 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 минут, а результат — собственная цифровая библиотека, полностью контролируемая вами.

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