Skip to content

Commit f933623

Browse files
authored
Merge pull request #1633 from booklore-app/develop
Merge develop into master for the release
2 parents 4f60f79 + 5abed1a commit f933623

File tree

102 files changed

+3126
-1959
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+3126
-1959
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,40 @@ assignees: ''
77

88
---
99

10-
# Bug Report Template for Booklore
10+
# 🐛 Bug Report for Booklore
1111

12-
**What happened?**
13-
Please describe the problem or issue you encountered in Booklore.
12+
Thank you for helping us improve Booklore! Please fill out the sections below.
13+
14+
---
15+
16+
## 📝 What happened?
17+
<!-- Describe the bug in a few sentences -->
18+
19+
20+
## 🔄 Steps to Reproduce
21+
<!-- Walk us through the exact steps to see the bug -->
22+
1. Go to '...'
23+
2. Click on '...'
24+
3. Scroll down to '...'
25+
4. See error
26+
27+
## ✅ Expected Behavior
28+
<!-- What should have happened instead? -->
29+
30+
31+
## 📸 Screenshots / Error Messages
32+
<!-- Add screenshots or paste error messages (drag & drop images here) -->
1433

15-
**How can we see it happen?**
16-
Steps to reproduce the issue:
17-
1. Open Booklore and go to ‘…’
18-
2. Do ‘…’ (like adding a book, editing details, etc.)
19-
3. Notice what goes wrong
2034

21-
**What did you expect to happen?**
22-
Tell us what you thought should happen instead.
35+
## 💻 Environment
36+
- **Version:** (e.g., v1.1.0)
37+
- **OS:** (e.g., Windows 11, macOS Sonoma, Ubuntu 22.04)
38+
- **Browser:** (e.g., Chrome 120, Firefox 121, Safari 17)
39+
- **Installation:** (e.g., Docker, Unraid, Manual)
2340

24-
**Screenshots or Error Messages**
25-
If you can, please share screenshots or any error messages you saw. It really helps!
41+
## 📌 Additional Context
42+
<!-- Recent changes? Specific books? Anything else that might help? -->
2643

27-
**About your setup:**
28-
- Booklore version (e.g., v0.35.0)
29-
- What computer or device are you using? (Windows, Mac, Linux, etc.)
30-
- Which browser and version? (Chrome, Firefox, Safari, etc.)
31-
- How did you install Booklore? (Docker, manual install, etc.)
3244

33-
**Anything else we should know?**
34-
Any other info that might help us understand the issue better.
45+
## ✨ Possible Solution _(Optional)_
46+
<!-- Have ideas on how to fix this? Share them here! -->

README.md

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,6 @@
66
![Docker Pulls](https://img.shields.io/docker/pulls/booklore/booklore?color=2496ED)
77
[![Join us on Discord](https://img.shields.io/badge/Chat-Discord-5865F2?logo=discord&style=flat)](https://discord.gg/Ee5hd458Uz)
88
[![Open Collective backers and sponsors](https://img.shields.io/opencollective/all/booklore?label=Open%20Collective&logo=opencollective&color=7FADF2)](https://opencollective.com/booklore)
9-
> 🚨 **Important Announcement:**
10-
> Docker images have moved to new repositories:
11-
> - Docker Hub: `https://hub.docker.com/r/booklore/booklore`
12-
> - GitHub Container Registry: `https://ghcr.io/booklore-app/booklore`
13-
>
14-
> The legacy repo (`https://ghcr.io/adityachandelgit/booklore-app`) will remain available for existing images but will not receive further updates.
15-
169

1710
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
1811
build and explore your personal library.
@@ -44,7 +37,6 @@ If you find **BookLore** helpful, please consider supporting its development:
4437
- 💸 Contribute via [Open Collective](https://opencollective.com/booklore) to help fund development, hosting, and testing costs.
4538
> 📌 Currently raising funds for a **Kobo device** to implement and test native Kobo sync support.
4639
> 💡 [Support the Kobo Sync Bounty →](https://opencollective.com/booklore/projects/kobo-device-for-testing)
47-
- ⚡ Prefer one-time support? You can also donate via [Venmo](https://venmo.com/AdityaChandel).
4840
4941
## 🌐 Live Demo: Explore BookLore in Action
5042

@@ -71,9 +63,6 @@ Our up-to-date docs walk you through installation, setup, configuration, and key
7163
> 💡 **Want to improve the documentation?**
7264
> You can update the docs at [booklore-app/booklore-docs](https://github.com/booklore-app/booklore-docs) and create a pull request to contribute your changes!
7365
74-
🎥 [BookLore Tutorials: YouTube](https://www.youtube.com/watch?v=UMrn_fIeFRo&list=PLi0fq0zaM7lqY7dX0R66jQtKW64z4_Tdz)
75-
These older videos provide useful walkthroughs and visual guidance, but note that some content may be outdated compared to the current docs.
76-
7766
## 🐳 Deploy with Docker
7867

7968
You can quickly set up and run BookLore using Docker.
@@ -202,26 +191,6 @@ services:
202191
- ./bookdrop:/bookdrop # 👈 Bookdrop directory
203192
```
204193
205-
## 🔑 OIDC/OAuth2 Authentication (Authentik, Pocket ID, etc.)
206-
207-
BookLore supports optional OIDC/OAuth2 authentication for secure access. This feature allows you to integrate external authentication providers for a seamless login experience.
208-
209-
While the integration has been tested with **Authentik** and **Pocket ID**, it should work with other OIDC providers like **Authelia** as well. The setup allows you to use either JWT-based local authentication or external providers, giving users the flexibility to choose their preferred method.
210-
211-
For detailed instructions on setting up OIDC authentication:
212-
213-
- 📺 [YouTube video on configuring Authentik with BookLore](https://www.youtube.com/watch?v=r6Ufh9ldF9M)
214-
- 📘 [Step-by-step setup guide for Pocket ID](docs/OIDC-Setup-With-PocketID.md)
215-
216-
## 🛡️ Forward Auth with Reverse Proxy
217-
218-
BookLore also supports **Forward Auth** (also known as Remote Auth) for authentication through reverse proxies like **Traefik**, **Nginx**, or **Caddy**. Forward Auth works by having your reverse proxy handle authentication and pass user information via HTTP headers to BookLore. This can be set up
219-
with providers like **Authelia** and **Authentik**.
220-
221-
For detailed setup instructions and configuration examples:
222-
223-
- 📘 [Complete Forward Auth Setup Guide](docs/forward-auth-with-proxy.md)
224-
225194
## 🤝 Community & Support
226195
227196
- 🐞 Found a bug? [Open an issue](https://github.com/adityachandelgit/BookLore/issues)

booklore-api/src/main/java/com/adityachandel/booklore/config/BeanConfig.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,26 @@
22

33
import jakarta.annotation.PostConstruct;
44
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.boot.web.client.RestTemplateBuilder;
6+
import org.springframework.context.annotation.Bean;
57
import org.springframework.context.annotation.Configuration;
8+
import org.springframework.web.client.RestTemplate;
69
import org.springframework.web.socket.config.WebSocketMessageBrokerStats;
710

11+
import java.time.Duration;
12+
813
@Configuration
914
public class BeanConfig {
1015

1116
@Autowired
1217
private WebSocketMessageBrokerStats webSocketMessageBrokerStats;
1318

19+
@Bean
20+
public RestTemplate restTemplate(RestTemplateBuilder builder) {
21+
return builder.connectTimeout(Duration.ofSeconds(10)).readTimeout(Duration.ofSeconds(15))
22+
.build();
23+
}
24+
1425
@PostConstruct
1526
public void init() {
1627
webSocketMessageBrokerStats.setLoggingPeriod(30 * 24 * 60 * 60 * 1000L); // 30 days

booklore-api/src/main/java/com/adityachandel/booklore/model/DuplicateFileInfo.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

booklore-api/src/main/java/com/adityachandel/booklore/model/FileProcessResult.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,4 @@
1414
public class FileProcessResult {
1515
private final Book book;
1616
private final FileProcessStatus status;
17-
@Builder.Default
18-
private final DuplicateFileInfo duplicate = null;
1917
}

booklore-api/src/main/java/com/adityachandel/booklore/model/dto/DuplicateFileNotification.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

booklore-api/src/main/java/com/adityachandel/booklore/model/entity/KoboSnapshotBookEntity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ public class KoboSnapshotBookEntity {
2525
private Long bookId;
2626

2727
@Column(nullable = false)
28+
@Builder.Default
2829
private boolean synced = false;
2930
}

booklore-api/src/main/java/com/adityachandel/booklore/model/entity/KoboUserSettingsEntity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ public class KoboUserSettingsEntity {
2323
private String token;
2424

2525
@Column(name = "sync_enabled")
26+
@Builder.Default
2627
private boolean syncEnabled = true;
2728

2829
@Column(name = "progress_mark_as_reading_threshold")
30+
@Builder.Default
2931
private Float progressMarkAsReadingThreshold = 1f;
3032

3133
@Column(name = "progress_mark_as_finished_threshold")

booklore-api/src/main/java/com/adityachandel/booklore/model/entity/KoreaderUserEntity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@ public class KoreaderUserEntity {
2828
private String passwordMD5;
2929

3030
@Column(name = "created_at", nullable = false, updatable = false)
31+
@Builder.Default
3132
private Instant createdAt = Instant.now();
3233

3334
@Column(name = "updated_at")
3435
private Instant updatedAt;
3536

3637
@Column(name = "sync_enabled", nullable = false)
38+
@Builder.Default
3739
private boolean syncEnabled = false;
3840

3941
@OneToOne(fetch = FetchType.LAZY)

booklore-api/src/main/java/com/adityachandel/booklore/model/entity/MagicShelfEntity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@ public class MagicShelfEntity {
3737
private boolean isPublic = false;
3838

3939
@Column(name = "created_at", nullable = false, updatable = false)
40+
@lombok.Builder.Default
4041
private LocalDateTime createdAt = LocalDateTime.now();
4142

4243
@Column(name = "updated_at", nullable = false)
44+
@lombok.Builder.Default
4345
private LocalDateTime updatedAt = LocalDateTime.now();
4446

4547
@PreUpdate

0 commit comments

Comments
 (0)