Files
booklore/README.md
2025-12-24 23:18:06 -07:00

10 KiB

📚 BookLore

Your Personal Library, Reimagined

Release License Stars Docker

Discord Open Collective


A self-hosted, feature-rich platform for organizing and managing your digital book collection.
Built for book lovers, by book lovers.

BookLore Demo

Live Demo📖 Documentation🐛 Report Bug💡 Request Feature


🌟 Why BookLore?

BookLore transforms the way you interact with your digital library. Whether you're a casual reader or a bibliophile with thousands of titles, BookLore provides the tools you need to organize, discover, and enjoy your collection.

📚 Smart Library Management

  • Custom shelves with intelligent filtering
  • Dynamic smart collections that auto-update
  • Powerful search across your entire library
  • Bulk operations for efficient management

🔄 Seamless Integration

  • Native Kobo device synchronization
  • KOReader progress tracking
  • OPDS protocol support
  • Email sharing capabilities

🧠 Intelligent Metadata

  • Auto-fetch from multiple sources
  • Goodreads, Amazon, Google Books integration
  • Community reviews and ratings
  • Custom metadata editing

👥 Multi-User Ready

  • Granular permission controls
  • OIDC authentication support
  • Private notes per user
  • Shared library management

Feature Highlights

📖 Reading Experience
  • Built-in Reader: Enjoy PDFs, EPUBs, and comics with customizable themes
  • Progress Tracking: Sync reading progress across devices
  • Personal Notes: Save private annotations visible only to you
  • Mobile Optimized: Fully responsive design for reading anywhere
🔧 Power Features
  • BookDrop Import: Auto-detect and bulk import from a watched folder
  • Magic Shelves: Create rule-based collections that update automatically
  • Format Conversion: Automatic EPUB to KEPUB conversion
  • Metadata Enrichment: Pull rich details from multiple online sources
🌐 Connectivity
  • OPDS Server: Connect any compatible reading app wirelessly
  • Kobo Integration: Seamless sync with Kobo e-readers
  • API Access: Programmatic access to your library
  • Email Distribution: One-click book sharing via email

💖 Support Development

Your support helps keep BookLore growing and improving!

Open Collective Star Repository

Current Fundraising Goal: 🎯 Kobo Device for Testing
Help us implement and test native Kobo sync support by contributing to our bounty →


🌐 Try the Live Demo

Experience BookLore before deploying your own instance:

🔗 demo.booklore.dev
👤 Username: booklore
🔑 Password: 9HC20PGGfitvWaZ1

📌 Note: Demo has standard user permissions. Admin features require a self-hosted instance.


🚀 Quick Start

Prerequisites

Ensure you have Docker and Docker Compose installed on your system.

📦 Available Images

Registry Image URL
🐳 Docker Hub booklore/booklore:latest
📦 GitHub ghcr.io/booklore-app/booklore:latest

⚠️ Legacy images at ghcr.io/adityachandelgit/booklore-app remain available but won't receive updates.


🐳 Docker Deployment

Step 1: Create Environment Configuration

Create a .env file with your configuration:

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

# Database Connection
DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore
DB_USER=booklore
DB_PASSWORD=ChangeMe_BookLoreApp_2025!

# MariaDB Configuration
DB_USER_ID=1000
DB_GROUP_ID=1000
MYSQL_ROOT_PASSWORD=ChangeMe_MariaDBRoot_2025!
MYSQL_DATABASE=booklore

Step 2: Create Docker Compose File

Create docker-compose.yml:

services:
  booklore:
    image: booklore/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

📥 BookDrop: Automated Import

The BookDrop feature enables effortless bulk importing of books into your library.

How It Works

graph LR
    A[Drop Files] --> B[Auto-Detection]
    B --> C[Metadata Extraction]
    C --> D[Review & Edit]
    D --> E[Import to Library]
  1. 📁 Drop Files: Place books in the BookDrop folder
  2. 🔍 Detection: Automatic file monitoring and recognition
  3. 📊 Metadata: Extract or fetch book information
  4. ✏️ Review: Edit metadata before final import
  5. Import: Add to your organized library

Configuration

The BookDrop folder is automatically configured in the Docker setup:

volumes:
  - ./bookdrop:/bookdrop  # 👈 Auto-import directory

Simply drop your .pdf, .epub, .cbz, or other supported files into this folder, and BookLore handles the rest!


📚 Documentation

For comprehensive guides, configuration options, and troubleshooting:

📖 Visit Full Documentation →

Installation • Configuration • Features • API • Troubleshooting

💡 Contribute to Docs: Improve our documentation at booklore-app/booklore-docs


🤝 Community & Contribution

Discord Contributing Issues

We welcome contributions of all kinds! Whether it's:

  • 🐛 Bug reports and fixes
  • Feature requests and implementations
  • 📖 Documentation improvements
  • 🌍 Translations and localization

📊 Project Stats

Repository Activity

Activity

Star History

Star History Chart

🙏 Contributors

Thank you to all our amazing contributors who help make BookLore better!

Contributors


⚖️ License

GNU General Public License v3.0

Copyright © 2024-2025 BookLore Contributors


Made with ❤️ by the BookLore Community

Star this repository if you find it helpful!