ec887da62d0519c87df5364cf2fee02ea0a2302e
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [deluan/navidrome](https://github.com/navidrome/navidrome) | minor | `0.60.3` → `0.61.0` | --- ### Release Notes <details> <summary>navidrome/navidrome (deluan/navidrome)</summary> ### [`v0.61.0`](https://github.com/navidrome/navidrome/releases/tag/v0.61.0) [Compare Source](https://github.com/navidrome/navidrome/compare/v0.60.3...v0.61.0) This version brings a comprehensive **Artwork overhaul**, with per-disc cover art, artist image uploads, animated image preservation, and a faster image pipeline powered by WebP encoding. You can now upload custom artwork for playlists, artists, and internet radios directly from the UI, and multi-disc albums will automatically pick up disc-specific cover images. **Search** has been completely rebuilt on top of SQLite FTS5 with two-phase BM25 ranking, delivering faster and more accurate results across your entire library. **Transcoding** is now fully server-managed: Navidrome detects client codecs, applies format-aware bitrate defaults, and implements the [OpenSubsonic Transcoding extension](https://opensubsonic.netlify.app/docs/extensions/transcoding/), so clients no longer need to guess what format to request. The **Plugin System** continues to mature with new host services for HTTP requests, persistent task queues, lyrics providers, and key-value storage with TTL support, giving plugin developers more tools to build powerful integrations. #### Security - Bump `golang.org/x/image` to v0.38.0 to address CVE-2026-33809. ([#​5268](https://github.com/navidrome/navidrome/pull/5268)) - Add ownership checks to share Delete and Update operations, preventing unauthorized access to other users' shares. ([#​5189](https://github.com/navidrome/navidrome/pull/5189) by [@​deluan](https://github.com/deluan)) - Clear server-managed fields in savePlaylist to prevent field injection via REST API. ([f102036dc](https://github.com/navidrome/navidrome/commit/f102036dc) by [@​deluan](https://github.com/deluan)) #### ⚠️ Breaking Changes - Remove built-in Spotify integration. The `Spotify.ID` and `Spotify.Secret` configuration options are no longer supported. Use the Last.fm or Deezer agents, or a plugin for similar functionality, like the new [Apple Music Plugin](https://github.com/navidrome/apple-music-plugin). ([#​5197](https://github.com/navidrome/navidrome/pull/5197) by [@​deluan](https://github.com/deluan)) #### Configuration Changes | Status | Option | Description | Default | | ------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | | New | `EnableArtworkUpload` | Enable uploading custom artwork for playlists and artists. ([#​5110](https://github.com/navidrome/navidrome/pull/5110), [#​5198](https://github.com/navidrome/navidrome/pull/5198)) | `true` | | New | `EnableM3UExternalAlbumArt` | Enable fetching album art URLs from `#EXTALBUMARTURL` directives in M3U playlists. ([#​5131](https://github.com/navidrome/navidrome/pull/5131)) | `false` | | New | `DiscArtPriority` | Priority list for disc-level cover art sources. ([#​5182](https://github.com/navidrome/navidrome/pull/5182)) | `disc*.*, cd*.*, cover.*, folder.*, front.*, discsubtitle, embedded` | | New | `ArtistImageFolder` | Folder name to search for artist images within the library. ([#​5198](https://github.com/navidrome/navidrome/pull/5198)) | — | | New | `Search.Backend` | Search backend to use (`fts` for FTS5 full-text search). ([#​5079](https://github.com/navidrome/navidrome/pull/5079)) | `fts` | | New | `ExtAuth.LogoutURL` | URL to redirect to when logging out with external authentication. ([#​5074](https://github.com/navidrome/navidrome/pull/5074)) | `""` | | New | `Subsonic.AppendAlbumVersion` | Append album version/edition to album names in Subsonic API responses. ([#​5111](https://github.com/navidrome/navidrome/pull/5111)) | `true` | | New | `UISearchDebounceMs` | Debounce delay for the UI search field. ([#​5079](https://github.com/navidrome/navidrome/pull/5079)) | — | | Changed | `CoverJpegQuality` → `CoverArtQuality` | Renamed for clarity. Old name still works. ([#​5181](https://github.com/navidrome/navidrome/pull/5181)) | `75` | | CHanged | `SearchFullString` | Use `Search.FullString` instead. ([#​5079](https://github.com/navidrome/navidrome/pull/5079)) | — | | Removed | `Spotify.ID`, `Spotify.Secret` | Spotify integration has been removed. ([#​5197](https://github.com/navidrome/navidrome/pull/5197)) | — | For a complete list of all configuration options, see the [Configuration Options](https://www.navidrome.org/docs/usage/configuration-options/) documentation. #### Artwork - Add per-disc cover art support, with configurable `DiscArtPriority`. ([#​5182](https://github.com/navidrome/navidrome/pull/5182) by [@​deluan](https://github.com/deluan)) - Add artist image uploads and image-folder artwork source. ([#​5198](https://github.com/navidrome/navidrome/pull/5198) by [@​deluan](https://github.com/deluan)) - Preserve animated image artwork (GIF, APNG, animated WebP) during resize. ([#​5184](https://github.com/navidrome/navidrome/pull/5184) by [@​deluan](https://github.com/deluan)) - Improve image serving performance with WebP encoding and optimized pipeline. ([#​5181](https://github.com/navidrome/navidrome/pull/5181) by [@​deluan](https://github.com/deluan)) - Increase cover art size to 600px and use CatmullRom scaling for sharper images. ([cb396f3db](https://github.com/navidrome/navidrome/commit/cb396f3db) by [@​deluan](https://github.com/deluan)) - Fallback mediafile cover art to disc artwork before album. ([#​5216](https://github.com/navidrome/navidrome/pull/5216) by [@​deluan](https://github.com/deluan)) - Refresh stale artist image URLs on expiry. ([#​5267](https://github.com/navidrome/navidrome/pull/5267) by [@​deluan](https://github.com/deluan)) - Validate ffmpeg pipe before returning in cover art fallback. ([420d2c8e5](https://github.com/navidrome/navidrome/commit/420d2c8e5) by [@​deluan](https://github.com/deluan)) - Search parent folders for album cover art in multi-disc layouts. ([#​5157](https://github.com/navidrome/navidrome/pull/5157) by [@​deluan](https://github.com/deluan)) #### UI - Add custom playlist cover art upload. ([#​5110](https://github.com/navidrome/navidrome/pull/5110) by [@​adrbn](https://github.com/adrbn)) - Add cover art support for internet radio stations. ([#​5229](https://github.com/navidrome/navidrome/pull/5229) by [@​deluan](https://github.com/deluan)) - Add Dracula theme. ([#​5023](https://github.com/navidrome/navidrome/pull/5023) by [@​Saulimedes](https://github.com/Saulimedes)) - Add Nutball theme. ([#​4544](https://github.com/navidrome/navidrome/pull/4544) by [@​cafecitopuro](https://github.com/cafecitopuro)) - Add tooltips for long playlist and album names. ([#​5070](https://github.com/navidrome/navidrome/pull/5070) by [@​sfredo](https://github.com/sfredo)) - Add download link for config TOML and disable clipboard copy when unavailable. ([#​5035](https://github.com/navidrome/navidrome/pull/5035) by [@​kgarner7](https://github.com/kgarner7)) - Add `path` field as optional column in library list for desktop view. ([4e34d3ac1](https://github.com/navidrome/navidrome/commit/4e34d3ac1) by [@​deluan](https://github.com/deluan)) - Integrate server-managed transcoding decisions into web player. ([#​5155](https://github.com/navidrome/navidrome/pull/5155) by [@​deluan](https://github.com/deluan)) - Improve browser codec detection. ([#​5171](https://github.com/navidrome/navidrome/pull/5171) by [@​deluan](https://github.com/deluan)) - Allow `DefaultTheme="Auto"` from config. ([#​5190](https://github.com/navidrome/navidrome/pull/5190) by [@​trek-e](https://github.com/trek-e)) - Fix search focus after clearing search field. ([#​4932](https://github.com/navidrome/navidrome/pull/4932) by [@​borisrorsvort](https://github.com/borisrorsvort)) - Fix "Play Next" from restarting playback at top of queue. ([#​5049](https://github.com/navidrome/navidrome/pull/5049) by [@​alannnna](https://github.com/alannnna)) - Fix toggle switches not visible in Gruvbox Dark theme. ([#​5064](https://github.com/navidrome/navidrome/pull/5064) by [@​deluan](https://github.com/deluan)) - Fix delete button contrast in AMusic theme. ([51c48bcac](https://github.com/navidrome/navidrome/commit/51c48bcac) by [@​deluan](https://github.com/deluan)) - Cancel in-flight image requests on pagination, cache across remounts. ([#​5249](https://github.com/navidrome/navidrome/pull/5249) by [@​deluan](https://github.com/deluan)) - Prevent mobile touch events from triggering playback after lightbox close. ([197d357f0](https://github.com/navidrome/navidrome/commit/197d357f0) by [@​deluan](https://github.com/deluan)) - Prevent duplicate getCoverArt requests on artist page. ([549b81263](https://github.com/navidrome/navidrome/commit/549b81263) by [@​deluan](https://github.com/deluan)) #### Search - Implement FTS5-based full-text search for faster and more accurate results. ([#​5079](https://github.com/navidrome/navidrome/pull/5079) by [@​deluan](https://github.com/deluan)) - Improve FTS queries with two-phase BM25 ranking for Subsonic's `search3` endpoint. ([#​5086](https://github.com/navidrome/navidrome/pull/5086) by [@​deluan](https://github.com/deluan)) #### Transcoding - Implement server-managed transcoding. ([#​4990](https://github.com/navidrome/navidrome/pull/4990) by [@​deluan](https://github.com/deluan)) - Add player MaxBitRate cap, format-aware defaults, and browser profile filtering. ([#​5165](https://github.com/navidrome/navidrome/pull/5165) by [@​deluan](https://github.com/deluan)) - Improve transcoding failure diagnostics and error responses. ([#​5227](https://github.com/navidrome/navidrome/pull/5227) by [@​deluan](https://github.com/deluan)) - Use ADTS for AAC transcoding. ([#​5167](https://github.com/navidrome/navidrome/pull/5167) by [@​deluan](https://github.com/deluan)) - Implement fallback to DefaultDownsamplingFormat for unknown formats. ([5ecbe31a0](https://github.com/navidrome/navidrome/commit/5ecbe31a0) by [@​deluan](https://github.com/deluan)) - Prevent raw file being returned when explicit transcode format is requested. ([053a0fd6c](https://github.com/navidrome/navidrome/commit/053a0fd6c) by [@​deluan](https://github.com/deluan)) #### Subsonic API - Implement OpenSubsonic `transcoding` extension. ([#​4990](https://github.com/navidrome/navidrome/pull/4990) by [@​deluan](https://github.com/deluan)) - Append album version to names in Subsonic API responses. ([#​5111](https://github.com/navidrome/navidrome/pull/5111) by [@​deluan](https://github.com/deluan)) - Add coverArt to internetRadioStation response. ([03608d3ee](https://github.com/navidrome/navidrome/commit/03608d3ee) by [@​deluan](https://github.com/deluan)) - Add per-disc cover art support. ([#​5182](https://github.com/navidrome/navidrome/pull/5182) by [@​deluan](https://github.com/deluan)) - Never omit duration for AlbumID3. ([#​5217](https://github.com/navidrome/navidrome/pull/5217) by [@​kgarner7](https://github.com/kgarner7)) - Always return required playqueue fields. ([#​5172](https://github.com/navidrome/navidrome/pull/5172) by [@​kgarner7](https://github.com/kgarner7)) - Always include mandatory title field in Child responses. ([a887521d7](https://github.com/navidrome/navidrome/commit/a887521d7) by [@​deluan](https://github.com/deluan)) - Restore `public` attribute for playlists in XML responses. ([0c3cc8653](https://github.com/navidrome/navidrome/commit/0c3cc8653) by [@​deluan](https://github.com/deluan)) #### Scanner - Add MKA/Matroska audio file support via TagLib 2.2. ([#​5071](https://github.com/navidrome/navidrome/pull/5071) by [@​deluan](https://github.com/deluan)) - Exclude Vorbis VERSION from albumversion tag mapping. ([#​5194](https://github.com/navidrome/navidrome/pull/5194) by [@​trek-e](https://github.com/trek-e)) - Widen WASM panic recovery to cover tag/property reading. ([#​5223](https://github.com/navidrome/navidrome/pull/5223) by [@​deluan](https://github.com/deluan)) - Prevent duplicate tracks when multiple missing files match same target. ([#​5183](https://github.com/navidrome/navidrome/pull/5183) by [@​deluan](https://github.com/deluan)) - Prevent ScanOnStartup when scanner is disabled. ([1cf3fd916](https://github.com/navidrome/navidrome/commit/1cf3fd916) by [@​deluan](https://github.com/deluan)) - Increase watcher channel buffers to prevent dropped filesystem events. ([0790f6662](https://github.com/navidrome/navidrome/commit/0790f6662) by [@​deluan](https://github.com/deluan)) #### Playlists / Smart Playlists - Support `#EXTALBUMARTURL` directive and sidecar images for playlist cover art. ([#​5131](https://github.com/navidrome/navidrome/pull/5131) by [@​deluan](https://github.com/deluan)) - Add percentage-based limits to smart playlists. ([#​5144](https://github.com/navidrome/navidrome/pull/5144) by [@​deluan](https://github.com/deluan)) - Make album and artist fields available to smart playlist queries. ([#​4927](https://github.com/navidrome/navidrome/pull/4927) by [@​ulfurinn](https://github.com/ulfurinn)) - Add `averageRating` as a smart playlist field. ([#​5092](https://github.com/navidrome/navidrome/pull/5092) by [@​Lokke](https://github.com/Lokke)) #### Server - Add ExtAuth logout URL configuration. ([#​5074](https://github.com/navidrome/navidrome/pull/5074) by [@​deluan](https://github.com/deluan)) - Accept `ND_`-prefixed environment variable names in config files. ([#​5258](https://github.com/navidrome/navidrome/pull/5258) by [@​deluan](https://github.com/deluan)) - Add syslog priority prefixes for systemd-journald. ([#​5192](https://github.com/navidrome/navidrome/pull/5192) by [@​trek-e](https://github.com/trek-e)) - Require additional variable to enable systemd logging. ([#​5222](https://github.com/navidrome/navidrome/pull/5222) by [@​kgarner7](https://github.com/kgarner7)) - Add crontab(5) random `~` syntax support for schedule expressions. ([#​5233](https://github.com/navidrome/navidrome/pull/5233) by [@​deluan](https://github.com/deluan)) - Preserve `created_at` when moving songs between libraries. ([#​5055](https://github.com/navidrome/navidrome/pull/5055) by [@​deluan](https://github.com/deluan)) - Increase SSE writeTimeout to exceed keepAlive period. ([#​5054](https://github.com/navidrome/navidrome/pull/5054) by [@​rcatolino](https://github.com/rcatolino)) - Use `http.TimeFormat` for Last-Modified header. ([#​5219](https://github.com/navidrome/navidrome/pull/5219) by [@​SimonTeixidor](https://github.com/SimonTeixidor)) - Return correct scanType in startScan response. ([#​5159](https://github.com/navidrome/navidrome/pull/5159) by [@​deluan](https://github.com/deluan)) - Return 404 instead of 500 for non-existent playlists. ([b64d8ad33](https://github.com/navidrome/navidrome/commit/b64d8ad33) by [@​deluan](https://github.com/deluan)) - Normalize timestamps and fix recently added album sorting. ([#​5176](https://github.com/navidrome/navidrome/pull/5176) by [@​deluan](https://github.com/deluan)) #### Plugins - Add HTTP host service for plugin HTTP requests. ([#​5095](https://github.com/navidrome/navidrome/pull/5095) by [@​deluan](https://github.com/deluan)) - Add TaskQueue host service for persistent background task queues. ([#​5116](https://github.com/navidrome/navidrome/pull/5116) by [@​deluan](https://github.com/deluan)) - Add lyrics provider plugin capability. ([#​5126](https://github.com/navidrome/navidrome/pull/5126) by [@​deluan](https://github.com/deluan)) - Add TTL support, batch operations, and hardening to kvstore. ([#​5127](https://github.com/navidrome/navidrome/pull/5127) by [@​deluan](https://github.com/deluan)) - Allow mounting library directories as read-write. ([#​5122](https://github.com/navidrome/navidrome/pull/5122) by [@​deluan](https://github.com/deluan)) - Change websockets Data field type to `[]byte` for binary support. ([6fd044fb0](https://github.com/navidrome/navidrome/commit/6fd044fb0) by [@​deluan](https://github.com/deluan)) - Clear plugin errors on startup to allow retrying. ([27a83547f](https://github.com/navidrome/navidrome/commit/27a83547f) by [@​deluan](https://github.com/deluan)) #### Translations - Add Slovak language translation. ([#​5231](https://github.com/navidrome/navidrome/pull/5231) by [@​JRoshthen1](https://github.com/JRoshthen1)) - Update Chinese Simplified translation. ([#​5025](https://github.com/navidrome/navidrome/pull/5025) by [@​fxj368](https://github.com/fxj368)) - Update Basque translation. ([#​5038](https://github.com/navidrome/navidrome/pull/5038) by [@​xabirequejo](https://github.com/xabirequejo)) - Update Hungarian translation. ([#​5041](https://github.com/navidrome/navidrome/pull/5041), [#​5263](https://github.com/navidrome/navidrome/pull/5263) by [@​ChekeredList71](https://github.com/ChekeredList71)) - Update Bulgarian, Catalan, Danish, German, Greek, Spanish, Finnish, French, Galician, Portuguese (BR), Russian, Slovenian, Swedish, Thai, Ukrainian, Chinese (Traditional) translations. ([#​5044](https://github.com/navidrome/navidrome/pull/5044), [#​5039](https://github.com/navidrome/navidrome/pull/5039), [#​5218](https://github.com/navidrome/navidrome/pull/5218), [#​5260](https://github.com/navidrome/navidrome/pull/5260)) #### New Contributors - [@​cafecitopuro](https://github.com/cafecitopuro) made their first contribution in [#​4544](https://github.com/navidrome/navidrome/pull/4544) - [@​Saulimedes](https://github.com/Saulimedes) made their first contribution in [#​5023](https://github.com/navidrome/navidrome/pull/5023) - [@​fxj368](https://github.com/fxj368) made their first contribution in [#​5025](https://github.com/navidrome/navidrome/pull/5025) - [@​rcatolino](https://github.com/rcatolino) made their first contribution in [#​5054](https://github.com/navidrome/navidrome/pull/5054) - [@​sfredo](https://github.com/sfredo) made their first contribution in [#​5070](https://github.com/navidrome/navidrome/pull/5070) - [@​adrbn](https://github.com/adrbn) made their first contribution in [#​5110](https://github.com/navidrome/navidrome/pull/5110) - [@​trek-e](https://github.com/trek-e) made their first contribution in [#​5190](https://github.com/navidrome/navidrome/pull/5190) - [@​SimonTeixidor](https://github.com/SimonTeixidor) made their first contribution in [#​5219](https://github.com/navidrome/navidrome/pull/5219) - [@​JRoshthen1](https://github.com/JRoshthen1) made their first contribution in [#​5231](https://github.com/navidrome/navidrome/pull/5231) **Full Changelog**: <https://github.com/navidrome/navidrome/compare/v0.60.3...v0.61.0> #### Helping out This release is only possible thanks to the support of some **awesome people**! Want to be one of them? You can [sponsor](https://github.com/sponsors/deluan), pay me a [Ko-fi](https://ko-fi.com/deluan), or [contribute with code](https://www.navidrome.org/docs/developers/). #### Where to go next? - Read installation instructions on our [website](https://www.navidrome.org/docs/installation/). - Host Navidrome on [PikaPods](https://www.pikapods.com/pods/navidrome) for a simple cloud solution. - Reach out on [Discord](https://discord.gg/xh7j7yF), [Reddit](https://www.reddit.com/r/navidrome/) and [Twitter](https://twitter.com/navidrome)! </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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMCIsInVwZGF0ZWRJblZlciI6IjQzLjEwMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkb2NrZXIiXX0=--> Reviewed-on: #5344 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
alexlebens.net
GitOps definied infrastrucutre for the alexlebens.net domain.
Stack-cl01tl
https://argocd.alexlebens.net/api/badge?name=stack-cl01tl&revision=true&showAppName=true
App-of-Apps Application for cl01tl
License
This project is licensed under the terms of the Apache 2.0 License license.
Description