36 Commits

Author SHA1 Message Date
636bf738d4 chore(deps): update ghcr.io/linuxserver/bazarr:1.5.5 docker digest to c381924 (#4224)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 49s
renovate / renovate (push) Successful in 2m42s
2026-02-24 22:53:20 +00:00
5bfd49f592 chore(deps): update helm release authentik to v2026 (#4222)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m8s
renovate / renovate (push) Has been cancelled
Reviewed-on: #4222
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 22:49:27 +00:00
15423676b5 chore(deps): update booklore-app/booklore to v2 (major) (#4176)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 37s
renovate / renovate (push) Successful in 4m52s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [booklore-app/BookLore](https://github.com/booklore-app/BookLore) | major | `v1.18.5` → `v2.0.1` |
| [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | major | `v1.18.5` → `v2.0.1` |

---

### Release Notes

<details>
<summary>booklore-app/BookLore (booklore-app/BookLore)</summary>

### [`v2.0.1`](https://github.com/booklore-app/booklore/releases/tag/v2.0.1)

[Compare Source](https://github.com/booklore-app/BookLore/compare/v2.0.0...v2.0.1)

#### 🌟 What's New in v2.0.1

#### 🐛 Bug Fixes

- Fix max upload size description to include all file formats ([#&#8203;2894](https://github.com/booklore-app/BookLore/issues/2894)) by [@&#8203;acx10](https://github.com/acx10)
- Fix magic shelf physical book filter and polish UI ([#&#8203;2888](https://github.com/booklore-app/BookLore/issues/2888)) by [@&#8203;acx10](https://github.com/acx10)
- Fix metadata settings not saving due to null deserialization error ([#&#8203;2886](https://github.com/booklore-app/BookLore/issues/2886)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Kobo download/image URLs using wrong port behind reverse proxy ([#&#8203;2875](https://github.com/booklore-app/BookLore/issues/2875)) by [@&#8203;acx10](https://github.com/acx10)
- Fix app crash on startup when /bookdrop volume is not mounted ([#&#8203;2873](https://github.com/booklore-app/BookLore/issues/2873)) by [@&#8203;acx10](https://github.com/acx10)

#### 🛠️ Refactoring & Maintenance

- Hide sidecar tab for physical books ([#&#8203;2887](https://github.com/booklore-app/BookLore/issues/2887)) by [@&#8203;acx10](https://github.com/acx10)
- Translations update from Hosted Weblate ([#&#8203;2866](https://github.com/booklore-app/BookLore/issues/2866)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v2.0.1`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v2.0.1`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v2.0.0...v2.0.1>

### [`v2.0.0`](https://github.com/booklore-app/booklore/releases/tag/v2.0.0)

[Compare Source](https://github.com/booklore-app/BookLore/compare/v1.18.5...v2.0.0)

#### 🌟 What's New in v2.0.0

This is the biggest Booklore release yet, with nearly 200 commits touching every part of the application:

- **Multi-Format Book Support & Audiobooks**: Books can now have multiple file formats (EPUB, PDF, CBZ, etc.) attached to a single entry. Full audiobook support is here with a dedicated player, streaming playback, narrator filtering, and session tracking.
- **Duplicate Book Detection & Merge**: Booklore can now detect duplicate books across your library. A new merge tool lets you combine duplicates, choose which formats to keep, and optionally move files, all without losing metadata.
- **Author Metadata via Audnexus**: Author pages now pull rich metadata (bios, images) from the Audnexus API, with a dedicated author browser, detail page, and editor.
- **Series Browser**: A brand new series browser page with search, filtering, sorting, and resizable cards for browsing your series collection at a glance.
- **Annotation Notebook**: All your highlights, notes, and bookmarks are now collected in a searchable, paginated notebook view.
- **Audit Log System**: Admins can now see a full audit trail of significant actions (user management, library changes, metadata operations) with geo flags, relative timestamps, and filterable logs.
- **Bidirectional Kobo Sync**: Full two-way reading progress sync with Kobo devices, plus shelves and magic shelves now sync as Kobo tags.
- **Cascading Sidebar Filters**: Filters now cascade, so selecting an author narrows available series, genres, etc. You can also customize which filters are visible.
- **10+ New Statistics Charts**: A massive expansion of the stats page with reading heatmaps, distribution charts, completion races, and more.
- **PDF Annotations & Reader Upgrades**: The PDF reader now supports annotations, dark/light mode toggle, and Range streaming. The ebook reader gains fullscreen, keyboard shortcuts, and go-to-percentage. The CBX reader adds fullscreen, slideshow, RTL, and long strip mode.
- **Sidecar Metadata Files**: Booklore can now read and write `.metadata.json` sidecar files alongside your books for portable metadata storage.
- **Extended Comic Metadata**: Full ComicInfo.xml support with a dedicated comic metadata picker and write-back to CBZ/PDF files.
- **Internationalization via Weblate**: Booklore is now fully translatable with Transloco and Weblate integration. Ships with 15+ languages including Hungarian, Slovenian, Croatian, Swedish, Chinese, and Japanese.
- **Java 25, Spring Boot 4, Gradle 9**: The entire backend has been upgraded to the latest stack. Nginx has been removed; Angular is now served directly from Spring Boot.
- **Login Rate Limiting**: Brute-force protection on the login endpoint. Plus new age and content rating support for restricted libraries.
- **Performance**: Book list API optimized with ETag caching, delta sync, and IndexedDB. Project Lilliput compact object headers reduce heap usage.

#### 🚀 New Features

- Introduce multi-format book support, including audiobooks ([#&#8203;2486](https://github.com/booklore-app/BookLore/issues/2486)) by [@&#8203;acx10](https://github.com/acx10)
- Add duplicate book detection/merge and fix format-related data loss ([#&#8203;2820](https://github.com/booklore-app/BookLore/issues/2820)) by [@&#8203;acx10](https://github.com/acx10)
- Add author metadata via Audnexus with browser, detail, and editor pages ([#&#8203;2843](https://github.com/booklore-app/BookLore/issues/2843)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add series browser page ([#&#8203;2771](https://github.com/booklore-app/BookLore/issues/2771)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add annotation notebook with server-side pagination ([#&#8203;2736](https://github.com/booklore-app/BookLore/issues/2736)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add audit log system for tracking admin-significant actions ([#&#8203;2759](https://github.com/booklore-app/BookLore/issues/2759)) by [@&#8203;acx10](https://github.com/acx10)
- Add bidirectional Kobo reading progress sync ([#&#8203;2791](https://github.com/booklore-app/BookLore/issues/2791)) by [@&#8203;acx10](https://github.com/acx10)
- feat(filters): implement cascading sidebar filters ([#&#8203;2616](https://github.com/booklore-app/BookLore/issues/2616)) by [@&#8203;acx10](https://github.com/acx10)
- feat(cbx-reader): add fullscreen, slideshow, RTL, long strip mode and keyboard shortcuts ([#&#8203;2632](https://github.com/booklore-app/BookLore/issues/2632)) by [@&#8203;acx10](https://github.com/acx10)
- feat(sidecar): add sidecar JSON metadata file support ([#&#8203;2657](https://github.com/booklore-app/BookLore/issues/2657)) by [@&#8203;acx10](https://github.com/acx10)
- feat(comic-metadata): add extended comic metadata support ([#&#8203;2654](https://github.com/booklore-app/BookLore/issues/2654)) by [@&#8203;acx10](https://github.com/acx10)
- feat(i18n): add Transloco translation framework with EN/ES and 7 language scaffolds ([#&#8203;2681](https://github.com/booklore-app/BookLore/issues/2681)) by [@&#8203;acx10](https://github.com/acx10)
- feat(api, build): Upgrade to Java 25, Gradle 9, and Spring Boot 4, Jackson 3 ([#&#8203;2597](https://github.com/booklore-app/BookLore/issues/2597)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Remove nginx and serve Angular directly from Spring Boot ([#&#8203;2662](https://github.com/booklore-app/BookLore/issues/2662)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add login rate limiting to prevent brute-force attacks ([#&#8203;2761](https://github.com/booklore-app/BookLore/issues/2761)) by [@&#8203;acx10](https://github.com/acx10)
- feat(content-restrictions): add age rating and content rating support ([#&#8203;2619](https://github.com/booklore-app/BookLore/issues/2619)) by [@&#8203;acx10](https://github.com/acx10)
- feat(sorting): add multi-field sorting support ([#&#8203;2628](https://github.com/booklore-app/BookLore/issues/2628)) by [@&#8203;acx10](https://github.com/acx10)
- feat(metadata): add custom metadata write to file support for moods, tags, ratings, and external IDs in PDF, and CBZ ([#&#8203;2552](https://github.com/booklore-app/BookLore/issues/2552)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(metadata) Save basic metadata to EPUB file - Bonus use Calibre Custom Columns for importing metadata. ([#&#8203;1879](https://github.com/booklore-app/BookLore/issues/1879)) by [@&#8203;jadehawk](https://github.com/jadehawk)
- feat: add grouped field dropdown and composite fields to magic shelf ([#&#8203;2750](https://github.com/booklore-app/BookLore/issues/2750)) by [@&#8203;acx10](https://github.com/acx10)
- feat(filters): add customizable visible filters setting ([#&#8203;2625](https://github.com/booklore-app/BookLore/issues/2625)) by [@&#8203;acx10](https://github.com/acx10)
- Add 10 advanced stats charts ([#&#8203;2850](https://github.com/booklore-app/BookLore/issues/2850)) by [@&#8203;acx10](https://github.com/acx10)
- feat(stats): add 5 new user statistics charts ([#&#8203;2703](https://github.com/booklore-app/BookLore/issues/2703)) by [@&#8203;acx10](https://github.com/acx10)
- feat(i18n): add Weblate integration and auth translations ([#&#8203;2727](https://github.com/booklore-app/BookLore/issues/2727)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add else clause and value modifiers to file naming patterns ([#&#8203;2724](https://github.com/booklore-app/BookLore/issues/2724)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add button to fetch metadata from book file ([#&#8203;2739](https://github.com/booklore-app/BookLore/issues/2739)) by [@&#8203;acx10](https://github.com/acx10)
- feat(google-books): add optional API key configuration ([#&#8203;2629](https://github.com/booklore-app/BookLore/issues/2629)) by [@&#8203;acx10](https://github.com/acx10)

####  Enhancements

- feat(reader): add PDF annotations, Range streaming, and optimized chunk loading ([#&#8203;2701](https://github.com/booklore-app/BookLore/issues/2701)) by [@&#8203;acx10](https://github.com/acx10)
- feat(reader): add fullscreen, keyboard shortcuts, search cancel, and go-to-percentage ([#&#8203;2698](https://github.com/booklore-app/BookLore/issues/2698)) by [@&#8203;acx10](https://github.com/acx10)
- feat(reader): add dark/light mode toggle and improved close button to PDF reader ([#&#8203;2699](https://github.com/booklore-app/BookLore/issues/2699)) by [@&#8203;acx10](https://github.com/acx10)
- feat(kobo-sync): add user scoped 2 way kobo sync ([#&#8203;2452](https://github.com/booklore-app/BookLore/issues/2452)) by [@&#8203;b3nk3](https://github.com/b3nk3)
- feat(kobo-sync): Sync Shelves and Magic Shelves to Kobo Tags ([#&#8203;2236](https://github.com/booklore-app/BookLore/issues/2236)) by [@&#8203;xcashy](https://github.com/xcashy)
- Redesign series page layout and book list tab ([#&#8203;2847](https://github.com/booklore-app/BookLore/issues/2847)) by [@&#8203;acx10](https://github.com/acx10)
- feat(sort): replace compound sort options with atomic fields and multi-sort support ([#&#8203;2686](https://github.com/booklore-app/BookLore/issues/2686)) by [@&#8203;acx10](https://github.com/acx10)
- Add moveFiles option to attach/merge and per-book delete in duplicate merger ([#&#8203;2833](https://github.com/booklore-app/BookLore/issues/2833)) by [@&#8203;acx10](https://github.com/acx10)
- feat: enhance audit logs with geo flags, relative time, and UX improvements ([#&#8203;2760](https://github.com/booklore-app/BookLore/issues/2760)) by [@&#8203;acx10](https://github.com/acx10)
- feat(bookdrop): add ability to poll the bookdrop folder ([#&#8203;2768](https://github.com/booklore-app/BookLore/issues/2768)) by [@&#8203;arjunsrinivasan1997](https://github.com/arjunsrinivasan1997)
- feat: add metadata presence filter to magic shelf ([#&#8203;2757](https://github.com/booklore-app/BookLore/issues/2757)) by [@&#8203;acx10](https://github.com/acx10)
- feat(upload): add upload progress tracking with progress bar and stats ([#&#8203;2640](https://github.com/booklore-app/BookLore/issues/2640)) by [@&#8203;acx10](https://github.com/acx10)
- feat(email): add format selection to email book dialog ([#&#8203;2650](https://github.com/booklore-app/BookLore/issues/2650)) by [@&#8203;acx10](https://github.com/acx10)
- feat(pwa): Enable fullscreen mode for Android immersive reading ([#&#8203;2649](https://github.com/booklore-app/BookLore/issues/2649)) by [@&#8203;alondero](https://github.com/alondero)
- Add Hungarian and Slovenian language support ([#&#8203;2846](https://github.com/booklore-app/BookLore/issues/2846)) by [@&#8203;acx10](https://github.com/acx10)
- fix(library-service): prevent concurrent library scans with a tracking set ([#&#8203;2637](https://github.com/booklore-app/BookLore/issues/2637)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat: add configurable sidebar width setting ([#&#8203;2749](https://github.com/booklore-app/BookLore/issues/2749)) by [@&#8203;acx10](https://github.com/acx10)
- refactor(download): simplify file download to use browser native handling ([#&#8203;2639](https://github.com/booklore-app/BookLore/issues/2639)) by [@&#8203;acx10](https://github.com/acx10)

#### 🎨 UI Tweaks

- Add visual polish to book card component ([#&#8203;2788](https://github.com/booklore-app/BookLore/issues/2788)) by [@&#8203;acx10](https://github.com/acx10)
- refactor: centralize access-denied card styles into shared mixin ([#&#8203;2515](https://github.com/booklore-app/BookLore/issues/2515)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐛 Bug Fixes

- fix(auth): resolve DST-related login failure for refresh tokens ([#&#8203;2624](https://github.com/booklore-app/BookLore/issues/2624)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Kobo sync HeadersTooLargeException for large libraries ([#&#8203;2809](https://github.com/booklore-app/BookLore/issues/2809)) by [@&#8203;acx10](https://github.com/acx10)
- fix(metadata-refresh): Correct metadata update priorities and preserve disabled fields during 'replace all' ([#&#8203;2503](https://github.com/booklore-app/BookLore/issues/2503)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-parsers): improve ISBN search logic and fallback strategies for metadata fetching ([#&#8203;2502](https://github.com/booklore-app/BookLore/issues/2502)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-update): ensure per-book transaction isolation in bulk updates to prevent race conditions ([#&#8203;2536](https://github.com/booklore-app/BookLore/issues/2536)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-refresh): fix filter book shelves by authenticated user logs out the user. ([#&#8203;2481](https://github.com/booklore-app/BookLore/issues/2481)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix null collection errors for PDFs, audiobooks, and physical books ([#&#8203;2817](https://github.com/booklore-app/BookLore/issues/2817)) by [@&#8203;acx10](https://github.com/acx10)
- fix(library-processing): re-fetch library entity after clearing entity manager during rescan ([#&#8203;2507](https://github.com/booklore-app/BookLore/issues/2507)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(file-move): ensure file moves are rolled back if database update fails ([#&#8203;2588](https://github.com/booklore-app/BookLore/issues/2588)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(file-move): update empty directory cleanup to handle multiple library paths ([#&#8203;2634](https://github.com/booklore-app/BookLore/issues/2634)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix CBR/CB7 to CBZ conversion losing track of file path ([#&#8203;2835](https://github.com/booklore-app/BookLore/issues/2835)) by [@&#8203;acx10](https://github.com/acx10)
- fix(cbz-reader): CBZ reading regression and optimize ZIP parsing strategy ([#&#8203;2593](https://github.com/booklore-app/BookLore/issues/2593)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix PDF reader not loading alternate format files ([#&#8203;2836](https://github.com/booklore-app/BookLore/issues/2836)) by [@&#8203;acx10](https://github.com/acx10)
- fix(epub-cover-extract): improve cover image extraction with fallback handling ([#&#8203;2585](https://github.com/booklore-app/BookLore/issues/2585)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#&#8203;2636](https://github.com/booklore-app/BookLore/issues/2636)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(book-rule-evaluator): fix file type handling and add mapping for specific formats to fix magic shelve based on filetype ([#&#8203;2480](https://github.com/booklore-app/BookLore/issues/2480)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix magic shelf rule evaluation for numeric comparisons ([#&#8203;2795](https://github.com/booklore-app/BookLore/issues/2795)) by [@&#8203;acx10](https://github.com/acx10)
- Fix read status NULL progress handling in rule evaluator ([#&#8203;2821](https://github.com/booklore-app/BookLore/issues/2821)) by [@&#8203;acx10](https://github.com/acx10)
- Fix bookdrop race condition processing files before fully written ([#&#8203;2785](https://github.com/booklore-app/BookLore/issues/2785)) by [@&#8203;acx10](https://github.com/acx10)
- fix(bookdrop): handle file modifications in Bookdrop event handler ([#&#8203;2559](https://github.com/booklore-app/BookLore/issues/2559)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(hardcover-sync): Don't send repeated read status to Hardcover.app ([#&#8203;2609](https://github.com/booklore-app/BookLore/issues/2609)) by [@&#8203;PhasecoreX](https://github.com/PhasecoreX)
- fix(api): Select correct Hardcover.app ISBN from lookup results ([#&#8203;2530](https://github.com/booklore-app/BookLore/issues/2530)) by [@&#8203;PhasecoreX](https://github.com/PhasecoreX)
- fix(ui): fix memory leaks and cascading API calls in metadata editor ([#&#8203;2716](https://github.com/booklore-app/BookLore/issues/2716)) by [@&#8203;acx10](https://github.com/acx10)
- fix: replace Quill editor with native HTML rendering for book descriptions ([#&#8203;2733](https://github.com/booklore-app/BookLore/issues/2733)) by [@&#8203;acx10](https://github.com/acx10)
- Fix reading stats queries not accounting for timezone ([#&#8203;2844](https://github.com/booklore-app/BookLore/issues/2844)) by [@&#8203;acx10](https://github.com/acx10)
- Fix reading session timeline long sessions, tooltip perf, and week mismatch ([#&#8203;2848](https://github.com/booklore-app/BookLore/issues/2848)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reading-stats,ui): update heatmap to use local time formatting… ([#&#8203;2587](https://github.com/booklore-app/BookLore/issues/2587)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- fix(select-all): "Mark All" bug and add "Remove from all shelves" bulk action across components ([#&#8203;2562](https://github.com/booklore-app/BookLore/issues/2562)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(opds): Fix OPDS CBR mime type reporting and strict Archive detection ([#&#8203;2592](https://github.com/booklore-app/BookLore/issues/2592)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix OPDS shelf filter cartesian product ([#&#8203;2837](https://github.com/booklore-app/BookLore/issues/2837)) by [@&#8203;acx10](https://github.com/acx10)
- fix(comic-metadata): fix series grouping bug with external ComicInfo.xml metadata ([#&#8203;2385](https://github.com/booklore-app/BookLore/issues/2385)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix additional file uploader bugs and improve metadata viewer ([#&#8203;2816](https://github.com/booklore-app/BookLore/issues/2816)) by [@&#8203;acx10](https://github.com/acx10)
- Fix PWA offline fallback blocking localhost access when internet is disconnected ([#&#8203;2784](https://github.com/booklore-app/BookLore/issues/2784)) by [@&#8203;acx10](https://github.com/acx10)
- fix(audiobook-reader): use preload=none for immediate streaming playback ([#&#8203;2518](https://github.com/booklore-app/BookLore/issues/2518)) by [@&#8203;acx10](https://github.com/acx10)
- fix: reset audiobook progress and clear cached progress in UI ([#&#8203;2711](https://github.com/booklore-app/BookLore/issues/2711)) by [@&#8203;acx10](https://github.com/acx10)
- Fix cbx reader prev/next book stacking on close ([#&#8203;2858](https://github.com/booklore-app/BookLore/issues/2858)) by [@&#8203;acx10](https://github.com/acx10)
- Fix ebook reader header not hiding on mobile tap ([#&#8203;2857](https://github.com/booklore-app/BookLore/issues/2857)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reader): enable text copy in ebook reader ([#&#8203;2702](https://github.com/booklore-app/BookLore/issues/2702)) by [@&#8203;acx10](https://github.com/acx10)
- Fix CBZ reader scroll position reset in infinite scroll mode ([#&#8203;2781](https://github.com/booklore-app/BookLore/issues/2781)) by [@&#8203;acx10](https://github.com/acx10)
- Fix column gap +/- buttons in eBook reader default settings ([#&#8203;2780](https://github.com/booklore-app/BookLore/issues/2780)) by [@&#8203;acx10](https://github.com/acx10)
- Fix email provider creation failing due to null shared field ([#&#8203;2794](https://github.com/booklore-app/BookLore/issues/2794)) by [@&#8203;acx10](https://github.com/acx10)
- Fix audit logs pagination bug and add URL query param sync ([#&#8203;2787](https://github.com/booklore-app/BookLore/issues/2787)) by [@&#8203;acx10](https://github.com/acx10)
- Fix audit log description overflow for bulk metadata refresh ([#&#8203;2783](https://github.com/booklore-app/BookLore/issues/2783)) by [@&#8203;acx10](https://github.com/acx10)
- Fix multiple author card menus opening simultaneously ([#&#8203;2852](https://github.com/booklore-app/BookLore/issues/2852)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Goodreads label mappings and format config ([#&#8203;2779](https://github.com/booklore-app/BookLore/issues/2779)) by [@&#8203;AlfredSimpson](https://github.com/AlfredSimpson)
- fix(ui): encode filter values in query params to handle commas in names ([#&#8203;2717](https://github.com/booklore-app/BookLore/issues/2717)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): prevent footer submenu from rendering off screen ([#&#8203;2714](https://github.com/booklore-app/BookLore/issues/2714)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): inline mobile charts submenu to prevent layout overflow ([#&#8203;2713](https://github.com/booklore-app/BookLore/issues/2713)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): correctly format lubimyczytac external rating link ([#&#8203;2491](https://github.com/booklore-app/BookLore/issues/2491)) by [@&#8203;sebhewelt](https://github.com/sebhewelt)
- Fix iconDisplay binding syntax in metadata viewer ([#&#8203;2772](https://github.com/booklore-app/BookLore/issues/2772)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Fix mobile toolbar overlapping on small screens ([#&#8203;2856](https://github.com/booklore-app/BookLore/issues/2856)) by [@&#8203;acx10](https://github.com/acx10)
- Fix book browser header title overflow on mobile ([#&#8203;2808](https://github.com/booklore-app/BookLore/issues/2808)) by [@&#8203;acx10](https://github.com/acx10)
- fix(book-browser): resolve footer menu not hiding after navigation back ([#&#8203;2626](https://github.com/booklore-app/BookLore/issues/2626)) by [@&#8203;acx10](https://github.com/acx10)
- fix: align frontend Page interfaces with VIA\_DTO serialization format ([#&#8203;2751](https://github.com/booklore-app/BookLore/issues/2751)) by [@&#8203;acx10](https://github.com/acx10)
- fix: show provider icons in metadata viewer when only ID is present ([#&#8203;2734](https://github.com/booklore-app/BookLore/issues/2734)) by [@&#8203;acx10](https://github.com/acx10)
- fix: hide show-more button when description fits without truncation ([#&#8203;2766](https://github.com/booklore-app/BookLore/issues/2766)) by [@&#8203;acx10](https://github.com/acx10)
- fix: use audiobook thumbnail for audiobook entries in notebook ([#&#8203;2763](https://github.com/booklore-app/BookLore/issues/2763)) by [@&#8203;acx10](https://github.com/acx10)
- fix: show session numbers in book ([#&#8203;2696](https://github.com/booklore-app/BookLore/issues/2696)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- fix(settings): use boxed Integer for ScrollerConfig.maxItems to allow null ([#&#8203;2684](https://github.com/booklore-app/BookLore/issues/2684)) by [@&#8203;acx10](https://github.com/acx10)
- fix(series-multi-select): Fix transparency in series multi select pop-up ([#&#8203;2555](https://github.com/booklore-app/BookLore/issues/2555)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix: Filter text overwrites on long options ([#&#8203;2540](https://github.com/booklore-app/BookLore/issues/2540)) by [@&#8203;acx10](https://github.com/acx10)
- Fix: Lock icons do not stay with publisher and series name input fields ([#&#8203;2539](https://github.com/booklore-app/BookLore/issues/2539)) by [@&#8203;acx10](https://github.com/acx10)
- fix(metadata): improve cover errors, reduce metadata fetch count, and hide attach option ([#&#8203;2690](https://github.com/booklore-app/BookLore/issues/2690)) by [@&#8203;acx10](https://github.com/acx10)

####  Performance

- perf: optimize book list API with ETag, delta sync, and IndexedDB caching ([#&#8203;2753](https://github.com/booklore-app/BookLore/issues/2753)) by [@&#8203;acx10](https://github.com/acx10)
- perf: enable compact object headers (Project Lilliput) ([#&#8203;2755](https://github.com/booklore-app/BookLore/issues/2755)) by [@&#8203;acx10](https://github.com/acx10)

#### 🛠️ Refactoring & Maintenance

- refactor: split BookService into BookFileService and BookMetadataManageService ([#&#8203;2758](https://github.com/booklore-app/BookLore/issues/2758)) by [@&#8203;acx10](https://github.com/acx10)
- chore: fix memory leaks, add aria-labels, improve type safety and logging ([#&#8203;2764](https://github.com/booklore-app/BookLore/issues/2764)) by [@&#8203;acx10](https://github.com/acx10)
- chore: add caching, validation, lazy routes, refresh rate limiting, JaCoCo, and cleanup ([#&#8203;2762](https://github.com/booklore-app/BookLore/issues/2762)) by [@&#8203;acx10](https://github.com/acx10)
- perf: strip unused fields from book list API response ([#&#8203;2741](https://github.com/booklore-app/BookLore/issues/2741)) by [@&#8203;acx10](https://github.com/acx10)
- perf(epub): Replace linear manifest scans with HashMaps in EPUB reader ([#&#8203;2598](https://github.com/booklore-app/BookLore/issues/2598)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(metadata): return full metadata from parsers instead of previews ([#&#8203;2689](https://github.com/booklore-app/BookLore/issues/2689)) by [@&#8203;acx10](https://github.com/acx10)
- feat: comic metadata picker, lazy-load providers, and UI improvements ([#&#8203;2679](https://github.com/booklore-app/BookLore/issues/2679)) by [@&#8203;acx10](https://github.com/acx10)
- Add complete translations for all supported languages ([#&#8203;2831](https://github.com/booklore-app/BookLore/issues/2831)) by [@&#8203;acx10](https://github.com/acx10)
- Add Hungarian and Slovenian language support ([#&#8203;2846](https://github.com/booklore-app/BookLore/issues/2846)) by [@&#8203;acx10](https://github.com/acx10)
- Add Croatian and Swedish translations for login page ([#&#8203;2786](https://github.com/booklore-app/BookLore/issues/2786)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add i18n translations for stats, pdf reader, magic shelf, and remaining components (en/es) ([#&#8203;2742](https://github.com/booklore-app/BookLore/issues/2742)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add i18n translations for book components, services, and readers (en/es) ([#&#8203;2738](https://github.com/booklore-app/BookLore/issues/2738)) by [@&#8203;acx10](https://github.com/acx10)
- fix(i18n): dynamic sidebar translations and UI font normalization ([#&#8203;2683](https://github.com/booklore-app/BookLore/issues/2683)) by [@&#8203;acx10](https://github.com/acx10)
- feat: disable PDF printing for users without download permission ([#&#8203;2737](https://github.com/booklore-app/BookLore/issues/2737)) by [@&#8203;acx10](https://github.com/acx10)
- feat(ui): add file name column to table view and include filename in search ([#&#8203;2712](https://github.com/booklore-app/BookLore/issues/2712)) by [@&#8203;acx10](https://github.com/acx10)
- feat(ui): provide hyperlinks for books as book cards in grid view ([#&#8203;2500](https://github.com/booklore-app/BookLore/issues/2500)) by [@&#8203;berb](https://github.com/berb)
- feat(ui): Add sort by filePath ([#&#8203;1180](https://github.com/booklore-app/BookLore/issues/1180) and [#&#8203;2364](https://github.com/booklore-app/BookLore/issues/2364)) ([#&#8203;2512](https://github.com/booklore-app/BookLore/issues/2512)) by [@&#8203;chiguirepower](https://github.com/chiguirepower)
- feat(icons): Made icons for libraries and shelves optional with no default icons. ([#&#8203;2599](https://github.com/booklore-app/BookLore/issues/2599)) by [@&#8203;arthurgiroux](https://github.com/arthurgiroux)
- fix(comicvine): add fallback to issue detail endpoint for missing creator credits ([#&#8203;2694](https://github.com/booklore-app/BookLore/issues/2694)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#&#8203;2636](https://github.com/booklore-app/BookLore/issues/2636)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-match): Fix metadata quality calculation to properly handle locked fields ([#&#8203;2513](https://github.com/booklore-app/BookLore/issues/2513)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(ui): reload shelves when enabling Kobo sync ([#&#8203;2715](https://github.com/booklore-app/BookLore/issues/2715)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui):  standardize button labels and styles across components ([#&#8203;2560](https://github.com/booklore-app/BookLore/issues/2560)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- chore: redesign README for cleaner layout and visual polish ([#&#8203;2728](https://github.com/booklore-app/BookLore/issues/2728)) by [@&#8203;acx10](https://github.com/acx10)
- fix: make README logo visible in GitHub light mode ([#&#8203;2756](https://github.com/booklore-app/BookLore/issues/2756)) by [@&#8203;acx10](https://github.com/acx10)
- chore: clean up PR template and contributing guide ([#&#8203;2660](https://github.com/booklore-app/BookLore/issues/2660)) by [@&#8203;acx10](https://github.com/acx10)
- fix(file naming): add leading zero to series index ([#&#8203;2642](https://github.com/booklore-app/BookLore/issues/2642)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Update viewport meta tag to prevent auto-zoom on iOS when entering in… ([#&#8203;2620](https://github.com/booklore-app/BookLore/issues/2620)) by [@&#8203;jmswangit](https://github.com/jmswangit)
- test(API): add missing tests for BookMapperV2 ([#&#8203;2495](https://github.com/booklore-app/BookLore/issues/2495)) by [@&#8203;piffio](https://github.com/piffio)
- fix(audiobook-reader): use preload=none with explicit load() for faster streaming ([#&#8203;2520](https://github.com/booklore-app/BookLore/issues/2520)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): clean cached properties ([#&#8203;2499](https://github.com/booklore-app/BookLore/issues/2499)) by [@&#8203;piffio](https://github.com/piffio)
- fix(additional-file-uploader): add file size validation with UI feedback ([#&#8203;2516](https://github.com/booklore-app/BookLore/issues/2516)) by [@&#8203;acx10](https://github.com/acx10)
- fix(os\_x-conversion): ignore \_\_MACOSX directory for conversions ([#&#8203;2479](https://github.com/booklore-app/BookLore/issues/2479)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(series-page): add missing overlay preference service to book card ([#&#8203;2466](https://github.com/booklore-app/BookLore/issues/2466)) by [@&#8203;xcashy](https://github.com/xcashy)
- fix(docker): add build and gradle directories to volumes in docker compose ([#&#8203;2459](https://github.com/booklore-app/BookLore/issues/2459)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

#### 📦 Dependencies

- chore(deps): bump org.springframework.boot from 4.0.2 to 4.0.3 in /booklore-api in the gradle-dependencies group ([#&#8203;2813](https://github.com/booklore-app/BookLore/issues/2813)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 15 updates ([#&#8203;2814](https://github.com/booklore-app/BookLore/issues/2814)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group across 1 directory with 18 updates ([#&#8203;2687](https://github.com/booklore-app/BookLore/issues/2687)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 13 updates ([#&#8203;2721](https://github.com/booklore-app/BookLore/issues/2721)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 20 updates ([#&#8203;2542](https://github.com/booklore-app/BookLore/issues/2542)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the gradle-dependencies group across 1 directory with 7 updates ([#&#8203;2659](https://github.com/booklore-app/BookLore/issues/2659)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the gradle-dependencies group in /booklore-api with 2 updates ([#&#8203;2720](https://github.com/booklore-app/BookLore/issues/2720)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump tar from 7.5.7 to 7.5.9 in /booklore-ui ([#&#8203;2805](https://github.com/booklore-app/BookLore/issues/2805)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump tar from 7.5.6 to 7.5.7 in /booklore-ui ([#&#8203;2534](https://github.com/booklore-app/BookLore/issues/2534)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump hono from 4.11.9 to 4.12.0 in /booklore-ui ([#&#8203;2815](https://github.com/booklore-app/BookLore/issues/2815)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump qs from 6.14.1 to 6.14.2 in /booklore-ui ([#&#8203;2722](https://github.com/booklore-app/BookLore/issues/2722)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump [@&#8203;modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) and [@&#8203;angular/cli](https://github.com/angular/cli) in /booklore-ui ([#&#8203;2612](https://github.com/booklore-app/BookLore/issues/2612)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump actions/setup-node from 4 to 6 ([#&#8203;2573](https://github.com/booklore-app/BookLore/issues/2573)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)

#### ⚙️ CI/CD

- ci: move Angular/Gradle builds to native CI steps to eliminate QEMU emulation ([#&#8203;2705](https://github.com/booklore-app/BookLore/issues/2705)) by [@&#8203;acx10](https://github.com/acx10)
- chore: add performance label to release drafter categories ([#&#8203;2754](https://github.com/booklore-app/BookLore/issues/2754)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v2.0.0`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v2.0.0`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.18.5...v2.0.0>

#### 📸 Screenshots

<img width="750" alt="Book browser with audiobook library and cascading sidebar filters" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/book-browser-audiobooks-library.png" />
<img width="750" alt="Book detail page with multi-format support and alternative formats" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/book-detail-multi-format.png" />
<img width="300" alt="Audiobook player with streaming playback" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/audiobook-player.png" />
<img width="300" alt="Ebook reader" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/ebook-reader.png" />
<img width="750" alt="CBX comic reader with fullscreen, slideshow, RTL, and long strip mode" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/cbx-comic-reader.png" />
<img width="750" alt="Annotation notebook with highlights, notes, and bookmarks" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/annotation-notebook.png" />
<img width="750" alt="Author browser with Audnexus metadata" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/author-browser.png" />
<img width="750" alt="Series browser with search, filter, and sort" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/series-browser.png" />
<img width="500" alt="Reading Clock statistics chart" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-clock-stats.png" />
<img width="750" alt="Reading Survival Curve and Book Length Sweet Spot charts" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-survival-book-length-charts.png" />
<img width="750" alt="Reading Completion Race chart" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-completion-race.png" />

</details>

<details>
<summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary>

### [`v2.0.1`](https://github.com/booklore-app/booklore/releases/tag/v2.0.1)

[Compare Source](https://github.com/booklore-app/booklore/compare/v2.0.0...v2.0.1)

#### 🌟 What's New in v2.0.1

#### 🐛 Bug Fixes

- Fix max upload size description to include all file formats ([#&#8203;2894](https://github.com/booklore-app/booklore/issues/2894)) by [@&#8203;acx10](https://github.com/acx10)
- Fix magic shelf physical book filter and polish UI ([#&#8203;2888](https://github.com/booklore-app/booklore/issues/2888)) by [@&#8203;acx10](https://github.com/acx10)
- Fix metadata settings not saving due to null deserialization error ([#&#8203;2886](https://github.com/booklore-app/booklore/issues/2886)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Kobo download/image URLs using wrong port behind reverse proxy ([#&#8203;2875](https://github.com/booklore-app/booklore/issues/2875)) by [@&#8203;acx10](https://github.com/acx10)
- Fix app crash on startup when /bookdrop volume is not mounted ([#&#8203;2873](https://github.com/booklore-app/booklore/issues/2873)) by [@&#8203;acx10](https://github.com/acx10)

#### 🛠️ Refactoring & Maintenance

- Hide sidecar tab for physical books ([#&#8203;2887](https://github.com/booklore-app/booklore/issues/2887)) by [@&#8203;acx10](https://github.com/acx10)
- Translations update from Hosted Weblate ([#&#8203;2866](https://github.com/booklore-app/booklore/issues/2866)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v2.0.1`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v2.0.1`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v2.0.0...v2.0.1>

### [`v2.0.0`](https://github.com/booklore-app/booklore/releases/tag/v2.0.0)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.18.5...v2.0.0)

#### 🌟 What's New in v2.0.0

This is the biggest Booklore release yet, with nearly 200 commits touching every part of the application:

- **Multi-Format Book Support & Audiobooks**: Books can now have multiple file formats (EPUB, PDF, CBZ, etc.) attached to a single entry. Full audiobook support is here with a dedicated player, streaming playback, narrator filtering, and session tracking.
- **Duplicate Book Detection & Merge**: Booklore can now detect duplicate books across your library. A new merge tool lets you combine duplicates, choose which formats to keep, and optionally move files, all without losing metadata.
- **Author Metadata via Audnexus**: Author pages now pull rich metadata (bios, images) from the Audnexus API, with a dedicated author browser, detail page, and editor.
- **Series Browser**: A brand new series browser page with search, filtering, sorting, and resizable cards for browsing your series collection at a glance.
- **Annotation Notebook**: All your highlights, notes, and bookmarks are now collected in a searchable, paginated notebook view.
- **Audit Log System**: Admins can now see a full audit trail of significant actions (user management, library changes, metadata operations) with geo flags, relative timestamps, and filterable logs.
- **Bidirectional Kobo Sync**: Full two-way reading progress sync with Kobo devices, plus shelves and magic shelves now sync as Kobo tags.
- **Cascading Sidebar Filters**: Filters now cascade, so selecting an author narrows available series, genres, etc. You can also customize which filters are visible.
- **10+ New Statistics Charts**: A massive expansion of the stats page with reading heatmaps, distribution charts, completion races, and more.
- **PDF Annotations & Reader Upgrades**: The PDF reader now supports annotations, dark/light mode toggle, and Range streaming. The ebook reader gains fullscreen, keyboard shortcuts, and go-to-percentage. The CBX reader adds fullscreen, slideshow, RTL, and long strip mode.
- **Sidecar Metadata Files**: Booklore can now read and write `.metadata.json` sidecar files alongside your books for portable metadata storage.
- **Extended Comic Metadata**: Full ComicInfo.xml support with a dedicated comic metadata picker and write-back to CBZ/PDF files.
- **Internationalization via Weblate**: Booklore is now fully translatable with Transloco and Weblate integration. Ships with 15+ languages including Hungarian, Slovenian, Croatian, Swedish, Chinese, and Japanese.
- **Java 25, Spring Boot 4, Gradle 9**: The entire backend has been upgraded to the latest stack. Nginx has been removed; Angular is now served directly from Spring Boot.
- **Login Rate Limiting**: Brute-force protection on the login endpoint. Plus new age and content rating support for restricted libraries.
- **Performance**: Book list API optimized with ETag caching, delta sync, and IndexedDB. Project Lilliput compact object headers reduce heap usage.

#### 🚀 New Features

- Introduce multi-format book support, including audiobooks ([#&#8203;2486](https://github.com/booklore-app/booklore/issues/2486)) by [@&#8203;acx10](https://github.com/acx10)
- Add duplicate book detection/merge and fix format-related data loss ([#&#8203;2820](https://github.com/booklore-app/booklore/issues/2820)) by [@&#8203;acx10](https://github.com/acx10)
- Add author metadata via Audnexus with browser, detail, and editor pages ([#&#8203;2843](https://github.com/booklore-app/booklore/issues/2843)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add series browser page ([#&#8203;2771](https://github.com/booklore-app/booklore/issues/2771)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add annotation notebook with server-side pagination ([#&#8203;2736](https://github.com/booklore-app/booklore/issues/2736)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add audit log system for tracking admin-significant actions ([#&#8203;2759](https://github.com/booklore-app/booklore/issues/2759)) by [@&#8203;acx10](https://github.com/acx10)
- Add bidirectional Kobo reading progress sync ([#&#8203;2791](https://github.com/booklore-app/booklore/issues/2791)) by [@&#8203;acx10](https://github.com/acx10)
- feat(filters): implement cascading sidebar filters ([#&#8203;2616](https://github.com/booklore-app/booklore/issues/2616)) by [@&#8203;acx10](https://github.com/acx10)
- feat(cbx-reader): add fullscreen, slideshow, RTL, long strip mode and keyboard shortcuts ([#&#8203;2632](https://github.com/booklore-app/booklore/issues/2632)) by [@&#8203;acx10](https://github.com/acx10)
- feat(sidecar): add sidecar JSON metadata file support ([#&#8203;2657](https://github.com/booklore-app/booklore/issues/2657)) by [@&#8203;acx10](https://github.com/acx10)
- feat(comic-metadata): add extended comic metadata support ([#&#8203;2654](https://github.com/booklore-app/booklore/issues/2654)) by [@&#8203;acx10](https://github.com/acx10)
- feat(i18n): add Transloco translation framework with EN/ES and 7 language scaffolds ([#&#8203;2681](https://github.com/booklore-app/booklore/issues/2681)) by [@&#8203;acx10](https://github.com/acx10)
- feat(api, build): Upgrade to Java 25, Gradle 9, and Spring Boot 4, Jackson 3 ([#&#8203;2597](https://github.com/booklore-app/booklore/issues/2597)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Remove nginx and serve Angular directly from Spring Boot ([#&#8203;2662](https://github.com/booklore-app/booklore/issues/2662)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add login rate limiting to prevent brute-force attacks ([#&#8203;2761](https://github.com/booklore-app/booklore/issues/2761)) by [@&#8203;acx10](https://github.com/acx10)
- feat(content-restrictions): add age rating and content rating support ([#&#8203;2619](https://github.com/booklore-app/booklore/issues/2619)) by [@&#8203;acx10](https://github.com/acx10)
- feat(sorting): add multi-field sorting support ([#&#8203;2628](https://github.com/booklore-app/booklore/issues/2628)) by [@&#8203;acx10](https://github.com/acx10)
- feat(metadata): add custom metadata write to file support for moods, tags, ratings, and external IDs in PDF, and CBZ ([#&#8203;2552](https://github.com/booklore-app/booklore/issues/2552)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(metadata) Save basic metadata to EPUB file - Bonus use Calibre Custom Columns for importing metadata. ([#&#8203;1879](https://github.com/booklore-app/booklore/issues/1879)) by [@&#8203;jadehawk](https://github.com/jadehawk)
- feat: add grouped field dropdown and composite fields to magic shelf ([#&#8203;2750](https://github.com/booklore-app/booklore/issues/2750)) by [@&#8203;acx10](https://github.com/acx10)
- feat(filters): add customizable visible filters setting ([#&#8203;2625](https://github.com/booklore-app/booklore/issues/2625)) by [@&#8203;acx10](https://github.com/acx10)
- Add 10 advanced stats charts ([#&#8203;2850](https://github.com/booklore-app/booklore/issues/2850)) by [@&#8203;acx10](https://github.com/acx10)
- feat(stats): add 5 new user statistics charts ([#&#8203;2703](https://github.com/booklore-app/booklore/issues/2703)) by [@&#8203;acx10](https://github.com/acx10)
- feat(i18n): add Weblate integration and auth translations ([#&#8203;2727](https://github.com/booklore-app/booklore/issues/2727)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add else clause and value modifiers to file naming patterns ([#&#8203;2724](https://github.com/booklore-app/booklore/issues/2724)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add button to fetch metadata from book file ([#&#8203;2739](https://github.com/booklore-app/booklore/issues/2739)) by [@&#8203;acx10](https://github.com/acx10)
- feat(google-books): add optional API key configuration ([#&#8203;2629](https://github.com/booklore-app/booklore/issues/2629)) by [@&#8203;acx10](https://github.com/acx10)

####  Enhancements

- feat(reader): add PDF annotations, Range streaming, and optimized chunk loading ([#&#8203;2701](https://github.com/booklore-app/booklore/issues/2701)) by [@&#8203;acx10](https://github.com/acx10)
- feat(reader): add fullscreen, keyboard shortcuts, search cancel, and go-to-percentage ([#&#8203;2698](https://github.com/booklore-app/booklore/issues/2698)) by [@&#8203;acx10](https://github.com/acx10)
- feat(reader): add dark/light mode toggle and improved close button to PDF reader ([#&#8203;2699](https://github.com/booklore-app/booklore/issues/2699)) by [@&#8203;acx10](https://github.com/acx10)
- feat(kobo-sync): add user scoped 2 way kobo sync ([#&#8203;2452](https://github.com/booklore-app/booklore/issues/2452)) by [@&#8203;b3nk3](https://github.com/b3nk3)
- feat(kobo-sync): Sync Shelves and Magic Shelves to Kobo Tags ([#&#8203;2236](https://github.com/booklore-app/booklore/issues/2236)) by [@&#8203;xcashy](https://github.com/xcashy)
- Redesign series page layout and book list tab ([#&#8203;2847](https://github.com/booklore-app/booklore/issues/2847)) by [@&#8203;acx10](https://github.com/acx10)
- feat(sort): replace compound sort options with atomic fields and multi-sort support ([#&#8203;2686](https://github.com/booklore-app/booklore/issues/2686)) by [@&#8203;acx10](https://github.com/acx10)
- Add moveFiles option to attach/merge and per-book delete in duplicate merger ([#&#8203;2833](https://github.com/booklore-app/booklore/issues/2833)) by [@&#8203;acx10](https://github.com/acx10)
- feat: enhance audit logs with geo flags, relative time, and UX improvements ([#&#8203;2760](https://github.com/booklore-app/booklore/issues/2760)) by [@&#8203;acx10](https://github.com/acx10)
- feat(bookdrop): add ability to poll the bookdrop folder ([#&#8203;2768](https://github.com/booklore-app/booklore/issues/2768)) by [@&#8203;arjunsrinivasan1997](https://github.com/arjunsrinivasan1997)
- feat: add metadata presence filter to magic shelf ([#&#8203;2757](https://github.com/booklore-app/booklore/issues/2757)) by [@&#8203;acx10](https://github.com/acx10)
- feat(upload): add upload progress tracking with progress bar and stats ([#&#8203;2640](https://github.com/booklore-app/booklore/issues/2640)) by [@&#8203;acx10](https://github.com/acx10)
- feat(email): add format selection to email book dialog ([#&#8203;2650](https://github.com/booklore-app/booklore/issues/2650)) by [@&#8203;acx10](https://github.com/acx10)
- feat(pwa): Enable fullscreen mode for Android immersive reading ([#&#8203;2649](https://github.com/booklore-app/booklore/issues/2649)) by [@&#8203;alondero](https://github.com/alondero)
- Add Hungarian and Slovenian language support ([#&#8203;2846](https://github.com/booklore-app/booklore/issues/2846)) by [@&#8203;acx10](https://github.com/acx10)
- fix(library-service): prevent concurrent library scans with a tracking set ([#&#8203;2637](https://github.com/booklore-app/booklore/issues/2637)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat: add configurable sidebar width setting ([#&#8203;2749](https://github.com/booklore-app/booklore/issues/2749)) by [@&#8203;acx10](https://github.com/acx10)
- refactor(download): simplify file download to use browser native handling ([#&#8203;2639](https://github.com/booklore-app/booklore/issues/2639)) by [@&#8203;acx10](https://github.com/acx10)

#### 🎨 UI Tweaks

- Add visual polish to book card component ([#&#8203;2788](https://github.com/booklore-app/booklore/issues/2788)) by [@&#8203;acx10](https://github.com/acx10)
- refactor: centralize access-denied card styles into shared mixin ([#&#8203;2515](https://github.com/booklore-app/booklore/issues/2515)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐛 Bug Fixes

- fix(auth): resolve DST-related login failure for refresh tokens ([#&#8203;2624](https://github.com/booklore-app/booklore/issues/2624)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Kobo sync HeadersTooLargeException for large libraries ([#&#8203;2809](https://github.com/booklore-app/booklore/issues/2809)) by [@&#8203;acx10](https://github.com/acx10)
- fix(metadata-refresh): Correct metadata update priorities and preserve disabled fields during 'replace all' ([#&#8203;2503](https://github.com/booklore-app/booklore/issues/2503)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-parsers): improve ISBN search logic and fallback strategies for metadata fetching ([#&#8203;2502](https://github.com/booklore-app/booklore/issues/2502)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-update): ensure per-book transaction isolation in bulk updates to prevent race conditions ([#&#8203;2536](https://github.com/booklore-app/booklore/issues/2536)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-refresh): fix filter book shelves by authenticated user logs out the user. ([#&#8203;2481](https://github.com/booklore-app/booklore/issues/2481)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix null collection errors for PDFs, audiobooks, and physical books ([#&#8203;2817](https://github.com/booklore-app/booklore/issues/2817)) by [@&#8203;acx10](https://github.com/acx10)
- fix(library-processing): re-fetch library entity after clearing entity manager during rescan ([#&#8203;2507](https://github.com/booklore-app/booklore/issues/2507)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(file-move): ensure file moves are rolled back if database update fails ([#&#8203;2588](https://github.com/booklore-app/booklore/issues/2588)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(file-move): update empty directory cleanup to handle multiple library paths ([#&#8203;2634](https://github.com/booklore-app/booklore/issues/2634)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix CBR/CB7 to CBZ conversion losing track of file path ([#&#8203;2835](https://github.com/booklore-app/booklore/issues/2835)) by [@&#8203;acx10](https://github.com/acx10)
- fix(cbz-reader): CBZ reading regression and optimize ZIP parsing strategy ([#&#8203;2593](https://github.com/booklore-app/booklore/issues/2593)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix PDF reader not loading alternate format files ([#&#8203;2836](https://github.com/booklore-app/booklore/issues/2836)) by [@&#8203;acx10](https://github.com/acx10)
- fix(epub-cover-extract): improve cover image extraction with fallback handling ([#&#8203;2585](https://github.com/booklore-app/booklore/issues/2585)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#&#8203;2636](https://github.com/booklore-app/booklore/issues/2636)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(book-rule-evaluator): fix file type handling and add mapping for specific formats to fix magic shelve based on filetype ([#&#8203;2480](https://github.com/booklore-app/booklore/issues/2480)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix magic shelf rule evaluation for numeric comparisons ([#&#8203;2795](https://github.com/booklore-app/booklore/issues/2795)) by [@&#8203;acx10](https://github.com/acx10)
- Fix read status NULL progress handling in rule evaluator ([#&#8203;2821](https://github.com/booklore-app/booklore/issues/2821)) by [@&#8203;acx10](https://github.com/acx10)
- Fix bookdrop race condition processing files before fully written ([#&#8203;2785](https://github.com/booklore-app/booklore/issues/2785)) by [@&#8203;acx10](https://github.com/acx10)
- fix(bookdrop): handle file modifications in Bookdrop event handler ([#&#8203;2559](https://github.com/booklore-app/booklore/issues/2559)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(hardcover-sync): Don't send repeated read status to Hardcover.app ([#&#8203;2609](https://github.com/booklore-app/booklore/issues/2609)) by [@&#8203;PhasecoreX](https://github.com/PhasecoreX)
- fix(api): Select correct Hardcover.app ISBN from lookup results ([#&#8203;2530](https://github.com/booklore-app/booklore/issues/2530)) by [@&#8203;PhasecoreX](https://github.com/PhasecoreX)
- fix(ui): fix memory leaks and cascading API calls in metadata editor ([#&#8203;2716](https://github.com/booklore-app/booklore/issues/2716)) by [@&#8203;acx10](https://github.com/acx10)
- fix: replace Quill editor with native HTML rendering for book descriptions ([#&#8203;2733](https://github.com/booklore-app/booklore/issues/2733)) by [@&#8203;acx10](https://github.com/acx10)
- Fix reading stats queries not accounting for timezone ([#&#8203;2844](https://github.com/booklore-app/booklore/issues/2844)) by [@&#8203;acx10](https://github.com/acx10)
- Fix reading session timeline long sessions, tooltip perf, and week mismatch ([#&#8203;2848](https://github.com/booklore-app/booklore/issues/2848)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reading-stats,ui): update heatmap to use local time formatting… ([#&#8203;2587](https://github.com/booklore-app/booklore/issues/2587)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- fix(select-all): "Mark All" bug and add "Remove from all shelves" bulk action across components ([#&#8203;2562](https://github.com/booklore-app/booklore/issues/2562)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(opds): Fix OPDS CBR mime type reporting and strict Archive detection ([#&#8203;2592](https://github.com/booklore-app/booklore/issues/2592)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix OPDS shelf filter cartesian product ([#&#8203;2837](https://github.com/booklore-app/booklore/issues/2837)) by [@&#8203;acx10](https://github.com/acx10)
- fix(comic-metadata): fix series grouping bug with external ComicInfo.xml metadata ([#&#8203;2385](https://github.com/booklore-app/booklore/issues/2385)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix additional file uploader bugs and improve metadata viewer ([#&#8203;2816](https://github.com/booklore-app/booklore/issues/2816)) by [@&#8203;acx10](https://github.com/acx10)
- Fix PWA offline fallback blocking localhost access when internet is disconnected ([#&#8203;2784](https://github.com/booklore-app/booklore/issues/2784)) by [@&#8203;acx10](https://github.com/acx10)
- fix(audiobook-reader): use preload=none for immediate streaming playback ([#&#8203;2518](https://github.com/booklore-app/booklore/issues/2518)) by [@&#8203;acx10](https://github.com/acx10)
- fix: reset audiobook progress and clear cached progress in UI ([#&#8203;2711](https://github.com/booklore-app/booklore/issues/2711)) by [@&#8203;acx10](https://github.com/acx10)
- Fix cbx reader prev/next book stacking on close ([#&#8203;2858](https://github.com/booklore-app/booklore/issues/2858)) by [@&#8203;acx10](https://github.com/acx10)
- Fix ebook reader header not hiding on mobile tap ([#&#8203;2857](https://github.com/booklore-app/booklore/issues/2857)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reader): enable text copy in ebook reader ([#&#8203;2702](https://github.com/booklore-app/booklore/issues/2702)) by [@&#8203;acx10](https://github.com/acx10)
- Fix CBZ reader scroll position reset in infinite scroll mode ([#&#8203;2781](https://github.com/booklore-app/booklore/issues/2781)) by [@&#8203;acx10](https://github.com/acx10)
- Fix column gap +/- buttons in eBook reader default settings ([#&#8203;2780](https://github.com/booklore-app/booklore/issues/2780)) by [@&#8203;acx10](https://github.com/acx10)
- Fix email provider creation failing due to null shared field ([#&#8203;2794](https://github.com/booklore-app/booklore/issues/2794)) by [@&#8203;acx10](https://github.com/acx10)
- Fix audit logs pagination bug and add URL query param sync ([#&#8203;2787](https://github.com/booklore-app/booklore/issues/2787)) by [@&#8203;acx10](https://github.com/acx10)
- Fix audit log description overflow for bulk metadata refresh ([#&#8203;2783](https://github.com/booklore-app/booklore/issues/2783)) by [@&#8203;acx10](https://github.com/acx10)
- Fix multiple author card menus opening simultaneously ([#&#8203;2852](https://github.com/booklore-app/booklore/issues/2852)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Goodreads label mappings and format config ([#&#8203;2779](https://github.com/booklore-app/booklore/issues/2779)) by [@&#8203;AlfredSimpson](https://github.com/AlfredSimpson)
- fix(ui): encode filter values in query params to handle commas in names ([#&#8203;2717](https://github.com/booklore-app/booklore/issues/2717)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): prevent footer submenu from rendering off screen ([#&#8203;2714](https://github.com/booklore-app/booklore/issues/2714)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): inline mobile charts submenu to prevent layout overflow ([#&#8203;2713](https://github.com/booklore-app/booklore/issues/2713)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): correctly format lubimyczytac external rating link ([#&#8203;2491](https://github.com/booklore-app/booklore/issues/2491)) by [@&#8203;sebhewelt](https://github.com/sebhewelt)
- Fix iconDisplay binding syntax in metadata viewer ([#&#8203;2772](https://github.com/booklore-app/booklore/issues/2772)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Fix mobile toolbar overlapping on small screens ([#&#8203;2856](https://github.com/booklore-app/booklore/issues/2856)) by [@&#8203;acx10](https://github.com/acx10)
- Fix book browser header title overflow on mobile ([#&#8203;2808](https://github.com/booklore-app/booklore/issues/2808)) by [@&#8203;acx10](https://github.com/acx10)
- fix(book-browser): resolve footer menu not hiding after navigation back ([#&#8203;2626](https://github.com/booklore-app/booklore/issues/2626)) by [@&#8203;acx10](https://github.com/acx10)
- fix: align frontend Page interfaces with VIA\_DTO serialization format ([#&#8203;2751](https://github.com/booklore-app/booklore/issues/2751)) by [@&#8203;acx10](https://github.com/acx10)
- fix: show provider icons in metadata viewer when only ID is present ([#&#8203;2734](https://github.com/booklore-app/booklore/issues/2734)) by [@&#8203;acx10](https://github.com/acx10)
- fix: hide show-more button when description fits without truncation ([#&#8203;2766](https://github.com/booklore-app/booklore/issues/2766)) by [@&#8203;acx10](https://github.com/acx10)
- fix: use audiobook thumbnail for audiobook entries in notebook ([#&#8203;2763](https://github.com/booklore-app/booklore/issues/2763)) by [@&#8203;acx10](https://github.com/acx10)
- fix: show session numbers in book ([#&#8203;2696](https://github.com/booklore-app/booklore/issues/2696)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- fix(settings): use boxed Integer for ScrollerConfig.maxItems to allow null ([#&#8203;2684](https://github.com/booklore-app/booklore/issues/2684)) by [@&#8203;acx10](https://github.com/acx10)
- fix(series-multi-select): Fix transparency in series multi select pop-up ([#&#8203;2555](https://github.com/booklore-app/booklore/issues/2555)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix: Filter text overwrites on long options ([#&#8203;2540](https://github.com/booklore-app/booklore/issues/2540)) by [@&#8203;acx10](https://github.com/acx10)
- Fix: Lock icons do not stay with publisher and series name input fields ([#&#8203;2539](https://github.com/booklore-app/booklore/issues/2539)) by [@&#8203;acx10](https://github.com/acx10)
- fix(metadata): improve cover errors, reduce metadata fetch count, and hide attach option ([#&#8203;2690](https://github.com/booklore-app/booklore/issues/2690)) by [@&#8203;acx10](https://github.com/acx10)

####  Performance

- perf: optimize book list API with ETag, delta sync, and IndexedDB caching ([#&#8203;2753](https://github.com/booklore-app/booklore/issues/2753)) by [@&#8203;acx10](https://github.com/acx10)
- perf: enable compact object headers (Project Lilliput) ([#&#8203;2755](https://github.com/booklore-app/booklore/issues/2755)) by [@&#8203;acx10](https://github.com/acx10)

#### 🛠️ Refactoring & Maintenance

- refactor: split BookService into BookFileService and BookMetadataManageService ([#&#8203;2758](https://github.com/booklore-app/booklore/issues/2758)) by [@&#8203;acx10](https://github.com/acx10)
- chore: fix memory leaks, add aria-labels, improve type safety and logging ([#&#8203;2764](https://github.com/booklore-app/booklore/issues/2764)) by [@&#8203;acx10](https://github.com/acx10)
- chore: add caching, validation, lazy routes, refresh rate limiting, JaCoCo, and cleanup ([#&#8203;2762](https://github.com/booklore-app/booklore/issues/2762)) by [@&#8203;acx10](https://github.com/acx10)
- perf: strip unused fields from book list API response ([#&#8203;2741](https://github.com/booklore-app/booklore/issues/2741)) by [@&#8203;acx10](https://github.com/acx10)
- perf(epub): Replace linear manifest scans with HashMaps in EPUB reader ([#&#8203;2598](https://github.com/booklore-app/booklore/issues/2598)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(metadata): return full metadata from parsers instead of previews ([#&#8203;2689](https://github.com/booklore-app/booklore/issues/2689)) by [@&#8203;acx10](https://github.com/acx10)
- feat: comic metadata picker, lazy-load providers, and UI improvements ([#&#8203;2679](https://github.com/booklore-app/booklore/issues/2679)) by [@&#8203;acx10](https://github.com/acx10)
- Add complete translations for all supported languages ([#&#8203;2831](https://github.com/booklore-app/booklore/issues/2831)) by [@&#8203;acx10](https://github.com/acx10)
- Add Hungarian and Slovenian language support ([#&#8203;2846](https://github.com/booklore-app/booklore/issues/2846)) by [@&#8203;acx10](https://github.com/acx10)
- Add Croatian and Swedish translations for login page ([#&#8203;2786](https://github.com/booklore-app/booklore/issues/2786)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add i18n translations for stats, pdf reader, magic shelf, and remaining components (en/es) ([#&#8203;2742](https://github.com/booklore-app/booklore/issues/2742)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add i18n translations for book components, services, and readers (en/es) ([#&#8203;2738](https://github.com/booklore-app/booklore/issues/2738)) by [@&#8203;acx10](https://github.com/acx10)
- fix(i18n): dynamic sidebar translations and UI font normalization ([#&#8203;2683](https://github.com/booklore-app/booklore/issues/2683)) by [@&#8203;acx10](https://github.com/acx10)
- feat: disable PDF printing for users without download permission ([#&#8203;2737](https://github.com/booklore-app/booklore/issues/2737)) by [@&#8203;acx10](https://github.com/acx10)
- feat(ui): add file name column to table view and include filename in search ([#&#8203;2712](https://github.com/booklore-app/booklore/issues/2712)) by [@&#8203;acx10](https://github.com/acx10)
- feat(ui): provide hyperlinks for books as book cards in grid view ([#&#8203;2500](https://github.com/booklore-app/booklore/issues/2500)) by [@&#8203;berb](https://github.com/berb)
- feat(ui): Add sort by filePath ([#&#8203;1180](https://github.com/booklore-app/booklore/issues/1180) and [#&#8203;2364](https://github.com/booklore-app/booklore/issues/2364)) ([#&#8203;2512](https://github.com/booklore-app/booklore/issues/2512)) by [@&#8203;chiguirepower](https://github.com/chiguirepower)
- feat(icons): Made icons for libraries and shelves optional with no default icons. ([#&#8203;2599](https://github.com/booklore-app/booklore/issues/2599)) by [@&#8203;arthurgiroux](https://github.com/arthurgiroux)
- fix(comicvine): add fallback to issue detail endpoint for missing creator credits ([#&#8203;2694](https://github.com/booklore-app/booklore/issues/2694)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#&#8203;2636](https://github.com/booklore-app/booklore/issues/2636)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-match): Fix metadata quality calculation to properly handle locked fields ([#&#8203;2513](https://github.com/booklore-app/booklore/issues/2513)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(ui): reload shelves when enabling Kobo sync ([#&#8203;2715](https://github.com/booklore-app/booklore/issues/2715)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui):  standardize button labels and styles across components ([#&#8203;2560](https://github.com/booklore-app/booklore/issues/2560)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- chore: redesign README for cleaner layout and visual polish ([#&#8203;2728](https://github.com/booklore-app/booklore/issues/2728)) by [@&#8203;acx10](https://github.com/acx10)
- fix: make README logo visible in GitHub light mode ([#&#8203;2756](https://github.com/booklore-app/booklore/issues/2756)) by [@&#8203;acx10](https://github.com/acx10)
- chore: clean up PR template and contributing guide ([#&#8203;2660](https://github.com/booklore-app/booklore/issues/2660)) by [@&#8203;acx10](https://github.com/acx10)
- fix(file naming): add leading zero to series index ([#&#8203;2642](https://github.com/booklore-app/booklore/issues/2642)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Update viewport meta tag to prevent auto-zoom on iOS when entering in… ([#&#8203;2620](https://github.com/booklore-app/booklore/issues/2620)) by [@&#8203;jmswangit](https://github.com/jmswangit)
- test(API): add missing tests for BookMapperV2 ([#&#8203;2495](https://github.com/booklore-app/booklore/issues/2495)) by [@&#8203;piffio](https://github.com/piffio)
- fix(audiobook-reader): use preload=none with explicit load() for faster streaming ([#&#8203;2520](https://github.com/booklore-app/booklore/issues/2520)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): clean cached properties ([#&#8203;2499](https://github.com/booklore-app/booklore/issues/2499)) by [@&#8203;piffio](https://github.com/piffio)
- fix(additional-file-uploader): add file size validation with UI feedback ([#&#8203;2516](https://github.com/booklore-app/booklore/issues/2516)) by [@&#8203;acx10](https://github.com/acx10)
- fix(os\_x-conversion): ignore \_\_MACOSX directory for conversions ([#&#8203;2479](https://github.com/booklore-app/booklore/issues/2479)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(series-page): add missing overlay preference service to book card ([#&#8203;2466](https://github.com/booklore-app/booklore/issues/2466)) by [@&#8203;xcashy](https://github.com/xcashy)
- fix(docker): add build and gradle directories to volumes in docker compose ([#&#8203;2459](https://github.com/booklore-app/booklore/issues/2459)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

#### 📦 Dependencies

- chore(deps): bump org.springframework.boot from 4.0.2 to 4.0.3 in /booklore-api in the gradle-dependencies group ([#&#8203;2813](https://github.com/booklore-app/booklore/issues/2813)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 15 updates ([#&#8203;2814](https://github.com/booklore-app/booklore/issues/2814)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group across 1 directory with 18 updates ([#&#8203;2687](https://github.com/booklore-app/booklore/issues/2687)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 13 updates ([#&#8203;2721](https://github.com/booklore-app/booklore/issues/2721)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 20 updates ([#&#8203;2542](https://github.com/booklore-app/booklore/issues/2542)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the gradle-dependencies group across 1 directory with 7 updates ([#&#8203;2659](https://github.com/booklore-app/booklore/issues/2659)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the gradle-dependencies group in /booklore-api with 2 updates ([#&#8203;2720](https://github.com/booklore-app/booklore/issues/2720)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump tar from 7.5.7 to 7.5.9 in /booklore-ui ([#&#8203;2805](https://github.com/booklore-app/booklore/issues/2805)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump tar from 7.5.6 to 7.5.7 in /booklore-ui ([#&#8203;2534](https://github.com/booklore-app/booklore/issues/2534)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump hono from 4.11.9 to 4.12.0 in /booklore-ui ([#&#8203;2815](https://github.com/booklore-app/booklore/issues/2815)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump qs from 6.14.1 to 6.14.2 in /booklore-ui ([#&#8203;2722](https://github.com/booklore-app/booklore/issues/2722)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump [@&#8203;modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) and [@&#8203;angular/cli](https://github.com/angular/cli) in /booklore-ui ([#&#8203;2612](https://github.com/booklore-app/booklore/issues/2612)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump actions/setup-node from 4 to 6 ([#&#8203;2573](https://github.com/booklore-app/booklore/issues/2573)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)

#### ⚙️ CI/CD

- ci: move Angular/Gradle builds to native CI steps to eliminate QEMU emulation ([#&#8203;2705](https://github.com/booklore-app/booklore/issues/2705)) by [@&#8203;acx10](https://github.com/acx10)
- chore: add performance label to release drafter categories ([#&#8203;2754](https://github.com/booklore-app/booklore/issues/2754)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v2.0.0`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v2.0.0`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.18.5...v2.0.0>

#### 📸 Screenshots

<img width="750" alt="Book browser with audiobook library and cascading sidebar filters" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/book-browser-audiobooks-library.png" />
<img width="750" alt="Book detail page with multi-format support and alternative formats" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/book-detail-multi-format.png" />
<img width="300" alt="Audiobook player with streaming playback" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/audiobook-player.png" />
<img width="300" alt="Ebook reader" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/ebook-reader.png" />
<img width="750" alt="CBX comic reader with fullscreen, slideshow, RTL, and long strip mode" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/cbx-comic-reader.png" />
<img width="750" alt="Annotation notebook with highlights, notes, and bookmarks" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/annotation-notebook.png" />
<img width="750" alt="Author browser with Audnexus metadata" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/author-browser.png" />
<img width="750" alt="Series browser with search, filter, and sort" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/series-browser.png" />
<img width="500" alt="Reading Clock statistics chart" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-clock-stats.png" />
<img width="750" alt="Reading Survival Curve and Book Length Sweet Spot charts" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-survival-book-length-charts.png" />
<img width="750" alt="Reading Completion Race chart" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-completion-race.png" />

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS44IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4176
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 20:46:25 +00:00
c55adf2c53 chore(deps): update dependency element-hq/element-web to v1.12.11 (#4213)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 37s
renovate / renovate (push) Successful in 3m2s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [element-hq/element-web](https://github.com/element-hq/element-web) | patch | `v1.12.10` → `v1.12.11` |

---

### Release Notes

<details>
<summary>element-hq/element-web (element-hq/element-web)</summary>

### [`v1.12.11`](https://github.com/element-hq/element-web/releases/tag/v1.12.11)

[Compare Source](https://github.com/element-hq/element-web/compare/v1.12.10...v1.12.11)

#### 🦖 Deprecations

- Remove UIFeature.BulkUnverifiedSessionsReminder setting ([#&#8203;31943](https://github.com/element-hq/element-web/pull/31943)). Contributed by [@&#8203;andybalaam](https://github.com/andybalaam).
- Remove unused function to auto-rageshake when key backup is not set up ([#&#8203;31942](https://github.com/element-hq/element-web/pull/31942)). Contributed by [@&#8203;andybalaam](https://github.com/andybalaam).

####  Features

- Room list: update the visuals in order to have better contrast ([#&#8203;32421](https://github.com/element-hq/element-web/pull/32421)). Contributed by [@&#8203;florianduros](https://github.com/florianduros).
- Set history visibility to "invited" for DMs and new non-public rooms when creating a room ([#&#8203;31974](https://github.com/element-hq/element-web/pull/31974)). Contributed by [@&#8203;langleyd](https://github.com/langleyd).
- Remove server acl status/summaries from timeline  ([#&#8203;32461](https://github.com/element-hq/element-web/pull/32461)). Contributed by [@&#8203;langleyd](https://github.com/langleyd).
- Update `globalBlacklistUnverifiedDevices` on setting change ([#&#8203;31983](https://github.com/element-hq/element-web/pull/31983)). Contributed by [@&#8203;kaylendog](https://github.com/kaylendog).
- Add badge for history visibiltity to room info panel ([#&#8203;31927](https://github.com/element-hq/element-web/pull/31927)). Contributed by [@&#8203;richvdh](https://github.com/richvdh).

#### 🐛 Bug Fixes

- Default useOnlyCurrentProfiles to true ([#&#8203;32524](https://github.com/element-hq/element-web/pull/32524)). Contributed by [@&#8203;dbkr](https://github.com/dbkr).
- Keep custom theme active after reload ([#&#8203;32506](https://github.com/element-hq/element-web/pull/32506)). Contributed by [@&#8203;florianduros](https://github.com/florianduros).
- Update font format from 'ttf' to 'truetype' ([#&#8203;32493](https://github.com/element-hq/element-web/pull/32493)). Contributed by [@&#8203;all-yall](https://github.com/all-yall).
- Fix videos on Firefox ([#&#8203;32497](https://github.com/element-hq/element-web/pull/32497)). Contributed by [@&#8203;p1gp1g](https://github.com/p1gp1g).
- Use a dedicated FAQ/help entry for key storage. ([#&#8203;32480](https://github.com/element-hq/element-web/pull/32480)). Contributed by [@&#8203;mxandreas](https://github.com/mxandreas).
- Avoid showing two chat timelines side by side after a call ([#&#8203;32484](https://github.com/element-hq/element-web/pull/32484)). Contributed by [@&#8203;robintown](https://github.com/robintown).
- Update screenshot for reactive display name disambiguation ([#&#8203;32431](https://github.com/element-hq/element-web/pull/32431)). Contributed by [@&#8203;aditya-cherukuru](https://github.com/aditya-cherukuru).
- Fix Status Bar being unreadable when the user overrides the default OS light/dark theme. ([#&#8203;32442](https://github.com/element-hq/element-web/pull/32442)). Contributed by [@&#8203;Half-Shot](https://github.com/Half-Shot).
- fix: Remove state\_key: null from Seshat search results ([#&#8203;31524](https://github.com/element-hq/element-web/pull/31524)). Contributed by [@&#8203;shinaoka](https://github.com/shinaoka).
- Fix user pill deserialisation ([#&#8203;31947](https://github.com/element-hq/element-web/pull/31947)). Contributed by [@&#8203;t3chguy](https://github.com/t3chguy).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIiwiaW1hZ2UiXX0=-->

Reviewed-on: #4213
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 20:38:00 +00:00
9ad256db81 chore(deps): update vectorim/element-web docker tag to v1.12.11 (#4209)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 45s
renovate / renovate (push) Successful in 3m9s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [vectorim/element-web](https://github.com/element-hq/element-web) | patch | `v1.12.10` → `v1.12.11` |

---

### Release Notes

<details>
<summary>element-hq/element-web (vectorim/element-web)</summary>

### [`v1.12.11`](https://github.com/element-hq/element-web/releases/tag/v1.12.11)

[Compare Source](https://github.com/element-hq/element-web/compare/v1.12.10...v1.12.11)

#### 🦖 Deprecations

- Remove UIFeature.BulkUnverifiedSessionsReminder setting ([#&#8203;31943](https://github.com/element-hq/element-web/pull/31943)). Contributed by [@&#8203;andybalaam](https://github.com/andybalaam).
- Remove unused function to auto-rageshake when key backup is not set up ([#&#8203;31942](https://github.com/element-hq/element-web/pull/31942)). Contributed by [@&#8203;andybalaam](https://github.com/andybalaam).

####  Features

- Room list: update the visuals in order to have better contrast ([#&#8203;32421](https://github.com/element-hq/element-web/pull/32421)). Contributed by [@&#8203;florianduros](https://github.com/florianduros).
- Set history visibility to "invited" for DMs and new non-public rooms when creating a room ([#&#8203;31974](https://github.com/element-hq/element-web/pull/31974)). Contributed by [@&#8203;langleyd](https://github.com/langleyd).
- Remove server acl status/summaries from timeline  ([#&#8203;32461](https://github.com/element-hq/element-web/pull/32461)). Contributed by [@&#8203;langleyd](https://github.com/langleyd).
- Update `globalBlacklistUnverifiedDevices` on setting change ([#&#8203;31983](https://github.com/element-hq/element-web/pull/31983)). Contributed by [@&#8203;kaylendog](https://github.com/kaylendog).
- Add badge for history visibiltity to room info panel ([#&#8203;31927](https://github.com/element-hq/element-web/pull/31927)). Contributed by [@&#8203;richvdh](https://github.com/richvdh).

#### 🐛 Bug Fixes

- Default useOnlyCurrentProfiles to true ([#&#8203;32524](https://github.com/element-hq/element-web/pull/32524)). Contributed by [@&#8203;dbkr](https://github.com/dbkr).
- Keep custom theme active after reload ([#&#8203;32506](https://github.com/element-hq/element-web/pull/32506)). Contributed by [@&#8203;florianduros](https://github.com/florianduros).
- Update font format from 'ttf' to 'truetype' ([#&#8203;32493](https://github.com/element-hq/element-web/pull/32493)). Contributed by [@&#8203;all-yall](https://github.com/all-yall).
- Fix videos on Firefox ([#&#8203;32497](https://github.com/element-hq/element-web/pull/32497)). Contributed by [@&#8203;p1gp1g](https://github.com/p1gp1g).
- Use a dedicated FAQ/help entry for key storage. ([#&#8203;32480](https://github.com/element-hq/element-web/pull/32480)). Contributed by [@&#8203;mxandreas](https://github.com/mxandreas).
- Avoid showing two chat timelines side by side after a call ([#&#8203;32484](https://github.com/element-hq/element-web/pull/32484)). Contributed by [@&#8203;robintown](https://github.com/robintown).
- Update screenshot for reactive display name disambiguation ([#&#8203;32431](https://github.com/element-hq/element-web/pull/32431)). Contributed by [@&#8203;aditya-cherukuru](https://github.com/aditya-cherukuru).
- Fix Status Bar being unreadable when the user overrides the default OS light/dark theme. ([#&#8203;32442](https://github.com/element-hq/element-web/pull/32442)). Contributed by [@&#8203;Half-Shot](https://github.com/Half-Shot).
- fix: Remove state\_key: null from Seshat search results ([#&#8203;31524](https://github.com/element-hq/element-web/pull/31524)). Contributed by [@&#8203;shinaoka](https://github.com/shinaoka).
- Fix user pill deserialisation ([#&#8203;31947](https://github.com/element-hq/element-web/pull/31947)). Contributed by [@&#8203;t3chguy](https://github.com/t3chguy).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIiwiaW1hZ2UiXX0=-->

Reviewed-on: #4209
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 20:32:01 +00:00
cec1bfca70 chore(deps): update helm release rook-ceph-cluster to v1.19.2 (#4219)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 59s
renovate / renovate (push) Successful in 3m4s
2026-02-24 20:19:14 +00:00
4de931a318 chore(deps): update kube-prometheus-stack docker tag to v82.3.0 (#4205)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m2s
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [kube-prometheus-stack](https://github.com/prometheus-operator/kube-prometheus) ([source](https://github.com/prometheus-community/helm-charts)) | minor | `82.2.1` → `82.3.0` |

---

### Release Notes

<details>
<summary>prometheus-community/helm-charts (kube-prometheus-stack)</summary>

### [`v82.3.0`](https://github.com/prometheus-community/helm-charts/releases/tag/kube-prometheus-stack-82.3.0)

[Compare Source](https://github.com/prometheus-community/helm-charts/compare/kube-prometheus-stack-82.2.1...kube-prometheus-stack-82.3.0)

kube-prometheus-stack collects Kubernetes manifests, Grafana dashboards, and Prometheus rules combined with documentation and scripts to provide easy to operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus Operator.

#### What's Changed

- \[kube-prometheus-stack] Update kube-prometheus-stack dependency non-major updates by [@&#8203;renovate](https://github.com/renovate)\[bot] in [#&#8203;6670](https://github.com/prometheus-community/helm-charts/pull/6670)

**Full Changelog**: <https://github.com/prometheus-community/helm-charts/compare/kube-prometheus-stack-82.2.1...kube-prometheus-stack-82.3.0>

</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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4205
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 20:15:08 +00:00
78a834ed10 chore(deps): update g33kphr33k/musicgrabber docker tag to v2.2.1 (#4204)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Has been cancelled
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| g33kphr33k/musicgrabber | minor | `2.1.2` → `2.2.1` |

---

### 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4204
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 20:14:30 +00:00
c76cae8b3f chore(deps): update helm release rook-ceph to v1.19.2 (#4217)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 47s
render-manifests-push / render-manifests-push (push) Has been skipped
renovate / renovate (push) Successful in 4m14s
2026-02-24 20:05:55 +00:00
80e7d7b974 chore(deps): update dependency rook/rook to v1.19.2 (#4216)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 46s
renovate / renovate (push) Has been cancelled
2026-02-24 20:05:14 +00:00
d6e0004e23 chore(deps): update dependency element-hq/synapse to v1.148.0 (#4203)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 55s
renovate / renovate (push) Successful in 5m12s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [element-hq/synapse](https://github.com/element-hq/synapse) | minor | `v1.147.1` → `v1.148.0` |

---

### Release Notes

<details>
<summary>element-hq/synapse (element-hq/synapse)</summary>

### [`v1.148.0`](https://github.com/element-hq/synapse/releases/tag/v1.148.0)

[Compare Source](https://github.com/element-hq/synapse/compare/v1.147.1...v1.148.0)

### Synapse 1.148.0 (2026-02-24)

No significant changes since 1.148.0rc1.

### Synapse 1.148.0rc1 (2026-02-17)

#### Features

- Support sending and receiving [MSC4354 Sticky Event](https://github.com/matrix-org/matrix-spec-proposals/pull/4354) metadata. ([#&#8203;19365](https://github.com/element-hq/synapse/issues/19365))

#### Improved Documentation

- Fix reference to the `experimental_features` section of the configuration manual documentation. ([#&#8203;19435](https://github.com/element-hq/synapse/issues/19435))

#### Deprecations and Removals

- Remove support for [MSC3244: Room version capabilities](https://github.com/matrix-org/matrix-spec-proposals/pull/3244) as the MSC was rejected. ([#&#8203;19429](https://github.com/element-hq/synapse/issues/19429))

#### Internal Changes

- Add in-repo Complement tests so we can test Synapse specific behavior at an end-to-end level. ([#&#8203;19406](https://github.com/element-hq/synapse/issues/19406))
- Push Synapse docker images to Element OCI Registry. ([#&#8203;19420](https://github.com/element-hq/synapse/issues/19420))
- Allow configuring the Rust HTTP client to use HTTP/2 only. ([#&#8203;19457](https://github.com/element-hq/synapse/issues/19457))
- Correctly refuse to start if the Rust workspace config has changed and the Rust library has not been rebuilt. ([#&#8203;19470](https://github.com/element-hq/synapse/issues/19470))

</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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS44IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4203
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 19:59:27 +00:00
2c09f8431d chore(deps): update ghcr.io/valkey-io/valkey docker tag to v9.0.3 (#4214)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m29s
renovate / renovate (push) Successful in 4m1s
2026-02-24 19:53:23 +00:00
f75f8f583e chore(deps): update dependency cert-manager/cert-manager to v1.19.4 (#4212)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 53s
renovate / renovate (push) Has been cancelled
2026-02-24 19:50:15 +00:00
6c1d095842 chore(deps): update helm release grafana-operator to v5.22.0 (#4202)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 45s
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [grafana-operator](https://github.com/grafana/helm-charts) | minor | `5.21.4` → `5.22.0` |

---

### Release Notes

<details>
<summary>grafana/helm-charts (grafana-operator)</summary>

### [`v5.22.0`](https://github.com/grafana/helm-charts/releases/tag/grafana-operator-5.22.0)

[Compare Source](https://github.com/grafana/helm-charts/compare/grafana-operator-5.21.4...grafana-operator-5.22.0)

Helm chart for the [grafana-operator](https://github.com/grafana/grafana-operator)

Tag on source: <https://github.com/grafana/grafana-operator/releases/tag/v5.22.0>

</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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiY2hhcnQiXX0=-->

Reviewed-on: #4202
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 19:46:42 +00:00
cffc26f6e4 chore(deps): update helm release matrix-synapse to v3.12.22 (#4208)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 54s
renovate / renovate (push) Successful in 5m32s
2026-02-24 19:35:36 +00:00
1420dc1216 chore(deps): update helm release cert-manager to v1.19.4 (#4206)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 43s
renovate / renovate (push) Has been cancelled
2026-02-24 19:31:19 +00:00
1eebf0f1a8 chore(deps): update dependency grafana/grafana-operator to v5.22.0 (#4201)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 54s
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [grafana/grafana-operator](https://github.com/grafana/grafana-operator) | minor | `v5.21.4` → `v5.22.0` |

---

### Release Notes

<details>
<summary>grafana/grafana-operator (grafana/grafana-operator)</summary>

### [`v5.22.0`](https://github.com/grafana/grafana-operator/releases/tag/v5.22.0)

[Compare Source](https://github.com/grafana/grafana-operator/compare/v5.21.4...v5.22.0)

<!-- Release notes generated using configuration in .github/release.yml at master -->

We're happy to announce version 5.22.0 of the Grafana Operator!

This release contains a bunch of new and exciting features like:

- The brand new [`GrafanaManifest`](https://grafana.github.io/grafana-operator/docs/examples/manifests/) resource
  - This allows you to manage resources previously not supported by the operator but available through the new Kuberentes-style Grafana APIs (e.g Playlists, ShortURLs) as well as resources introduced by plugins (e.g. Frontend O11y configuration in Grafana Cloud).
- Dynamic resource patching (currently only available to `GrafanaManifest` resources)
  - Patch resources with arbitrary `jq` scripts before submitting them to the Grafana API!
- Alert rule groups have been updated to support more fields exposed by the Grafana API
- Service accounts no longer require a name and will default to `metadata.name`

#### Upgrade instructions

##### Using Helm

```sh

# Upgrade the operator image & deployment
helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.22.0

# Upgrading CRDs
kubectl apply --server-side --force-conflicts -f https://github.com/grafana/grafana-operator/releases/download/v5.22.0/crds.yaml
```

##### Using kubectl

```sh

# Namespace Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.22.0/kustomize-namespace_scoped.yaml

# Cluster Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.22.0/kustomize-cluster_scoped.yaml
```

##### Using kustomize

```sh
flux pull artifact oci://ghcr.io/grafana/kustomize/grafana-operator:v5.22.0 --output ./grafana-operator/
```

##### Using OLM

Releases are published to [operatorhub.io](https://operatorhub.io/operator/grafana-operator) as well as the OpenShift Operator Catalog. Depending on the installation, existing installations will either upgrade automatically or require approval from an administrator.

#### What's Changed

##### Changes that might need your attention

- chore(Helm): simplify helm chart by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2463](https://github.com/grafana/grafana-operator/pull/2463)
  - We changed the default fallback for the cache strategy to `safe` instead of `off`. If you haven't explicitly set `enforceCacheLabels` to null, this does not affect you.

##### Features

- feat(controllers): add new GrafanaManifest resource by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2448](https://github.com/grafana/grafana-operator/pull/2448)
- feat(GrafanaAlertRuleGroup): add support for targetDatasourceUid in recording rules by [@&#8203;RobertClarke64](https://github.com/RobertClarke64) in [#&#8203;2478](https://github.com/grafana/grafana-operator/pull/2478)
- feat(GrafanaAlertRuleGroup): add support for `active_time_intervals` in `notificationSettings` by [@&#8203;heliapb](https://github.com/heliapb) in [#&#8203;2479](https://github.com/grafana/grafana-operator/pull/2479)
- feat(GrafanaManifest): add support for dynamic resource patching by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2470](https://github.com/grafana/grafana-operator/pull/2470)
- feat(GrafanaServiceAccount): Make `.spec.name` optional by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2524](https://github.com/grafana/grafana-operator/pull/2524)

##### Fixes

- fix(GrafanaDashboard): update Grafana status even when remote state matches by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2440](https://github.com/grafana/grafana-operator/pull/2440)
- fix(AlertRuleGroup): skip reconciliation when there's no drift in remote state by [@&#8203;heliapb](https://github.com/heliapb) in [#&#8203;2439](https://github.com/grafana/grafana-operator/pull/2439)
- fix(GrafanaAlertRuleGroup): allow deprecated fields `dashboardUid` and `panelId` by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2450](https://github.com/grafana/grafana-operator/pull/2450)
- fix(logs): Leader election log format by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2466](https://github.com/grafana/grafana-operator/pull/2466)
- fix: add CRD validation for URLs in external grafana, dashboards, and library panels by [@&#8203;heliapb](https://github.com/heliapb) in [#&#8203;2446](https://github.com/grafana/grafana-operator/pull/2446)
- fix(GrafanaManifest): consider forbidden error as success when deleting manifests by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2468](https://github.com/grafana/grafana-operator/pull/2468)
- fix(helm): missing list namespaces permission with `watchNamespaceSelector` by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2465](https://github.com/grafana/grafana-operator/pull/2465)
- fix(Grafana): missing HTTPRoute backendRefs (alternative solution) by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2510](https://github.com/grafana/grafana-operator/pull/2510)
- fix(GrafanaContactPoint): use list based matching as a workaround for 10.4.0-10.4.5 by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2507](https://github.com/grafana/grafana-operator/pull/2507)

##### Dependencies

- chore(deps): update dependency ko-build/ko to v0.18.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2422](https://github.com/grafana/grafana-operator/pull/2422)
- chore(deps): update dependency kubernetes-sigs/controller-tools to v1.35.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2425](https://github.com/grafana/grafana-operator/pull/2425)
- chore(deps): update dependency kubernetes-sigs/controller-tools to v0.20.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2424](https://github.com/grafana/grafana-operator/pull/2424)
- chore(deps): update docker.io/grafana/grafana docker tag to v12.3.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2423](https://github.com/grafana/grafana-operator/pull/2423)
- fix(deps): update kubernetes packages to v0.35.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2427](https://github.com/grafana/grafana-operator/pull/2427)
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.27.4 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2434](https://github.com/grafana/grafana-operator/pull/2434)
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.27.5 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2441](https://github.com/grafana/grafana-operator/pull/2441)
- fix(deps): update module github.com/grafana/grafana-plugin-sdk-go to v0.285.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2444](https://github.com/grafana/grafana-operator/pull/2444)
- chore: bump go to 1.25.6 by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2445](https://github.com/grafana/grafana-operator/pull/2445)
- chore(deps): update dependency kubernetes-sigs/controller-runtime to v0.22.5 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2454](https://github.com/grafana/grafana-operator/pull/2454)
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.22.5 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2455](https://github.com/grafana/grafana-operator/pull/2455)
- chore(deps): update dependency kubernetes-sigs/controller-runtime to v0.23.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2458](https://github.com/grafana/grafana-operator/pull/2458)
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.23.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2459](https://github.com/grafana/grafana-operator/pull/2459)
- fix(deps): update module github.com/grafana/grafana-plugin-sdk-go to v0.286.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2462](https://github.com/grafana/grafana-operator/pull/2462)
- chore(deps): update dependency kubernetes-sigs/controller-runtime to v0.23.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2471](https://github.com/grafana/grafana-operator/pull/2471)
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.23.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2472](https://github.com/grafana/grafana-operator/pull/2472)
- chore(deps): update docker.io/grafana/grafana docker tag to v12.3.2 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2475](https://github.com/grafana/grafana-operator/pull/2475)
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.28.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2477](https://github.com/grafana/grafana-operator/pull/2477)
- fix(deps): update module github.com/grafana/grafana-plugin-sdk-go to v0.287.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2487](https://github.com/grafana/grafana-operator/pull/2487)
- fix(deps): update module github.com/alecthomas/kong to v1.14.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2488](https://github.com/grafana/grafana-operator/pull/2488)
- fix(deps): update module k8s.io/apimachinery to v0.35.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2492](https://github.com/grafana/grafana-operator/pull/2492)
- chore(deps): update dependency kubernetes-sigs/kustomize to v5.8.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2496](https://github.com/grafana/grafana-operator/pull/2496)
- fix(deps): update kubernetes packages to v0.35.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2498](https://github.com/grafana/grafana-operator/pull/2498)
- fix(deps): update module k8s.io/apiextensions-apiserver to v0.35.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2499](https://github.com/grafana/grafana-operator/pull/2499)
- fix(deps): update module github.com/grafana/grafana-plugin-sdk-go to v0.288.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2500](https://github.com/grafana/grafana-operator/pull/2500)
- chore(deps): update docker.io/grafana/grafana docker tag to v12.3.3 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2502](https://github.com/grafana/grafana-operator/pull/2502)
- fix(deps): update module github.com/grafana/grafana-plugin-sdk-go to v0.288.0 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2505](https://github.com/grafana/grafana-operator/pull/2505)
- chore(deps): update dependency kubernetes-sigs/controller-tools to v0.20.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2509](https://github.com/grafana/grafana-operator/pull/2509)
- chore(deps): update grafana/shared-workflows/get-vault-secrets action to v1.3.1 by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2526](https://github.com/grafana/grafana-operator/pull/2526)
- chore(deps): lock file maintenance by [@&#8203;renovate-sh-app](https://github.com/renovate-sh-app)\[bot] in [#&#8203;2503](https://github.com/grafana/grafana-operator/pull/2503)

##### Documentation

- fix(docs): prefix absolute links in docs by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2421](https://github.com/grafana/grafana-operator/pull/2421)
- fix(docs): git URLs by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2430](https://github.com/grafana/grafana-operator/pull/2430)
- proposal: `GrafanaManifest` resource by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2431](https://github.com/grafana/grafana-operator/pull/2431)
- docs(quickstart): Undisturbed editing with `suspend=true` and link to Common Options by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2451](https://github.com/grafana/grafana-operator/pull/2451)
- proposal: dynamic patching proposal by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2436](https://github.com/grafana/grafana-operator/pull/2436)
- chore(CRDs): `GrafanaManifest` missing and removal of `GrafanaManifestTemplates` by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2473](https://github.com/grafana/grafana-operator/pull/2473)
- docs: document JaaS example by [@&#8203;sebhoss](https://github.com/sebhoss) in [#&#8203;2370](https://github.com/grafana/grafana-operator/pull/2370)
- fix(docs): unified\_alerting.enabled type in multiple replicas example by [@&#8203;klinch0](https://github.com/klinch0) in [#&#8203;2493](https://github.com/grafana/grafana-operator/pull/2493)
- docs: grafana manifest documentation by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2520](https://github.com/grafana/grafana-operator/pull/2520)
- chore: prep-release 5.22.0 by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2528](https://github.com/grafana/grafana-operator/pull/2528)

##### Other Changes

- chore(Makefile): switch deploy target to to its own overlay by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2419](https://github.com/grafana/grafana-operator/pull/2419)
- chore(controllers): move test container creation to tk8s package by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2443](https://github.com/grafana/grafana-operator/pull/2443)
- chore(controllers): Refactor creation of HTTP Clients by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2449](https://github.com/grafana/grafana-operator/pull/2449)
- chore(controllers): normalize logging by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2382](https://github.com/grafana/grafana-operator/pull/2382)
- chore(helm): reduce the number of RBAC resources  by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2464](https://github.com/grafana/grafana-operator/pull/2464)
- chore(RBAC Kustomize/OpenShift): Only allow lease management within the operators current namespace by [@&#8203;Baarsgaard](https://github.com/Baarsgaard) in [#&#8203;2467](https://github.com/grafana/grafana-operator/pull/2467)
- chore(api, controllers): modernize code using Go 1.26 features by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2497](https://github.com/grafana/grafana-operator/pull/2497)
- feat(tests): add support for grafana version overrides  by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2490](https://github.com/grafana/grafana-operator/pull/2490)
- chore(controllers): embed gtime to cut build time by [@&#8203;weisdd](https://github.com/weisdd) in [#&#8203;2514](https://github.com/grafana/grafana-operator/pull/2514)
- refactor: use kyaml instead of simplejson for fieldpath by [@&#8203;theSuess](https://github.com/theSuess) in [#&#8203;2519](https://github.com/grafana/grafana-operator/pull/2519)

#### New Contributors

- [@&#8203;heliapb](https://github.com/heliapb) made their first contribution in [#&#8203;2439](https://github.com/grafana/grafana-operator/pull/2439)
- [@&#8203;RobertClarke64](https://github.com/RobertClarke64) made their first contribution in [#&#8203;2478](https://github.com/grafana/grafana-operator/pull/2478)
- [@&#8203;sebhoss](https://github.com/sebhoss) made their first contribution in [#&#8203;2370](https://github.com/grafana/grafana-operator/pull/2370)
- [@&#8203;klinch0](https://github.com/klinch0) made their first contribution in [#&#8203;2493](https://github.com/grafana/grafana-operator/pull/2493)

**Full Changelog**: <https://github.com/grafana/grafana-operator/compare/v5.21.4...v5.22.0>

</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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4201
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 19:27:31 +00:00
cabcd80aaf feat: move route to chart
All checks were successful
lint-test-helm / lint-helm (push) Successful in 37s
render-manifests-push / render-manifests-push (push) Successful in 59s
renovate / renovate (push) Successful in 4m58s
2026-02-23 22:12:16 -06:00
23a10877ba feat: add decluttarr
Some checks failed
lint-test-helm / lint-helm (push) Failing after 7s
render-manifests-push / render-manifests-push (push) Successful in 1m0s
renovate / renovate (push) Successful in 3m4s
2026-02-23 22:09:04 -06:00
ba590d0d42 chore(deps): update ghcr.io/traefik/traefik docker tag to v3.6.9 (#4199)
All checks were successful
lint-test-docker / lint-docker-compose (push) Successful in 1m5s
render-manifests-dispatch / render-manifests-dispatch (push) Successful in 42m20s
renovate / renovate (push) Successful in 2m13s
2026-02-24 02:33:52 +00:00
49e3454be3 chore(deps): update dependency dani-garcia/vaultwarden to v1.35.4 (#4197)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 42s
renovate / renovate (push) Has been cancelled
2026-02-24 02:29:32 +00:00
cb73d062ec chore(deps): update calibrain/shelfmark to v1.1.2 (#4196)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2026-02-24 02:29:17 +00:00
fa9cfda358 chore(deps): update ghcr.io/autobrr/qui docker tag to v1.14.1 (#4187)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 46s
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | patch | `v1.14.0` → `v1.14.1` |

---

### Release Notes

<details>
<summary>autobrr/qui (ghcr.io/autobrr/qui)</summary>

### [`v1.14.1`](https://github.com/autobrr/qui/releases/tag/v1.14.1)

[Compare Source](https://github.com/autobrr/qui/compare/v1.14.0...v1.14.1)

#### Changelog

##### Bug Fixes

- [`6f3171c`](6f3171c07d): fix(auth): avoid chromium basic auth resets on expired qui sessions ([#&#8203;1495](https://github.com/autobrr/qui/issues/1495)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`d5acab7`](d5acab7e24): fix(automations): make managed full tag sync idempotent ([#&#8203;1494](https://github.com/autobrr/qui/issues/1494)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`9fdc949`](9fdc949adc): fix(crossseed): avoid webhook notification spam on pending matches ([#&#8203;1496](https://github.com/autobrr/qui/issues/1496)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`350edb3`](350edb3ea4): fix(notifications): improve torrent and automation event samples ([#&#8203;1501](https://github.com/autobrr/qui/issues/1501)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`e2c032c`](e2c032c924): fix(qbittorrent): ignore pseudo tracker labels in domain parsing ([#&#8203;1489](https://github.com/autobrr/qui/issues/1489)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`e00c70d`](e00c70df49): fix(qbittorrent): repair unified torrent sorting ([#&#8203;1490](https://github.com/autobrr/qui/issues/1490)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`4d95325`](4d95325805): fix(themes): clarify crypto donation discount flow ([#&#8203;1503](https://github.com/autobrr/qui/issues/1503)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`579ea8d`](579ea8d34c): fix(themes): clarify premium checkout and crypto flow ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`ece956a`](ece956a237): fix(torrents): scope instance column to unified cross-instance data ([#&#8203;1502](https://github.com/autobrr/qui/issues/1502)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`27cf6d2`](27cf6d2767): fix(ui): hide unified entry when one instance is active ([#&#8203;1493](https://github.com/autobrr/qui/issues/1493)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`80d911f`](80d911ff53): fix(ui): remove single-instance indent in header menu ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`6ae7625`](6ae76256f1): fix(ui): restore instances header in menu ([@&#8203;s0up4200](https://github.com/s0up4200))

##### Other Changes

- [`336dc9a`](336dc9af3b): docs: update payment info ([#&#8203;1424](https://github.com/autobrr/qui/issues/1424)) ([@&#8203;s0up4200](https://github.com/s0up4200))

**Full Changelog**: <https://github.com/autobrr/qui/compare/v1.14.0...v1.14.1>

#### Docker images

- `docker pull ghcr.io/autobrr/qui:v1.14.1`
- `docker pull ghcr.io/autobrr/qui:latest`

#### What to do next?

- Join our [Discord server](https://discord.autobrr.com/qui)

Thank you for using qui!

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIiwiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4187
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 02:26:22 +00:00
687dd54bed chore(deps): update g33kphr33k/musicgrabber docker tag to v2.1.2 (#4194)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m34s
renovate / renovate (push) Successful in 3m25s
2026-02-24 00:38:03 +00:00
e7e243fe43 chore(deps): update dependency traefik/traefik to v3.6.9 (#4193)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m32s
renovate / renovate (push) Has been cancelled
2026-02-24 00:33:23 +00:00
733b813a96 chore(deps): update dependency grafana/loki to v3.6.7 (#4192)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2026-02-24 00:32:40 +00:00
02776b1a15 chore(deps): update searxng/searxng:latest docker digest to edf110a (#4172)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m12s
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| searxng/searxng | digest | `c5e5aed` → `edf110a` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIiwiaW1hZ2UiXX0=-->

Reviewed-on: #4172
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-24 00:28:44 +00:00
1bac35275e chore(deps): update vaultwarden/server docker tag to v1.35.4 (#4189)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m32s
renovate / renovate (push) Successful in 6m22s
2026-02-23 23:17:29 +00:00
f9bae7a7d1 chore(deps): update ghcr.io/actualbudget/actual docker tag to v26.2.1 (#4186)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m37s
renovate / renovate (push) Has been cancelled
2026-02-23 23:13:00 +00:00
6a00ceaa2b chore(deps): update ollama/ollama to v0.17.0 (#4169)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 41s
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ollama/ollama](https://github.com/ollama/ollama) | minor | `0.16.3` → `0.17.0` |
| ollama/ollama | minor | `0.16.3` → `0.17.0` |

---

### Release Notes

<details>
<summary>ollama/ollama (ollama/ollama)</summary>

### [`v0.17.0`](https://github.com/ollama/ollama/releases/tag/v0.17.0)

[Compare Source](https://github.com/ollama/ollama/compare/v0.16.3...v0.17.0)

#### OpenClaw

OpenClaw can now be installed and configured automatically via Ollama, making it the easiest way to get up and running with OpenClaw with open models like Kimi-K2.5, GLM-5, and Minimax-M2.5.

##### Get started

`ollama launch openclaw`

<img width="2368" height="1830" alt="oc1" src="https://github.com/user-attachments/assets/cb9443d6-92cc-4c13-b26b-87e5f6c09b4e" />

##### Websearch in OpenClaw

When using cloud models, websearch is enabled - allowing OpenClaw to search the internet.

<img width="2368" height="1830" alt="oc3" src="https://github.com/user-attachments/assets/a4400e6d-e4c4-485b-bd11-823a624962a2" />

#### What's Changed
* Improved tokenizer performance
* Ollama's macOS and Windows apps will now default to a context length based on available VRAM

#### New Contributors
* @&#8203;natl-set made their first contribution in https://github.com/ollama/ollama/pull/14322

**Full Changelog**: <https://github.com/ollama/ollama/compare/v0.16.3...v0.17.0>

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4169
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-02-23 23:09:39 +00:00
6f4467f2aa chore(deps): update kube-prometheus-stack docker tag to v82.2.1 (#4181)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m53s
renovate / renovate (push) Successful in 3m48s
2026-02-23 18:05:06 +00:00
de0848713a chore(deps): update helm release argo-cd to v9.4.4 (#4180)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 42s
renovate / renovate (push) Has been cancelled
2026-02-23 18:03:39 +00:00
1c07cdb7eb chore(deps): update ghcr.io/open-webui/open-webui docker tag to v0.8.5 (#4179)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2026-02-23 18:03:05 +00:00
9d87fa7880 feat: remove huntarr
All checks were successful
lint-test-helm / lint-helm (push) Successful in 35s
lint-test-docker / lint-docker-compose (push) Successful in 48s
render-manifests-push / render-manifests-push (push) Successful in 1m16s
renovate / renovate (push) Successful in 5m29s
2026-02-23 11:41:05 -06:00
70b8751398 chore(deps): update dependency actualbudget/actual to v26.2.1 (#4177)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 40s
renovate / renovate (push) Successful in 3m34s
2026-02-23 16:03:19 +00:00
3c93618690 chore(deps): update dependency argoproj/argo-cd to v3.3.2 (#4175)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 15s
renovate / renovate (push) Successful in 4m0s
2026-02-23 14:02:55 +00:00
50 changed files with 154 additions and 204 deletions

View File

@@ -23,4 +23,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/actual-budget.png
# renovate: datasource=github-releases depName=actualbudget/actual
appVersion: 26.2.0
appVersion: 26.2.1

View File

@@ -9,7 +9,7 @@ actual:
main:
image:
repository: ghcr.io/actualbudget/actual
tag: 26.2.0
tag: 26.2.1
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -15,8 +15,8 @@ maintainers:
- name: alexlebens
dependencies:
- name: argo-cd
version: 9.4.3
version: 9.4.4
repository: https://argoproj.github.io/argo-helm
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/argo-cd.png
# renovate: datasource=github-releases depName=argoproj/argo-cd
appVersion: v3.3.1
appVersion: v3.3.2

View File

@@ -1,7 +1,7 @@
dependencies:
- name: authentik
repository: https://charts.goauthentik.io/
version: 2025.12.4
version: 2026.2.0
- name: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts
version: 2.3.0
@@ -11,5 +11,5 @@ dependencies:
- name: redis-replication
repository: oci://harbor.alexlebens.net/helm-charts
version: 1.0.4
digest: sha256:9e8f037f9d581ad83edde8d4a68672860cbe9d0192b10c37708710315a017469
generated: "2026-02-21T13:54:33.590892-06:00"
digest: sha256:c8602f093e78af87eac0c99d622f0815ec89ebc1305e097ca4d6f72b003ae57c
generated: "2026-02-24T22:04:07.188160085Z"

View File

@@ -21,7 +21,7 @@ maintainers:
- name: alexlebens
dependencies:
- name: authentik
version: 2025.12.4
version: 2026.2.0
repository: https://charts.goauthentik.io/
- name: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts

View File

@@ -15,7 +15,7 @@ bazarr:
main:
image:
repository: ghcr.io/linuxserver/bazarr
tag: 1.5.5@sha256:1cf40186b1bc35bec87f4e4892d5d8c06086da331010be03e3459a86869c5e74
tag: 1.5.5@sha256:c381924dcfd79930e8f3ee75e024671185b810b0f71c984aa8712854c74c1bbb
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -126,7 +126,6 @@ blocky:
home-assistant IN CNAME traefik-cl01tl
home-assistant-code-server IN CNAME traefik-cl01tl
hubble IN CNAME traefik-cl01tl
huntarr IN CNAME traefik-cl01tl
immich IN CNAME traefik-cl01tl
jellyfin IN CNAME traefik-cl01tl
jellystat IN CNAME traefik-cl01tl

View File

@@ -30,4 +30,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/booklore.png
# renovate: datasource=github-releases depName=booklore-app/BookLore
appVersion: v1.18.5
appVersion: v2.0.1

View File

@@ -9,7 +9,7 @@ booklore:
main:
image:
repository: ghcr.io/booklore-app/booklore
tag: v1.18.5
tag: v2.0.1
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -1,6 +1,6 @@
dependencies:
- name: cert-manager
repository: https://charts.jetstack.io
version: v1.19.3
digest: sha256:114cb3c074866dd41725580ac14367f0aa03653f362ae156430f1dc0ee6ddd32
generated: "2026-02-02T23:06:15.144687867Z"
version: v1.19.4
digest: sha256:5c4a0a0568677bfcf4529e6ec6a005957cd1820fd5f1d1f108e74370d409fe88
generated: "2026-02-24T19:30:44.415585645Z"

View File

@@ -14,8 +14,8 @@ maintainers:
- name: alexlebens
dependencies:
- name: cert-manager
version: v1.19.3
version: v1.19.4
repository: https://charts.jetstack.io
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/cert-manager.png
# renovate: datasource=github-releases depName=cert-manager/cert-manager
appVersion: v1.19.3
appVersion: v1.19.4

View File

@@ -0,0 +1,6 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
digest: sha256:548ae1f8699100a2f6bac11a4a3137402b3eea340c7a3db4d9f1813ad6a11dca
generated: "2026-02-23T22:08:42.516245-06:00"

View File

@@ -0,0 +1,20 @@
apiVersion: v2
name: decluttarr
version: 1.0.0
description: decluttarr
keywords:
- decluttarr
- servarr
home: https://wiki.alexlebens.dev/s/
sources:
- https://github.com/ManiMatter/decluttarr
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: decluttarr
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
# renovate: datasource=github-releases depName=ManiMatter/decluttarr
appVersion: v2.0.0

View File

@@ -0,0 +1,21 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: decluttarr-config-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: decluttarr-config-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: config.yaml
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/decluttarr/config
metadataPolicy: None
property: config.yaml

View File

@@ -0,0 +1,32 @@
decluttarr:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/manimatter/decluttarr
tag: v2.0.0
pullPolicy: IfNotPresent
env:
- name: TZ
value: America/Chicago
resources:
requests:
cpu: 10m
memory: 128Mi
persistence:
config:
enabled: true
type: secret
name: decluttarr-config-secret
advancedMounts:
main:
main:
- path: /app/config/config.yaml
readOnly: true
mountPropagation: None
subPath: config.yaml

View File

@@ -24,4 +24,4 @@ dependencies:
version: 2.3.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/element.png
# renovate: datasource=github-releases depName=element-hq/element-web
appVersion: v1.12.10
appVersion: v1.12.11

View File

@@ -2,7 +2,7 @@ element-web:
replicaCount: 1
image:
repository: vectorim/element-web
tag: v1.12.10
tag: v1.12.11
pullPolicy: IfNotPresent
defaultServer:
url: https://matrix.alexlebens.dev

View File

@@ -287,9 +287,6 @@ gatus:
- name: prowlarr
url: https://prowlarr.alexlebens.net
<<: *defaults
- name: huntarr
url: https://huntarr.alexlebens.net
<<: *defaults
- name: bazarr
url: https://bazarr.alexlebens.net
<<: *defaults

View File

@@ -251,7 +251,7 @@ valkey-renovate:
image:
registry: ghcr.io
repository: valkey-io/valkey
tag: 9.0.2-alpine
tag: 9.0.3-alpine
resources:
requests:
cpu: 10m

View File

@@ -1,7 +1,7 @@
dependencies:
- name: grafana-operator
repository: https://grafana.github.io/helm-charts
version: 5.21.4
version: 5.22.0
- name: postgres-cluster
repository: oci://harbor.alexlebens.net/helm-charts
version: 7.7.0
@@ -11,5 +11,5 @@ dependencies:
- name: redis-replication
repository: oci://harbor.alexlebens.net/helm-charts
version: 1.0.4
digest: sha256:e93e3ce24fc395b07f64b9536a48c7b91e1a5de594406df9e5690c3b6b04f63a
generated: "2026-02-21T13:55:30.346865-06:00"
digest: sha256:ef0a64bd24d9c0d5e861fc949c173fecaaf418627b2bc64973547a9d577aa5cf
generated: "2026-02-24T19:40:11.951103549Z"

View File

@@ -17,7 +17,7 @@ maintainers:
- name: alexlebens
dependencies:
- name: grafana-operator
version: 5.21.4
version: 5.22.0
repository: https://grafana.github.io/helm-charts
- name: postgres-cluster
alias: postgres-18-cluster
@@ -33,4 +33,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/grafana.png
# renovate: datasource=github-releases depName=grafana/grafana-operator
appVersion: v5.21.4
appVersion: v5.22.0

View File

@@ -591,12 +591,6 @@ homepage:
href: https://prowlarr.alexlebens.net
siteMonitor: http://prowlarr.prowlarr:80
statusStyle: dot
- Huntarr:
icon: https://raw.githubusercontent.com/plexguide/Huntarr.io/main/frontend/static/logo/128.png
description: Content upgrader
href: https://huntarr.alexlebens.net
siteMonitor: http://huntarr.huntarr:80
statusStyle: dot
- Bazarr:
icon: sh-bazarr.webp
description: Subtitles

View File

@@ -1,9 +0,0 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.7.0
digest: sha256:a3df74f75bbc4aa303a70031732c8727a19d516deb106996c035e30e8ef103c4
generated: "2026-01-16T18:47:16.606690576Z"

View File

@@ -1,26 +0,0 @@
apiVersion: v2
name: huntarr
version: 1.0.0
description: Huntarr
keywords:
- huntarr
- servarr
home: https://wiki.alexlebens.dev/s/831ca16e-d308-4d7b-9213-f841834c1181
sources:
- https://github.com/plexguide/Huntarr.io
- https://hub.docker.com/r/huntarr/huntarr
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: huntarr
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
alias: volsync-target-config
version: 0.7.0
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/huntarr.png
# renovate: datasource=github-releases depName=plexguide/huntarr
appVersion: 9.3.7

View File

@@ -1,70 +0,0 @@
huntarr:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/plexguide/huntarr
tag: 9.3.7
pullPolicy: IfNotPresent
env:
- name: TZ
value: US/Central
resources:
requests:
cpu: 100m
memory: 256Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 9705
protocol: HTTP
route:
main:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- huntarr.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: huntarr
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
persistence:
config:
forceRename: huntarr-config
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 5Gi
advancedMounts:
main:
main:
- path: /config
readOnly: false
volsync-target-config:
pvcTarget: huntarr-config
local:
enabled: true
schedule: 26 8 * * *
remote:
enabled: false
external:
enabled: true
schedule: 26 9 * * *

View File

@@ -1,12 +1,12 @@
dependencies:
- name: kube-prometheus-stack
repository: oci://ghcr.io/prometheus-community/charts
version: 82.2.0
version: 82.3.0
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: redis-replication
repository: oci://harbor.alexlebens.net/helm-charts
version: 1.0.4
digest: sha256:00762fccd6819bc6cc15eb36c6afcc3006198a3861ce4886456028910205fe43
generated: "2026-02-20T15:03:56.36908709Z"
digest: sha256:41de0559e2f4e85a33ca006520cf67c85abaf5691f3cd0aacf7b66ba0d95ce50
generated: "2026-02-24T20:10:32.588038295Z"

View File

@@ -20,7 +20,7 @@ maintainers:
- name: alexlebens
dependencies:
- name: kube-prometheus-stack
version: 82.2.0
version: 82.3.0
repository: oci://ghcr.io/prometheus-community/charts
- name: app-template
alias: ntfy-alertmanager

View File

@@ -23,4 +23,4 @@ dependencies:
repository: https://grafana.github.io/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/loki.png
# renovate: datasource=github-releases depName=grafana/loki
appVersion: 3.6.6
appVersion: 3.6.7

View File

@@ -1,7 +1,7 @@
dependencies:
- name: matrix-synapse
repository: https://ananace.gitlab.io/charts
version: 3.12.21
version: 3.12.22
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
@@ -38,5 +38,5 @@ dependencies:
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.7.0
digest: sha256:c90f4e4cf247a2fc0b1bc455ab8840f48e7fdf825aad3ebb3a41a9996ae4bc19
generated: "2026-02-21T13:56:27.155487-06:00"
digest: sha256:50e77b928a33c3c154e49546f73b0547439aab81a9ccfe22abe61496d3d5582b
generated: "2026-02-24T19:34:51.367657762Z"

View File

@@ -29,7 +29,7 @@ maintainers:
- name: alexlebens
dependencies:
- name: matrix-synapse
version: 3.12.21
version: 3.12.22
repository: https://ananace.gitlab.io/charts
- name: app-template
alias: matrix-hookshot
@@ -81,4 +81,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/matrix.png
# renovate: datasource=github-releases depName=element-hq/synapse
appVersion: v1.147.1
appVersion: v1.148.0

View File

@@ -9,7 +9,7 @@ music-grabber:
main:
image:
repository: g33kphr33k/musicgrabber
tag: 2.1.1
tag: 2.2.1
pullPolicy: IfNotPresent
env:
- name: MUSIC_DIR

View File

@@ -31,4 +31,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/ollama.png
# renovate: datasource=github-releases depName=ollama/ollama
appVersion: 0.16.3
appVersion: 0.17.0

View File

@@ -22,7 +22,7 @@ ollama:
main:
image:
repository: ollama/ollama
tag: 0.16.3
tag: 0.17.0
pullPolicy: IfNotPresent
env:
- name: OLLAMA_KEEP_ALIVE
@@ -58,7 +58,7 @@ ollama:
main:
image:
repository: ollama/ollama
tag: 0.16.3
tag: 0.17.0
pullPolicy: IfNotPresent
env:
- name: OLLAMA_KEEP_ALIVE
@@ -94,7 +94,7 @@ ollama:
main:
image:
repository: ollama/ollama
tag: 0.16.3
tag: 0.17.0
pullPolicy: IfNotPresent
env:
- name: OLLAMA_KEEP_ALIVE
@@ -117,7 +117,7 @@ ollama:
main:
image:
repository: ghcr.io/open-webui/open-webui
tag: v0.8.3
tag: v0.8.5
pullPolicy: IfNotPresent
env:
- name: ENV

View File

@@ -212,7 +212,7 @@ qbittorrent:
qui:
image:
repository: ghcr.io/autobrr/qui
tag: v1.14.0
tag: v1.14.1
pullPolicy: IfNotPresent
env:
- name: QUI__METRICS_ENABLED

View File

@@ -1,12 +1,12 @@
dependencies:
- name: rook-ceph
repository: https://charts.rook.io/release
version: v1.19.1
version: v1.19.2
- name: rook-ceph-cluster
repository: https://charts.rook.io/release
version: v1.19.1
version: v1.19.2
- name: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts
version: 2.3.0
digest: sha256:99e0dea26a3c15cea01fb21fd0db36d3bef27de332858e5126f1b36310c2901e
generated: "2026-02-07T00:39:02.693159674Z"
digest: sha256:32298e3004a4b411ded3a82a2eea31b350b8e8909bd193538fa3c6be0b8a0e94
generated: "2026-02-24T20:18:18.200779597Z"

View File

@@ -16,10 +16,10 @@ maintainers:
- name: alexlebens
dependencies:
- name: rook-ceph
version: v1.19.1
version: v1.19.2
repository: https://charts.rook.io/release
- name: rook-ceph-cluster
version: v1.19.1
version: v1.19.2
repository: https://charts.rook.io/release
- name: cloudflared
alias: cloudflared-rgw
@@ -27,4 +27,4 @@ dependencies:
version: 2.3.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/ceph.png
# renovate: datasource=github-releases depName=rook/rook
appVersion: v1.19.1
appVersion: v1.19.2

View File

@@ -9,7 +9,7 @@ searxng:
main:
image:
repository: searxng/searxng
tag: latest@sha256:c5e5aedb70ec4b7ff5b1e8f8ea69253dceb85a98b8757360c1b65fe8652d6066
tag: latest@sha256:edf110a2816d8963949d03879c72a7e19c221b5f7bfb7952a33ae073f96ccb18
pullPolicy: IfNotPresent
env:
- name: SEARXNG_BASE_URL
@@ -39,7 +39,7 @@ searxng:
main:
image:
repository: searxng/searxng
tag: latest@sha256:c5e5aedb70ec4b7ff5b1e8f8ea69253dceb85a98b8757360c1b65fe8652d6066
tag: latest@sha256:edf110a2816d8963949d03879c72a7e19c221b5f7bfb7952a33ae073f96ccb18
pullPolicy: IfNotPresent
env:
- name: SEARXNG_BASE_URL

View File

@@ -6,4 +6,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.7.0
digest: sha256:c603e70725cdee68a9cd618847f95ae40e969c1e48ae6a8a6665d9f734753f24
generated: "2026-02-23T13:02:46.671504132Z"
generated: "2026-02-23T22:11:46.69471-06:00"

View File

@@ -1,28 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: seerr
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: seerr
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- seerr.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ''
kind: Service
name: seerr-seerr-chart
port: 80
weight: 100

View File

@@ -24,6 +24,22 @@ seerr-chart:
storageClass: ceph-block
ingress:
enabled: false
route:
main:
enabled: true
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- seerr.alexlebens.net
matches:
- path:
type: PathPrefix
value: /
resources:
requests:
cpu: 10m

View File

@@ -23,4 +23,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/shelfmark.webp
# renovate: datasource=github-releases depName=calibrain/shelfmark
appVersion: v1.1.1
appVersion: v1.1.2

View File

@@ -9,7 +9,7 @@ shelfmark:
main:
image:
repository: ghcr.io/calibrain/shelfmark
tag: v1.1.1
tag: v1.1.2
pullPolicy: IfNotPresent
env:
- name: FLASK_PORT

View File

@@ -22,4 +22,4 @@ dependencies:
repository: https://traefik.github.io/charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/webp/traefik.webp
# renovate: datasource=github-releases depName=traefik/traefik
appVersion: v3.6.8
appVersion: v3.6.9

View File

@@ -35,4 +35,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/vaultwarden.png
# renovate: datasource=github-releases depName=dani-garcia/vaultwarden
appVersion: 1.35.3
appVersion: 1.35.4

View File

@@ -9,7 +9,7 @@ vaultwarden:
main:
image:
repository: vaultwarden/server
tag: 1.35.3
tag: 1.35.4
pullPolicy: IfNotPresent
env:
- name: DOMAIN

View File

@@ -101,7 +101,6 @@ customDNS:
home-assistant IN CNAME traefik-cl01tl
home-assistant-code-server IN CNAME traefik-cl01tl
hubble IN CNAME traefik-cl01tl
huntarr IN CNAME traefik-cl01tl
immich IN CNAME traefik-cl01tl
jellyfin IN CNAME traefik-cl01tl
jellystat IN CNAME traefik-cl01tl

View File

@@ -1,7 +1,7 @@
---
services:
traefik:
image: ghcr.io/traefik/traefik:v3.6.8
image: ghcr.io/traefik/traefik:v3.6.9
container_name: traefik
command:
- "--global.checkNewVersion=false"

View File

@@ -122,7 +122,6 @@ customDNS:
home-assistant IN CNAME traefik-cl01tl
home-assistant-code-server IN CNAME traefik-cl01tl
hubble IN CNAME traefik-cl01tl
huntarr IN CNAME traefik-cl01tl
immich IN CNAME traefik-cl01tl
jellyfin IN CNAME traefik-cl01tl
jellystat IN CNAME traefik-cl01tl

View File

@@ -1,7 +1,7 @@
---
services:
traefik:
image: ghcr.io/traefik/traefik:v3.6.8
image: ghcr.io/traefik/traefik:v3.6.9
container_name: traefik
command:
- "--global.checkNewVersion=false"

View File

@@ -20,7 +20,7 @@ services:
- /dev/net/tun:/dev/net/tun
traefik:
image: ghcr.io/traefik/traefik:v3.6.8
image: ghcr.io/traefik/traefik:v3.6.9
container_name: traefik
command:
- "--global.checkNewVersion=false"