Bumps the npm-dependencies group with 15 updates in the /booklore-ui directory: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `21.0.5` | `21.0.6` | | [@angular/cdk](https://github.com/angular/components) | `21.0.3` | `21.0.5` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `21.0.5` | `21.0.6` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `21.0.5` | `21.0.6` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `21.0.5` | `21.0.6` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `21.0.5` | `21.0.6` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `21.0.5` | `21.0.6` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `21.0.5` | `21.0.6` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `21.0.5` | `21.0.6` | | [ws](https://github.com/websockets/ws) | `8.18.3` | `8.19.0` | | [@angular/build](https://github.com/angular/angular-cli) | `21.0.3` | `21.0.4` | | [@angular/cli](https://github.com/angular/angular-cli) | `21.0.3` | `21.0.4` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `21.0.5` | `21.0.6` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.18` | `4.1.18` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.50.0` | `8.52.0` | Updates `@angular/animations` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/animations) Updates `@angular/cdk` from 21.0.3 to 21.0.5 - [Release notes](https://github.com/angular/components/releases) - [Changelog](https://github.com/angular/components/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/components/compare/v21.0.3...v21.0.5) Updates `@angular/common` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/common) Updates `@angular/compiler` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/compiler) Updates `@angular/core` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/core) Updates `@angular/forms` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/forms) Updates `@angular/platform-browser` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/platform-browser-dynamic) Updates `@angular/router` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/router) Updates `ws` from 8.18.3 to 8.19.0 - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/8.18.3...8.19.0) Updates `@angular/build` from 21.0.3 to 21.0.4 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/v21.0.3...v21.0.4) Updates `@angular/cli` from 21.0.3 to 21.0.4 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/v21.0.3...v21.0.4) Updates `@angular/compiler-cli` from 21.0.5 to 21.0.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v21.0.6/packages/compiler-cli) Updates `tailwindcss` from 3.4.18 to 4.1.18 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.18/packages/tailwindcss) Updates `typescript-eslint` from 8.50.0 to 8.52.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.52.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-version: 21.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/cdk" dependency-version: 21.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/common" dependency-version: 21.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/compiler" dependency-version: 21.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/core" dependency-version: 21.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/forms" dependency-version: 21.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/platform-browser" dependency-version: 21.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/platform-browser-dynamic" dependency-version: 21.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/router" dependency-version: 21.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: ws dependency-version: 8.19.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-dependencies - dependency-name: "@angular/build" dependency-version: 21.0.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/cli" dependency-version: 21.0.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@angular/compiler-cli" dependency-version: 21.0.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: tailwindcss dependency-version: 4.1.18 dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: typescript-eslint dependency-version: 8.52.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
📚 BookLore
Your Personal Library, Beautifully Organized
🌐 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.
✨ Features That Make BookLore Shine
📖 Library Management
|
🌐 Connectivity
|
👥 User Experience
|
🚀 Smart Features
|
💖 Support the Project
Your support helps BookLore grow and improve! 🌱
⭐ Star UsGive us a star to show your support and help others discover BookLore! |
💰 SponsorSupport development, hosting, and testing costs |
📢 Spread the WordShare 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
📘 DocumentationGuides for installation, setup, features, and more Contribute to the docs at: booklore-docs |
🐳 Quick DeployGet up and running in minutes 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-appremain 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:
🎉 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]
- 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
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 ReportsFound an issue? |
💡 Feature ReqHave an idea? |
🤝 ContributeJoin development! |
💬 ChatJoin community! |
👨💻 Contributors
Thanks to all our amazing contributors! 🙏
Want to see your face here? Start contributing today!
🌟 Sponsors
Thank you to our amazing sponsors!
Become a sponsor and get your logo here! Support us on Open Collective
⚖️ License
GNU General Public License v3.0
Copyright © 2024-2025 BookLore
Made with ❤️ by the BookLore community
