🌐 Official Website: https://booklore.org
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.
|
|
|
|
Your support helps BookLore grow and improve! 🌱
|
Give us a star to show your support and help others discover BookLore! |
Support development, hosting, and testing costs |
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 →
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.
|
Guides for installation, setup, features, and more Contribute to the docs at: booklore-docs |
Get up and running in minutes with Docker Easiest way to self-host BookLore |
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-appremain available but won't receive updates.
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=0 # Modify if the volume's ownership is not root
- GROUP_ID=0 # Modify if the volume's ownership is not root
- TZ=Etc/UTC
- BOOKLORE_PORT=6060 # Must match container port below
ports:
- "6060:6060" # HostPort:ContainerPort (must match BOOKLORE_PORT)
volumes:
- ./data:/app/data # SQLite database, settings, metadata, cache
- ./books:/books # Your book collection
- ./bookdrop:/bookdrop # BookDrop auto-import folder
healthcheck:
test: wget -q -O - http://localhost:6060/api/v1/healthcheck
interval: 60s
retries: 5
start_period: 60s
timeout: 10s
restart: unless-stoppedNote: BookLore uses an embedded SQLite database stored in the
./datadirectory. No external database setup required!
docker compose up -dOpen your browser and navigate to:
🎉 Welcome to your personal library!
BookLore's BookDrop feature automatically detects and processes book files dropped into a designated folder.
graph LR
A[📁 Drop Files] --> B[🔍 Auto-Detect]
B --> C[📊 Extract Metadata]
C --> D[✅ Review & Import]
- File Watcher: Monitors the BookDrop folder continuously
- Auto-Detection: Processes new files and extracts metadata
- Metadata Enrichment: Fetches details from Google Books, Open Library
- Review & Finalize: Review, edit, and import to your library
Add the BookDrop volume to your docker-compose.yml:
services:
booklore:
volumes:
- ./data:/app/data
- ./books:/books
- ./bookdrop:/bookdrop # 👈 BookDrop magic happens here|
Found an issue? |
Have an idea? |
Join development! |
Join community! |
Want to see your face here? Start contributing today!
Become a sponsor and get your logo here! Support us on Open Collective
GNU General Public License v3.0
Copyright © 2024-2025 BookLore
Made with ❤️ by the BookLore community
