Skip to content

Commit 5b52a79

Browse files
committed
✨ hub: Add booklore
1 parent 3db8801 commit 5b52a79

3 files changed

Lines changed: 98 additions & 0 deletions

File tree

hub/booklore/.env

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
PROJECT=booklore
2+
DOMAIN=stack.localhost
3+
4+
# User and Timezone Settings
5+
# PUID and PGID define the user/group running the container.
6+
# TZ sets the timezone for correct time-related operations.
7+
PUID=1000 # Default user ID (Check with `id -u` on Linux/Mac)
8+
PGID=1000 # Default group ID (Check with `id -g` on Linux/Mac)
9+
TZ=Etc/UTC # Change this to your timezone (e.g., America/New_York, Asia/Kolkata)
10+
11+
# Database Credentials (Replace with a secure password)
12+
# This password is used by MariaDB. Make sure to keep it secure.
13+
MYSQL_ROOT_PASSWORD=super_secure_password
14+
MYSQL_DATABASE=booklore
15+
MYSQL_USER=booklore
16+
MYSQL_PASSWORD=your_secure_password
17+
18+
# Paths for Docker Volumes (Update these paths as per your system)
19+
# These paths store persistent data for Booklore and MariaDB.
20+
# Replace "/path/to/..." with actual directories on your system.
21+
# BOOKLORE_DATA_PATH=/path/to/booklore/data # Example: /home/user/booklore/data (Stores app-related data)
22+
# BOOKLORE_BOOKS_PATH=/path/to/booklore/books # Example: /home/user/booklore/books (Stores book files)
23+
# MARIADB_CONFIG_PATH=/path/to/mariadb/config # Example: /home/user/booklore/mariadb/config (Stores database config)

hub/booklore/compose.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# SPDX-License-Identifier: MIT
2+
# This is a https://stack.lol docker compose file.
3+
4+
services:
5+
booklore:
6+
image: ghcr.io/adityachandelgit/booklore-app:v${BOOKLORE_VERSION:-0.9.0}
7+
env_file: .env
8+
environment:
9+
- DATABASE_URL=jdbc:mariadb://mariadb:3306/${MYSQL_DATABASE}
10+
- DATABASE_USERNAME=${MYSQL_USER}
11+
- DATABASE_PASSWORD=${MYSQL_PASSWORD}
12+
depends_on:
13+
mariadb:
14+
condition: service_healthy
15+
volumes:
16+
- ${BOOKLORE_DATA_PATH:-booklore_data}:/app/data
17+
- ${BOOKLORE_BOOKS_PATH:-books}:/books
18+
labels:
19+
dash.url: https://$PROJECT.$DOMAIN
20+
traefik.http.routers.booklore.rule: Host(`$PROJECT.$DOMAIN`)
21+
traefik.http.services.booklore.loadbalancer.server.port: 6060
22+
23+
mariadb:
24+
image: linuxserver/mariadb:11.4.5
25+
container_name: booklore_mariadb
26+
env_file:
27+
- .env
28+
volumes:
29+
- ${MARIADB_CONFIG_PATH:-mariadb_config}:/config
30+
restart: unless-stopped
31+
healthcheck:
32+
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
33+
interval: 10s
34+
timeout: 5s
35+
retries: 5
36+
37+
volumes:
38+
booklore_data:
39+
mariadb_config:
40+
books:

hub/booklore/stack.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# SPDX-License-Identifier: MIT
2+
# yaml-language-server: $schema=https://stack.lol/schemas/stack.config.schema.yaml
3+
# This is a https://stack.lol stack metadata file.
4+
slug: booklore
5+
name: BookLore
6+
icon:
7+
flavor: DockerCompose
8+
version: "0.9.0"
9+
updated_at: 2025-05-17
10+
description: Hosting, manage, and explore books
11+
author: Aditya Chandel
12+
license: GPL-3.0
13+
repository: https://github.com/adityachandelgit/BookLore
14+
stars: 684
15+
tags: []
16+
alternativeTo: []
17+
readme: |
18+
19+
BookLore is a self-hosted web app for organizing and managing your personal book collection. It provides an intuitive interface to browse, read, and track your progress across PDFs and eBooks. With robust metadata management, multi-user support, and a sleek, modern UI, BookLore makes it easy to build and explore your personal library.
20+
21+
![preview](https://github.com/adityachandelgit/BookLore/raw/develop/assets/demo.gif)
22+
23+
<hr>
24+
25+
### Features
26+
27+
- 📚 **Organized Book Management** - Categorize books with **Libraries** and **Shelves** for easy discovery and structured organization.
28+
- 🧠 **Smart Metadata Handling** - Automatically fetch book details from **Goodreads**, **Amazon**, and **Google Books**, or edit them manually with fine-grained control.
29+
- 👥 **Multi-User Support** - Admins can create accounts, assign libraries, and manage permissions for metadata edits, uploads, and downloads.
30+
- 📖 **Built-in PDF & ePub Reader** - A fast, feature-rich reader for PDFs and ePubs, with customizable reading settings and a clean UI.
31+
- 🌐 **OPDS 1.2 Support** - Browse and download books through the **Open Publication Distribution System** – compatible with many reading apps.
32+
- 🔐 **Optional OIDC Authentication** - Secure access with **OpenID Connect**, supporting both local JWT authentication and external providers like **Authentik**.
33+
- 📤 **Multi-Book Uploads** - Upload multiple books at once with metadata auto-detection and file organization.
34+
- 📧 **Send Books via Email** - Share books directly with others by sending them via email – quick and easy.
35+
- 🚀 **Continuous Improvements** - Frequent updates with new features, performance enhancements, and UI improvements. BookLore is perfect for self-hosters who want complete control over their digital library.

0 commit comments

Comments
 (0)