Skip to content

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.

License

Notifications You must be signed in to change notification settings

booklore-app/booklore

📚 BookLore

Your Personal Library, Beautifully Organized

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.dev 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
    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]
Loading
  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

About

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.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages