All checks were successful
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | minor | `v1.16.5` → `v1.17.0` | --- ### Release Notes <details> <summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary> ### [`v1.17.0`](https://github.com/booklore-app/booklore/releases/tag/v1.17.0) [Compare Source](https://github.com/booklore-app/booklore/compare/v1.16.5...v1.17.0) #### 🌟 What's New in v1.17.0 ##### This release brings some exciting new features! Highlights include: - **Custom Fonts in the EPUB Reader**: Users can now upload and use up to 10 of their favorite fonts for a personalized reading experience. - **Reading Progress Sync**: Progress (in percent) now syncs to hardcover books and is tracked per user. - **Revamped Metadata Search**: The search UI has been redesigned to provide live, real-time results for a smoother and faster experience. Plus, numerous performance improvements and bug fixes across the app. Enjoy! #### 🚀 New Features - feat: Add custom font support for EPUB reader ([#​2120](https://github.com/booklore-app/booklore/issues/2120)) by [@​darkraise](https://github.com/darkraise) - Revamp metadata search UI to display live results ([#​2195](https://github.com/booklore-app/booklore/issues/2195)) by [@​acx10](https://github.com/acx10) - Feature/koreader hardcover sync ([#​2204](https://github.com/booklore-app/booklore/issues/2204)) by [@​boludo00](https://github.com/boludo00) #### ✨ Enhancements - feat(series-page): implement multi-select functionality for book selection and add footer actions ([#​2167](https://github.com/booklore-app/booklore/issues/2167)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Add per-user font management permission ([#​2210](https://github.com/booklore-app/booklore/issues/2210)) by [@​acx10](https://github.com/acx10) - Support individual “write to file” settings per book type, with configurable file size limits ([#​2206](https://github.com/booklore-app/booklore/issues/2206)) by [@​acx10](https://github.com/acx10) - feat(ComicVine): use structured search for ComicVine metadata fetching instead of generic /search ([#​2193](https://github.com/booklore-app/booklore/issues/2193)) by [@​balazs-szucs](https://github.com/balazs-szucs) - refactor(images): migrate to TwelveMonkeys ImageIO with graceful unsupported format handling ([#​2188](https://github.com/booklore-app/booklore/issues/2188)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Show a persistent loader while a large library is being created ([#​2200](https://github.com/booklore-app/booklore/issues/2200)) by [@​acx10](https://github.com/acx10) - feat(magic-shelf): add ISBN-10 and ISBN-13 metadata fields to book rules ([#​2196](https://github.com/booklore-app/booklore/issues/2196)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Implement memoization in the book card to reduce CPU usage during scrolling ([#​2198](https://github.com/booklore-app/booklore/issues/2198)) by [@​acx10](https://github.com/acx10) - feat(metadata): enhance XML parsing with secure processing and improved error handling ([#​2163](https://github.com/booklore-app/booklore/issues/2163)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat(magic-shelf): add genre filter support and improve category labeling in rule fields ([#​2075](https://github.com/booklore-app/booklore/issues/2075)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat(cover-generator): enhance cover resolution and redesign layout for improved aesthetics ([#​2125](https://github.com/booklore-app/booklore/issues/2125)) by [@​balazs-szucs](https://github.com/balazs-szucs) #### 🐛 Bug Fixes - fix(ui): use view preference override for magic shelves ([#​2215](https://github.com/booklore-app/booklore/issues/2215)) by [@​xcashy](https://github.com/xcashy) - fix(kobo-sync): fix Kobo series handling for empty names and series number formatting ([#​2185](https://github.com/booklore-app/booklore/issues/2185)) by [@​xcashy](https://github.com/xcashy) - fix(cbx): "Archive too large" error for invalid/corrupt CBX files ([#​2205](https://github.com/booklore-app/booklore/issues/2205)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix: correctly update book cover hash on metadata refresh ([#​2149](https://github.com/booklore-app/booklore/issues/2149)) by [@​acx10](https://github.com/acx10) #### 🛠️ Refactoring & Maintenance - fix: Ignore access denied when doing library scan instead of failing (fixes [#​1342](https://github.com/booklore-app/booklore/issues/1342), [#​2122](https://github.com/booklore-app/booklore/issues/2122)) ([#​2132](https://github.com/booklore-app/booklore/issues/2132)) by [@​halkeye](https://github.com/halkeye) - feat(ui): add series number overlay for More in Series ([#​2208](https://github.com/booklore-app/booklore/issues/2208)) by [@​xcashy](https://github.com/xcashy) - refactor(frontend): resolve linting errors, and EPUB reader lifecycle errors ([#​2127](https://github.com/booklore-app/booklore/issues/2127)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Test ([#​2201](https://github.com/booklore-app/booklore/issues/2201)) by [@​acx10](https://github.com/acx10) - fix(parser): handle missing results table in GoodReads search and log a warning (instead of erroring) ([#​2187](https://github.com/booklore-app/booklore/issues/2187)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(lubimyczytac): Fix Lubimyczytac metadata lock persistence ([#​2194](https://github.com/booklore-app/booklore/issues/2194)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Move custom fonts management to Reader tab ([#​2161](https://github.com/booklore-app/booklore/issues/2161)) by [@​acx10](https://github.com/acx10) - fix(api): kobo proxy server unit tests ([#​2136](https://github.com/booklore-app/booklore/issues/2136)) by [@​CounterClops](https://github.com/CounterClops) - fix(docs): update issue report links to use specific templates ([#​2156](https://github.com/booklore-app/booklore/issues/2156)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Add Vitest frontend tests to CI with JUnit reporting and coverage ([#​2151](https://github.com/booklore-app/booklore/issues/2151)) by [@​acx10](https://github.com/acx10) - Introduce Vitest as the frontend Angular testing framework for Booklore ([#​2150](https://github.com/booklore-app/booklore/issues/2150)) by [@​acx10](https://github.com/acx10) #### 📦 Dependencies - chore(deps): bump qs and body-parser in /booklore-ui ([#​2088](https://github.com/booklore-app/booklore/issues/2088)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) #### 🐳 Docker Images - **Docker Hub:** `booklore/booklore:v1.17.0` - **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.17.0` **Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.16.5...v1.17.0> #### 📸 Screenshots: <img width="750" height="452" alt="Screenshot 2026-01-09 at 3 39 40 PM" src="https://github.com/user-attachments/assets/40e13036-0f51-4b39-99fb-9239f6dc6067" /> <img width="750" height="452" alt="Screenshot 2026-01-09 at 3 39 57 PM" src="https://github.com/user-attachments/assets/338d00bf-795f-4613-aa2c-f80dee546cc4" /> <img width="750" height="452" alt="Screenshot 2026-01-09 at 3 42 06 PM" src="https://github.com/user-attachments/assets/5e420e89-c186-4d96-8520-601ce6c0342c" /> <img width="750" height="452" alt="Screenshot 2026-01-09 at 3 40 29 PM" src="https://github.com/user-attachments/assets/13a6cfcc-f691-4613-9dfb-1e761cc67450" /> <img width="750" height="452" alt="Screenshot 2026-01-09 at 3 41 15 PM" src="https://github.com/user-attachments/assets/2efdaefb-8a94-4e05-a3b8-03bc4a37d22f" /> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3146 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
245 lines
6.2 KiB
YAML
245 lines
6.2 KiB
YAML
booklore:
|
|
controllers:
|
|
main:
|
|
type: deployment
|
|
replicas: 1
|
|
strategy: Recreate
|
|
revisionHistoryLimit: 3
|
|
containers:
|
|
main:
|
|
image:
|
|
repository: ghcr.io/booklore-app/booklore
|
|
tag: v1.17.0
|
|
pullPolicy: IfNotPresent
|
|
env:
|
|
- name: TZ
|
|
value: America/Chicago
|
|
- name: DATABASE_URL
|
|
value: jdbc:mariadb://booklore-mariadb-cluster-primary.booklore:3306/booklore
|
|
- name: DATABASE_USERNAME
|
|
value: booklore
|
|
- name: DATABASE_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: booklore-database-secret
|
|
key: password
|
|
- name: BOOKLORE_PORT
|
|
value: 6060
|
|
- name: SWAGGER_ENABLED
|
|
value: false
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 128Mi
|
|
service:
|
|
main:
|
|
controller: main
|
|
ports:
|
|
http:
|
|
port: 80
|
|
targetPort: 6060
|
|
protocol: HTTP
|
|
route:
|
|
main:
|
|
kind: HTTPRoute
|
|
parentRefs:
|
|
- group: gateway.networking.k8s.io
|
|
kind: Gateway
|
|
name: traefik-gateway
|
|
namespace: traefik
|
|
hostnames:
|
|
- booklore.alexlebens.net
|
|
rules:
|
|
- backendRefs:
|
|
- group: ''
|
|
kind: Service
|
|
name: booklore
|
|
port: 80
|
|
weight: 100
|
|
matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /
|
|
persistence:
|
|
config:
|
|
forceRename: booklore-config
|
|
storageClass: ceph-block
|
|
accessMode: ReadWriteOnce
|
|
size: 5Gi
|
|
retain: true
|
|
advancedMounts:
|
|
main:
|
|
main:
|
|
- path: /app/data
|
|
readOnly: false
|
|
data:
|
|
forceRename: booklore-data
|
|
storageClass: ceph-block
|
|
accessMode: ReadWriteOnce
|
|
size: 10Gi
|
|
retain: true
|
|
advancedMounts:
|
|
main:
|
|
main:
|
|
- path: /data
|
|
readOnly: false
|
|
books-import:
|
|
type: emptyDir
|
|
advancedMounts:
|
|
main:
|
|
main:
|
|
- path: /bookdrop
|
|
readOnly: false
|
|
ingest:
|
|
existingClaim: booklore-books-import-nfs-storage
|
|
advancedMounts:
|
|
main:
|
|
main:
|
|
- path: /bookdrop/ingest
|
|
readOnly: false
|
|
mariadb-cluster:
|
|
mariadb:
|
|
rootPasswordSecretKeyRef:
|
|
generate: false
|
|
name: booklore-database-secret
|
|
key: password
|
|
storage:
|
|
size: 5Gi
|
|
replicas: 3
|
|
galera:
|
|
enabled: true
|
|
bootstrapFrom:
|
|
s3:
|
|
bucket: mariadb-backups-b230a2f5aecf080a4b372c08
|
|
prefix: cl01tl/booklore
|
|
endpoint: nyc3.digitaloceanspaces.com
|
|
region: us-east-1
|
|
accessKeyIdSecretKeyRef:
|
|
name: booklore-mariadb-cluster-backup-secret-external
|
|
key: access
|
|
secretAccessKeySecretKeyRef:
|
|
name: booklore-mariadb-cluster-backup-secret-external
|
|
key: secret
|
|
tls:
|
|
enabled: true
|
|
backupContentType: Physical
|
|
databases:
|
|
- name: booklore
|
|
characterSet: utf8
|
|
collate: utf8_general_ci
|
|
cleanupPolicy: Delete
|
|
requeueInterval: 10h
|
|
users:
|
|
- name: booklore
|
|
passwordSecretKeyRef:
|
|
name: booklore-database-secret
|
|
key: password
|
|
host: '%'
|
|
cleanupPolicy: Delete
|
|
requeueInterval: 10h
|
|
retryInterval: 30s
|
|
grants:
|
|
- name: booklore
|
|
privileges:
|
|
- "ALL PRIVILEGES"
|
|
database: "booklore"
|
|
table: "*"
|
|
username: booklore
|
|
grantOption: true
|
|
host: '%'
|
|
cleanupPolicy: Delete
|
|
requeueInterval: 10h
|
|
retryInterval: 30s
|
|
physicalBackups:
|
|
- name: backup-external
|
|
schedule:
|
|
cron: "0 0 * * 0"
|
|
suspend: false
|
|
immediate: true
|
|
compression: gzip
|
|
maxRetention: 2160h
|
|
successfulJobsHistoryLimit: 1
|
|
storage:
|
|
s3:
|
|
bucket: mariadb-backups-b230a2f5aecf080a4b372c08
|
|
prefix: cl01tl/booklore
|
|
endpoint: nyc3.digitaloceanspaces.com
|
|
region: us-east-1
|
|
accessKeyIdSecretKeyRef:
|
|
name: booklore-mariadb-cluster-backup-secret-external
|
|
key: access
|
|
secretAccessKeySecretKeyRef:
|
|
name: booklore-mariadb-cluster-backup-secret-external
|
|
key: secret
|
|
tls:
|
|
enabled: true
|
|
- name: backup-remote
|
|
schedule:
|
|
cron: "0 0 * * 0"
|
|
suspend: false
|
|
immediate: true
|
|
compression: gzip
|
|
maxRetention: 2160h
|
|
successfulJobsHistoryLimit: 1
|
|
storage:
|
|
s3:
|
|
bucket: mariadb-backups
|
|
prefix: cl01tl/booklore
|
|
endpoint: garage-ps10rp.boreal-beaufort.ts.net:3900
|
|
region: us-east-1
|
|
accessKeyIdSecretKeyRef:
|
|
name: booklore-mariadb-cluster-backup-secret-garage
|
|
key: access
|
|
secretAccessKeySecretKeyRef:
|
|
name: booklore-mariadb-cluster-backup-secret-garage
|
|
key: secret
|
|
tls:
|
|
enabled: true
|
|
- name: backup-garage
|
|
schedule:
|
|
cron: "0 0 * * *"
|
|
suspend: false
|
|
immediate: true
|
|
compression: gzip
|
|
maxRetention: 360h
|
|
successfulJobsHistoryLimit: 1
|
|
storage:
|
|
s3:
|
|
bucket: mariadb-backups
|
|
prefix: cl01tl/booklore
|
|
endpoint: garage-main.garage:3900
|
|
region: us-east-1
|
|
accessKeyIdSecretKeyRef:
|
|
name: booklore-mariadb-cluster-backup-secret-garage
|
|
key: access
|
|
secretAccessKeySecretKeyRef:
|
|
name: booklore-mariadb-cluster-backup-secret-garage
|
|
key: secret
|
|
volsync-target-config:
|
|
pvcTarget: booklore-config
|
|
local:
|
|
enabled: true
|
|
schedule: 12 8 * * *
|
|
remote:
|
|
enabled: false
|
|
external:
|
|
enabled: true
|
|
schedule: 12 9 * * *
|
|
volsync-target-data:
|
|
pvcTarget: booklore-data
|
|
local:
|
|
enabled: true
|
|
schedule: 14 8 * * *
|
|
restic:
|
|
cacheCapacity: 10Gi
|
|
remote:
|
|
enabled: true
|
|
schedule: 14 10 * * *
|
|
restic:
|
|
cacheCapacity: 10Gi
|
|
external:
|
|
enabled: true
|
|
schedule: 14 9 * * *
|
|
restic:
|
|
cacheCapacity: 10Gi
|