booklore

Introduction: BookLore: A self-hosted, multi-user digital library with smart shelves, auto metadata, Kobo & KOReader sync, BookDrop imports, OPDS support, and a built-in reader for EPUB, PDF, and comics.
More: Author   ReportBugs   OfficialWebsite   
Tags:
# 📚 BookLore ### Your Personal Library, Beautifully Organized 🌐 Official Website: https://booklore.org

BookLore Demo

Release License Stars Docker Pulls Discord Open Collective --- BookLore is a powerful, self-hosted web application designed to organize and manage your personal book collection with elegance and ease. Build your dream library with an intuitive interface, robust metadata management, and seamless multi-user support. 🚀 Get Started📖 Documentation🎮 Try Demo💬 Community

## ✨ Features That Make BookLore Shine
### 📖 Library Management - Smart Organization: Custom shelves with powerful filters - Magic Shelves: Dynamic, auto-updating collections - Auto Metadata: Rich details from multiple sources - Advanced Search: Find any book instantly ### 🌐 Connectivity - Kobo Integration: Seamless device sync - OPDS Support: Connect any reading app - KOReader Sync: Cross-platform progress tracking - Email Sharing: One-click book sending
### 👥 User Experience - Multi-User Support: Granular permissions - Flexible Auth: Local or OIDC providers - Mobile Ready: Responsive on all devices - Built-in Reader: PDFs, EPUBs, comics ### 🚀 Smart Features - BookDrop Import: Auto-detect bulk files - Private Notes: Personal reading annotations - Community Reviews: Enriched book data - Progress Tracking: Reading statistics

## 💖 Support the Project
Your support helps BookLore grow and improve! 🌱
### ⭐ Star Us Give us a star to show your support and help others discover BookLore! Star this repo ### 💰 Sponsor Support development, hosting, and testing costs Open Collective ### 📢 Spread the Word Share BookLore with fellow book lovers and developers!
> 🎯 Current Goal: Raising funds for a Kobo device to implement native Kobo sync support
> 💡 Support the Kobo Sync Bounty →

## 🎮 Live Demo: Explore BookLore in Action
Experience BookLore's features in a live environment before deploying your own instance! | 🌐 Demo URL | 👤 Username | 🔑 Password | |----------------------------------------------------|-------------|--------------------| | demo.booklore.org | booklore | 9HC20PGGfitvWaZ1 | > ⚠️ Note: Demo account has standard user permissions only.
> Admin features (user management, library setup) require a self-hosted instance.

## 🚀 Getting Started with BookLore ### Choose Your Path
### 📘 Documentation Guides for installation, setup, features, and more Read the Docs Contribute to the docs at: booklore-docs ### 🐳 Quick Deploy Get up and running in minutes with Docker Deploy with Docker Easiest way to self-host BookLore

## 🐳 Deploy with Docker

Prerequisites

Ensure you have Docker and Docker Compose installed.

📦 Image Repositories - 🐳 Docker Hub: booklore/booklore - 📦 GitHub Container Registry: ghcr.io/booklore-app/booklore > 💡 Legacy images at ghcr.io/adityachandelgit/booklore-app remain available but won't receive updates.

Step 1️⃣: Create Environment Configuration

Create a .env file in your project directory:

# 🎯 BookLore Application Settings
APP_USER_ID=0
APP_GROUP_ID=0
TZ=Etc/UTC
BOOKLORE_PORT=6060

# 🗄️ Database Connection (BookLore)
DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore
DB_USER=booklore
DB_PASSWORD=ChangeMe_BookLoreApp_2025!

# 🔧 MariaDB Container Settings
DB_USER_ID=1000
DB_GROUP_ID=1000
MYSQL_ROOT_PASSWORD=ChangeMe_MariaDBRoot_2025!
MYSQL_DATABASE=booklore

Step 2️⃣: Create Docker Compose File

Create a docker-compose.yml file:

services:
  booklore:
    image: booklore/booklore:latest
    # Alternative: Use GitHub Container Registry
    # image: ghcr.io/booklore-app/booklore:latest
    container_name: booklore
    environment:
      - USER_ID=${APP_USER_ID}
      - GROUP_ID=${APP_GROUP_ID}
      - TZ=${TZ}
      - DATABASE_URL=${DATABASE_URL}
      - DATABASE_USERNAME=${DB_USER}
      - DATABASE_PASSWORD=${DB_PASSWORD}
      - BOOKLORE_PORT=${BOOKLORE_PORT}
    depends_on:
      mariadb:
        condition: service_healthy
    ports:
      - "${BOOKLORE_PORT}:${BOOKLORE_PORT}"
    volumes:
      - ./data:/app/data
      - ./books:/books
      - ./bookdrop:/bookdrop
    healthcheck:
      test: wget -q -O - http://localhost:${BOOKLORE_PORT}/api/v1/healthcheck
      interval: 60s
      retries: 5
      start_period: 60s
      timeout: 10s
    restart: unless-stopped

  mariadb:
    image: lscr.io/linuxserver/mariadb:11.4.5
    container_name: mariadb
    environment:
      - PUID=${DB_USER_ID}
      - PGID=${DB_GROUP_ID}
      - TZ=${TZ}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_PASSWORD}
    volumes:
      - ./mariadb/config:/config
    restart: unless-stopped
    healthcheck:
      test: [ "CMD", "mariadb-admin", "ping", "-h", "localhost" ]
      interval: 5s
      timeout: 5s
      retries: 10

Step 3️⃣: Launch BookLore

docker compose up -d

Step 4️⃣: Access Your Library

Open your browser and navigate to:

🌐 http://localhost:6060

🎉 Welcome to your personal library!


## 📥 BookDrop: Automatic Import ### Drop Files, Import Automatically

BookLore's BookDrop feature automatically detects and processes book files dropped into a designated folder.

How It Works

graph LR
    A[📁 Drop Files] --> B[🔍 Auto-Detect]
    B --> C[📊 Extract Metadata]
    C --> D[✅ Review & Import]
  1. File Watcher: Monitors the BookDrop folder continuously
  2. Auto-Detection: Processes new files and extracts metadata
  3. Metadata Enrichment: Fetches details from Google Books, Open Library
  4. Review & Finalize: Review, edit, and import to your library

Docker Configuration

Add the BookDrop volume to your docker-compose.yml:

services:
  booklore:
    volumes:
      - ./data:/app/data
      - ./books:/books
      - ./bookdrop:/bookdrop  # 👈 BookDrop magic happens here

## 🤝 Community & Support
### 🐞 Bug Reports Found an issue? Open Issue ### 💡 Feature Req Have an idea? Request Feature ### 🤝 Contribute Join development! Contributing ### 💬 Chat Join community! Discord

## 📊 Project Analytics ### Repository Activity Repository Activity ### ⭐ Star History Star History Chart

## 👨‍💻 Contributors ### Thanks to all our amazing contributors! 🙏 Contributors Want to see your face here? Start contributing today!

## ⚖️ License GNU General Public License v3.0 Copyright © 2024-2025 BookLore License: GPL v3 --- Made with ❤️ by the BookLore community ⬆ Back to Top
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools