Skip to content

Commit 3052b07

Browse files
authored
Merge pull request #1707 from booklore-app/develop
Merge develop into master for release
2 parents f933623 + 4b20611 commit 3052b07

File tree

174 files changed

+10631
-2978
lines changed

Some content is hidden

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

174 files changed

+10631
-2978
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,38 +9,44 @@ assignees: ''
99

1010
# 🐛 Bug Report for Booklore
1111

12-
Thank you for helping us improve Booklore! Please fill out the sections below.
12+
Thank you for taking the time to report this bug. Your feedback helps make Booklore better for everyone!
13+
14+
Let's squash this bug together! 🔨
1315

1416
---
1517

1618
## 📝 What happened?
17-
<!-- Describe the bug in a few sentences -->
19+
<!-- Describe what went wrong -->
1820

1921

2022
## 🔄 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
23+
<!-- Provide detailed steps to reproduce the behavior. Be specific about what you clicked, typed, or configured -->
24+
1.
25+
2.
26+
3.
27+
4.
28+
29+
**Result:** <!-- What happened after these steps? -->
2630

2731
## ✅ Expected Behavior
28-
<!-- What should have happened instead? -->
32+
<!-- Describe what should have happened instead -->
2933

3034

3135
## 📸 Screenshots / Error Messages
32-
<!-- Add screenshots or paste error messages (drag & drop images here) -->
36+
<!-- Share any screenshots or error messages here (just drag & drop) -->
3337

3438

3539
## 💻 Environment
36-
- **Version:** (e.g., v1.1.0)
40+
<!-- Provide details about your setup - every detail helps! -->
41+
- **Booklore Version:** (e.g., v1.1.0)
3742
- **OS:** (e.g., Windows 11, macOS Sonoma, Ubuntu 22.04)
3843
- **Browser:** (e.g., Chrome 120, Firefox 121, Safari 17)
3944
- **Installation:** (e.g., Docker, Unraid, Manual)
45+
- **Storage Type:** (e.g., Local HDD/SSD, Synology NAS, SMB Share, NFS Mount, S3 Bucket)
4046

4147
## 📌 Additional Context
42-
<!-- Recent changes? Specific books? Anything else that might help? -->
48+
<!-- Add any other relevant information: recent changes, specific books, configuration details, etc. -->
4349

4450

4551
## ✨ Possible Solution _(Optional)_
46-
<!-- Have ideas on how to fix this? Share them here! -->
52+
<!-- Share any ideas on how to fix this issue -->

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,34 @@ assignees: ''
77

88
---
99

10-
# Feature Request Template for Booklore
10+
# Feature Request for Booklore
1111

12-
**What problem or limitation are you encountering?**
13-
Describe the challenge or issue you’re facing that this feature would address.
12+
Thank you for contributing to Booklore's development. Your suggestions help shape the future of this project.
1413

15-
**What solution or improvement do you propose?**
16-
Explain clearly what you’d like Booklore to do or how it could work better.
14+
---
15+
16+
## 📝 Description
17+
<!-- Describe the problem you're facing and the solution you're proposing -->
18+
19+
20+
## 🌟 Benefits
21+
<!-- Explain the value this feature would bring and who would benefit from it -->
22+
23+
24+
## 💻 Use Cases
25+
<!-- Describe specific scenarios where this feature would be useful -->
26+
1.
27+
2.
28+
3.
29+
30+
31+
## 📸 Visual References _(Optional)_
32+
<!-- Add screenshots, mockups, wireframes, or examples from other applications -->
33+
34+
35+
## 🎨 Technical Details _(Optional)_
36+
<!-- Share implementation ideas, alternative solutions, or related features -->
1737

18-
**Have you found any workarounds or alternatives?**
19-
Share any other solutions you’ve tried or considered, if any.
2038

21-
**Additional details**
22-
Add any extra context, examples, or screenshots that might help us understand your request.
39+
## 📌 Additional Context
40+
<!-- Any other information, research, or context that would be helpful -->

.github/workflows/docker-build-publish.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ jobs:
167167
docker buildx build \
168168
--platform linux/amd64,linux/arm64 \
169169
--build-arg APP_VERSION=${{ env.image_tag }} \
170+
--build-arg APP_REVISION=${{ github.sha }} \
170171
--tag booklore/booklore:${{ env.image_tag }} \
171172
--tag ghcr.io/booklore-app/booklore:${{ env.image_tag }} \
172173
--push .

Dockerfile

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ COPY ./booklore-ui /angular-app/
1414
RUN npm run build --configuration=production
1515

1616
# Stage 2: Build the Spring Boot app with Gradle
17-
FROM gradle:9.1-jdk25-alpine AS springboot-build
17+
FROM gradle:8.14.3-jdk21-alpine AS springboot-build
1818

1919
WORKDIR /springboot-app
2020

@@ -29,7 +29,21 @@ RUN apk add --no-cache yq && \
2929
RUN gradle clean build -x test
3030

3131
# Stage 3: Final image
32-
FROM eclipse-temurin:25-jre-alpine
32+
FROM eclipse-temurin:21.0.9_10-jre-alpine
33+
34+
ARG APP_VERSION
35+
ARG APP_REVISION
36+
37+
# Set OCI labels
38+
LABEL org.opencontainers.image.title="BookLore" \
39+
org.opencontainers.image.description="BookLore: A self-hosted, multi-user digital library with smart shelves, auto metadata, Kobo & KOReader sync, BookDrop imports, OPDS support, and a built-in reader for EPUB, PDF, and comics." \
40+
org.opencontainers.image.source="https://github.com/booklore-app/booklore" \
41+
org.opencontainers.image.url="https://github.com/booklore-app/booklore" \
42+
org.opencontainers.image.documentation="https://booklore-app.github.io/booklore-docs/docs/getting-started" \
43+
org.opencontainers.image.version=$APP_VERSION \
44+
org.opencontainers.image.revision=$APP_REVISION \
45+
org.opencontainers.image.licenses="GPL-3.0" \
46+
org.opencontainers.image.base.name="docker.io/library/eclipse-temurin:21.0.9_10-jre-alpine"
3347

3448
RUN apk update && apk add nginx gettext su-exec
3549

@@ -41,4 +55,4 @@ RUN chmod +x /start.sh
4155

4256
EXPOSE 8080 80
4357

44-
CMD ["/start.sh"]
58+
CMD ["/start.sh"]

booklore-api/build.gradle

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
plugins {
22
id 'java'
3-
id 'org.springframework.boot' version '3.5.1'
3+
id 'org.springframework.boot' version '3.5.8'
44
id 'io.spring.dependency-management' version '1.1.7'
5-
id 'org.hibernate.orm' version '7.1.3.Final'
5+
id 'org.hibernate.orm' version '6.6.36.Final'
66
id 'com.github.ben-manes.versions' version '0.53.0'
77
}
88

@@ -11,7 +11,7 @@ version = '0.0.1-SNAPSHOT'
1111

1212
java {
1313
toolchain {
14-
languageVersion = JavaLanguageVersion.of(25)
14+
languageVersion = JavaLanguageVersion.of(21)
1515
}
1616
}
1717

@@ -39,8 +39,7 @@ dependencies {
3939

4040
// --- Database & Migration ---
4141
implementation 'org.mariadb.jdbc:mariadb-java-client:3.5.6'
42-
implementation 'org.flywaydb:flyway-mysql:11.13.2'
43-
implementation 'jakarta.persistence:jakarta.persistence-api:3.2.0'
42+
implementation 'org.flywaydb:flyway-mysql:11.18.0'
4443

4544
// --- Security & Authentication ---
4645
implementation 'io.jsonwebtoken:jjwt-api:0.13.0'
@@ -52,29 +51,32 @@ dependencies {
5251
annotationProcessor 'org.projectlombok:lombok:1.18.42'
5352

5453
// --- Book & Image Processing ---
55-
implementation 'org.apache.pdfbox:pdfbox:3.0.5'
54+
implementation 'org.apache.pdfbox:pdfbox:3.0.6'
55+
implementation 'org.apache.pdfbox:xmpbox:3.0.6'
5656
implementation 'org.apache.pdfbox:jbig2-imageio:3.0.4'
57-
implementation 'org.apache.pdfbox:xmpbox:3.0.5'
5857
implementation 'com.github.jai-imageio:jai-imageio-core:1.4.0'
5958
implementation 'com.github.jai-imageio:jai-imageio-jpeg2000:1.4.0'
6059
implementation 'io.documentnode:epub4j-core:4.2.2'
6160

6261
// --- UNRAR Support ---
63-
implementation 'com.github.junrar:junrar:7.5.5'
62+
implementation 'com.github.junrar:junrar:7.5.7'
6463

6564
// --- JSON & Web Scraping ---
66-
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.20.0'
65+
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.20.1'
6766
implementation 'org.jsoup:jsoup:1.21.2'
6867

6968
// --- Mapping (DTOs & Entities) ---
7069
implementation 'org.mapstruct:mapstruct:1.6.3'
7170
annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3'
7271

7372
// --- API Documentation ---
74-
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9'
73+
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.14'
7574
implementation 'org.apache.commons:commons-compress:1.28.0'
7675
implementation 'org.apache.commons:commons-text:1.14.0'
7776

77+
// --- Template Engine ---
78+
implementation 'org.freemarker:freemarker:2.3.33'
79+
7880
// --- Test Dependencies ---
7981
testImplementation 'org.springframework.boot:spring-boot-starter-test'
8082
testImplementation 'org.assertj:assertj-core:3.27.3'
1.65 KB
Binary file not shown.

booklore-api/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

booklore-api/gradlew

Lines changed: 1 addition & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

booklore-api/gradlew.bat

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

booklore-api/src/main/java/com/adityachandel/booklore/config/security/service/OpdsUserDetailsService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ public OpdsUserDetails loadUserByUsername(String username) throws UsernameNotFou
2424
OpdsUserV2Entity userV2 = opdsUserV2Repository.findByUsername(username)
2525
.orElseThrow(() -> ApiError.USER_NOT_FOUND.createException(username));
2626
OpdsUserV2 mappedCredential = opdsUserV2Mapper.toDto(userV2);
27-
return new OpdsUserDetails(mappedCredential, null);
27+
return new OpdsUserDetails(mappedCredential);
2828
}
2929
}

0 commit comments

Comments
 (0)