Aquí hi ha 24 versions de Navidrome, des de 2 de juny del 2023 fins a l’actual, 0.64.2. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.
24 versions en 3 anys · unes 7,2 per any
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 0.64.2Darrera versió | 24 de setembre del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióThis is a bug fix release. The main fix is for users on slow storage (USB disks, remote drives), who have seen floods of database is locked errors, UI freezes and failed full scans since 0.64.0. Scans now cause much less lock contention: the artwork worker pauses while a scan runs, and ANALYZE no longer holds the write lock for a long time. It also fixes scans that always failed on 32-bit builds (armv5/6/7, 386) when a file had a broken track or disc number.
Security
- Sanitize user-controlled names (playlists, albums, artists, track titles) in the Content-Disposition header of downloads, so a crafted name cannot change the name of the downloaded file. (#5895 by @zapisanchez)
- Stop writing the admin password to the log when the initial admin user cannot be created. (#5897 by @zapisanchez)
Scanner
- Fix database is locked errors, UI freezes and failed scans on slow storage. The artwork worker now pauses during scans, ANALYZE runs one index at a time, @eaDir thumbnail folders are ignored, and folder saves are retried when the database is busy. (#6201 by @deluan)
- Fix scans failing with value out of range on 32-bit builds when a file has an invalid track number, disc number or BPM. A migration resets existing invalid values. (#6202 by @deluan)
Server
- Fix a failed initial admin creation that marked the initial setup as done, leaving the server without an admin user. Also fix invalid JSON in some delete responses and the missing Content-Type on shared playlist (M3U) downloads. (#5897 by @zapisanchez)
Jellyfin API
- Honor the IsPublic flag when creating a playlist. Before, all playlists created through the Jellyfin API were private. (#6204 by @deluan)
New Contributors
- @zapisanchez made their first contribution in #5895
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods or Zenith for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.64.1 | 21 de setembre del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióThis is a security release. It fixes five vulnerabilities reported through our GitHub Security Advisory program, covering Subsonic authentication, artwork fetching, playlist cover images, player ownership, and per-user library filtering. Upgrade as soon as you can. Thanks to the researchers credited below for reporting them privately.
The release also improves Jellyfin client support, with both Manet and JellyBox tested and validated against live servers. Manet used to abort its entire library sync on a single missing field and show an empty library. It now syncs end to end. JellyBox got stuck on the login screen. It now signs in and plays, confirmed on Android. Navidrome also reports itself as Jellyfin 12.1.0, accepts Quick Connect sign-in, and can announce itself on your local network so clients find it without you typing an address.
Smart playlists can reference another playlist by path, and the web UI now formats dates using the language you picked in Personal settings.
Security
- Unauthenticated password brute-force through the Subsonic API. Failed Subsonic logins were never throttled, so an attacker could guess passwords at full speed. Navidrome now rate limits failed authentication attempts. High, CVSS 7.4. (GHSA-p994-r776-mw52, #6185) Reported by @osageling.
- Authenticated SSRF through M3U external album artwork. A playlist could point #EXTALBUMARTURL at a private or loopback address, turning the server into a probe for internal network services. Navidrome now blocks private and loopback addresses in remote image fetches. Medium, CVSS 6.5. (GHSA-8hjf-6h34-82hr, #6181) Reported by @kaardeco.
- Cross-library file read through the M3U playlist cover. #EXTALBUMARTURL also accepted a local path, so a playlist could serve any file the server can read as its cover image. Only real image files are accepted as local artwork sources now. Medium, CVSS 6.5. (GHSA-vwq6-xrw5-phpg, #6180) Reported by @qrn12580.
- Player takeover by any authenticated user. Creating a player could overwrite an existing record and reassign its owner, and device registration reused another user's player without an ownership check. Both paths now check the owner. Medium, CVSS 6.4. (GHSA-37h4-53gj-cw8m, #6184) Reported by @RealFakeAccount and @qrn12580.
- Library filter skipped on bookmarks, playlist tracks and now-playing. These three endpoints ignored the libraries a user is allowed to see, leaking track metadata from other libraries. The filter now applies to all of them. Medium, CVSS 4.3. (GHSA-pcjv-h48m-833g, #6179) Reported by @sondt99.
Configuration Changes
──────┬──────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────
Status│Option │Description │Default
──────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────
New │Jellyfin.AutoDiscovery│Answers Jellyfin's UDP discovery broadcasts, so clients find the server on the local network. (#6169) │false
──────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────
New │Jellyfin.QuickConnect │Allows Quick Connect sign-in, where a client shows a code you approve from a session that is already signed in. (#6174) │true
──────┴──────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────
For a complete list of all configuration options, see the Configuration Options documentation.
Jellyfin API
- Add Quick Connect sign-in. The client shows a short code, and you approve it from a session that is already signed in, so the client never sees your password. (#6174 by @deluan)
- Add opt-in LAN auto-discovery, so Jellyfin clients find the server without you typing its address. Docker users need host networking for the UDP br |
| 0.64.0 | 12 de setembre del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióThis release brings an experimental Jellyfin Music API, so Jellyfin-compatible music clients like Finamp and Jellify can now connect to Navidrome. Artwork got a new background pipeline with blurred low-quality placeholders and a diagnostic CLI. Under the hood, all IDs move to a uniform canonical 128-bit format, genre and artist filtering is now index-backed, and playlist import on large libraries is dramatically faster. There is also natural sort order, playlist favourites, Refresh Metadata actions, new Catppuccin themes, and many fixes across scanning, transcoding and scrobbling.
⚠️ Breaking Changes / Migration Notes
- All internal IDs are re-encoded to a single canonical 128-bit base62 format. The migration touches every table, so back up your database before upgrading. Clients that cache item IDs (for example, offline downloads) may need to re-sync. (#5824)
- Plugin authors: Extism's built-in HTTP is disabled. Calls through pdk.NewHTTPRequest (Go), http::request (Rust) or the equivalent in other PDKs now fail with HTTP request ... is not allowed. Plugins must use the host HTTP service instead: host.HTTPSend (Go) or nd_pdk::host::http::send (Rust). Also, plugin HTTP and WebSocket connections to private or loopback addresses are now blocked for named hosts; to reach a LAN service, list its IP or CIDR in the manifest's requiredHosts, or use a bare "*". (1a8463f7d, 276d767ce)
- Shares are always owned by the user who creates them. Admins can no longer create shares on behalf of another user via userId. (1a8463f7d)
- Configuration durations are now validated. Negative values are rejected at startup. (#6002)
- Navidrome now warns about unrecognized options in the config file, so typos no longer fail silently. (#5870)
Security
This release fixes several reported vulnerabilities. We thank the security researchers who responsibly disclosed them.
- Fix SQL injection via the artist role sort and filter parameters in the Native API by validating the role against the known list. (4168377b6, GHSA-hm54-32q6-3rcr, reported and fixed by @Sudo-Ivan)
- Fix share-ownership spoofing (IDOR) that let a client-supplied userId on share creation expose other users' private libraries, and fix a plugin HTTP client SSRF guard bypass via DNS names and redirects by disabling Extism's built-in HTTP and checking the resolved IP at dial time. (1a8463f7d, GHSA-82gh-4ggp-gfg5, reported by @gigioneggiando)
- Fix the same SSRF bypass in the plugin WebSocket host service by adding the private-address guard it was missing. (276d767ce, GHSA-pr2j-mfc8-qjcc, reported by @qrn12580)
- Fix login rate limit bypass via spoofed X-Forwarded-For, X-Real-IP and True-Client-IP headers by keying the limit on the trust-aware client IP. (#6124, GHSA-f295-6wp9-qqfg, reported by @gehan-psbc and @skarn958)
- Fix memory exhaustion via a negative size parameter on getCoverArt and share images, which bypassed the artwork size clamp, by rejecting negative and oversized dimensions before decoding. (#5847, GHSA-f22h-6qxh-rqq2, reported by @arpitjain099)
- Enforce track membership on public share streams so a share can only stream the tracks it contains. (#5769 by @deluan)
- Validate every resource ID in a share, load share metadata as the owner, cap login request bodies, create the log file with mode 0600, and stop logging the Last.fm auth token. (#6098 by @deluan)
- Confine plugin filesystem mounts to their root and reject plugin IDs that are unusable as directory names. (#5881, #5886 by @deluan)
- Redact sensitive auth headers from request logs. (82b9a44a1 by @deluan)
> Note: Several of the advisories linked above are still in draft on GitHub at the time of writing. Their links will become publicly accessible once the advisories are published. The fixes themselves are already included in this release.
Configuration Changes
──────┬─────────────────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────────
Status│ |
| 0.63.2 | 11 de juliol del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióChangelog
Bug fixes
- 205c85d: fix(plugins): surface host service failures when loading plugins (#5756) (@deluan)
- 7fa1376: fix(scanner): resolve file symlinks with the production local storage FS (#5755) (@deluan)
- e91687e: fix(smartplaylist): reject NSP mixing top-level 'any' and 'all' (#5759) (@deluan)
Build process updates
- be10f89: ci: don't skip release jobs after the DB migration check on tag pushes (#5760) (@deluan)
- 4381366: ci: validate DB migration order on pull requests (#5750) (@deluan)
Other work
- 116a440: test(scanner): fix flaky Windows search_normalized rescan test (#5758) (@deluan)
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods or Danian for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.63.1 | 9 de juliol del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióChangelog
Bug fixes
- 052f10f: fix(build): prevent 32-bit startup crash (segfault/SIGILL) in downloads binaries (#5739) (@deluan)
- f48943c: fix(plugins): discard buffered scrobbles when a plugin is removed (#5737) (@deluan)
- 4652b46: fix(plugins): populate username for buffered plugin scrobbles (#5736) (@deluan)
- 42d4363: fix(service): rewrite systemd service template for kardianos/service v1.3.0 (#5743) (@deluan)
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods or Danian for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.63.0 | 8 de juliol del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióNavidrome 0.63 brings a long-awaited upgrade to lyrics: full support for synced sidecar lyrics in multiple formats (TTML, ELRC, SRT, YAML and LRC), including word-by-word karaoke timing and multi-voice (agent) layers, exposed to clients through the new OpenSubsonic v2 lyrics extensions. A huge shoutout to @ranokay, who not only contributed the code for these lyrics enhancements, but also helped shape the OpenSubsonic extension specification behind them. Search also gets noticeably smarter: exact matches now rank above prefix matches (searching for "MØ" brings MØ to the top instead of burying it), and artists with short or non-ASCII names that were previously unfindable now show up correctly.
The other big theme of this release is performance for large libraries and offline-first clients. Full-library synchronization via search3 (the way clients like Symfonium mirror the whole library) is now flat at every offset instead of degrading with depth, roughly 30-50x faster at deep offsets and about 20x faster for a complete sync on a ~1M-track library, and a related pagination-integrity fix eliminates the duplicate and short pages that could corrupt those syncs. Alongside it, getRandomSongs is about 13x faster on the same library size, and a batch of database improvements (annotation-index-friendly smart playlist filters, leaner list-count queries, and new composite indexes for album/artist song sorts) makes everyday operations anywhere from ~9x to ~160x faster. Finally, a heads-up on a behavior change: sharing is now enabled by default, and can be turned off with EnableSharing=false.
Security
- Enforce per-library access on playlist import and sharing paths. In multi-library setups, three read paths did not consistently apply per-library restrictions: M3U import path resolution, shared-playlist track loading, and public share-scoped streams. A user with access to only some libraries could resolve or be served tracks from libraries they weren't assigned to. All three now respect the user's (or share owner's) library access. (#5640 by @deluan)
- Resolve symlinks to their real target when classifying files during scan, preventing symlinked entries from being misclassified. (ecba19a08 by @deluan)
Configuration Changes
───────┬─────────────────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────
Status │Option │Description │Default
───────┼─────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────
New │Scanner.ArtistSplitExceptions│List of artist names that must never be split by tag separators (e.g. "Tyler, The Creator"). (#5701) │[] (empty)
───────┼─────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────
New │Scanner.IgnoreDotFolders │Whether to skip folders whose name starts with a dot when scanning. Set to false to index dot-prefixed folders. (#5568) │true
───────┼─────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────
Changed│EnableSharing │Sharing is now enabled by default. Set to false to restore the previous behavior. (#5714) │true
───────┼─────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────
Changed│LyricsPriority │New sidecar lyrics formats added to the default priority list. (#5076) │.ttml,.yaml,.yml,.elrc,.lrc,.srt,.txt,embedded
───────┴─────────────────────────────┴──────────────────────────────────────────────────────────────── |
| 0.62.0 | 8 de juny del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióThis release introduces support for the OpenSubsonic sonicSimilarity extension, enabling audio-based similarity through the plugin system: when a plugin provides the capability, the new getSonicSimilarTracks and findSonicPath endpoints unlock smarter, sound-based recommendations and playlists. One plugin that implements it is AudioMuse-AI. It also brings a major overhaul to playback reporting and the Now Playing experience — the UI now uses the new OpenSubsonic playbackReport extension, replacing the old scrobble flow with a redesigned panel and configurable reporting interval. On the security front, it hardens the server with stronger ownership and authorization checks across shares, players, and transcoding endpoints, caps concurrent transcodes to prevent ffmpeg-based denial of service, and adds an option to refuse to run as root. Smart playlists gain ReplayGain fields and new isMissing/isPresent operators, and there are five new UI themes to choose from.
Security
This release fixes several reported vulnerabilities. We thank the security researchers who responsibly disclosed them.
- Fix cross-account disclosure of other users' shares (incl. share tokens) by enforcing per-user ownership on share reads. (1e7996f5d, GHSA-3g4p-jhv2-xrxf, reported by @Wernerina)
- Fix cross-tenant player takeover and share-update IDOR by enforcing ownership atomically on player and share updates. (#5563, GHSA-x65f-m8x9-pjxm reported by @tonghuaroot; GHSA-58gr-c777-g23p reported by @lighthousekeeper1212; GHSA-wx2c-q8g7-4q5p reported by @CE2Sec)
- Fix unauthenticated Last.fm scrobble session hijack (IDOR) by requiring a signed state token on the link callback. (#5521, GHSA-8jrh-w926-8rvw, reported by @geo-chen)
- Fix JWT expiration bypass on public share stream endpoints by validating token expiration and share existence. (#5426, GHSA-3rfj-qx9q-jghx, reported by @wooseokdotkim)
- Fix disclosure of admin-only transcoding configuration to non-admin users by restricting transcoding config reads to admins. (#5564, GHSA-4p3r-6362-833w, reported by @DavidCarliez)
- Fix missing admin authorization on internet radio station management endpoints by requiring admin access for Subsonic management endpoints. (#5510, GHSA-jw24-qqrj-633c, reported by @osageling)
- Cap concurrent transcodes to prevent an ffmpeg-based denial of service, with new per-server and per-user limits. (#5522 by @deluan)
- Add EnforceNonRootUser option to exit early if Navidrome is started as root. (#5373 by @kopf)
- Split HTML sanitization from plaintext handling. (7e083e079 by @deluan)
> Note: Several of the advisories linked above are still in draft/triage on GitHub at the time of writing. Their links will become publicly accessible once the advisories are published. The fixes themselves are already included in this release.
Configuration Changes
──────────┬─────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────┬───────
Status │Option │Description │Default
──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼───────
New │EnforceNonRootUser │Exit early on startup if Navidrome is running as root (ignored on Windows). (#5373) │false
──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼───────
New │Transcoding.MaxConcurrent │Maximum number of concurrent transcodes server-wide (0 = unlimited). (#5522) │0
──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼───────
New │Transcoding.MaxConcurrentPerUser │Maximum number of concurrent transcodes per user (0 = unlimited). (#5522) │0
──────────┼─────────────────────────────────────────────────────────────┼─────────────────────────── |
| 0.61.2 | 12 d’abril del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióAnother round of bugfixes. Transcoding now properly clamps target channels to codec limits, WAV files play directly in browsers without unnecessary transcoding, and the scanner picks up ORIGYEAR tags for VorbisComment and MP4 formats. Cover art handling got a few fixes too, including configurable max upload size. Plugin developers now get the file path in TrackInfo for Scrobbler and Lyrics plugins.
Configuration Changes
──────┬──────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────
Status│Option │Description │Default
──────┼──────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────
New │MaxImageUploadSize│Maximum allowed size for uploaded cover art images. Accepts human-readable values like '10MB', '1GB'. (#5335) │10MB
──────┴──────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────
For a complete list of all configuration options, see the Configuration Options documentation.
UI
- Prevent theme CSS filters from affecting disc cover art. (c91721363 by @deluan)
- Refine image filters for playing and paused states in SquiddiesGlass theme. (4570dec67 by @deluan)
- Update Chinese (Simplified) translation. (#5323 by @fxj368)
- Update Russian translations. (#5329 by @amakeenk)
Scanner
- Map ORIGYEAR tag for VorbisComment and MP4 formats, bringing them in line with ID3. (#5303 by @obskyr)
- Fix issue with empty ID3v2 frames in go-taglib. (1de4e43d2 by @deluan)
Subsonic API
- Always emit required created field on AlbumID3 responses. (#5340 by @deluan)
Artwork
- Make max image upload size configurable. (#5335 by @m8tec)
- Allow shared disc art from unnumbered filenames in single-folder albums. (#5344 by @deluan)
Transcoding
- Clamp target channels to codec limit, fixing issues with codecs that don't support high channel counts. (#5345 by @deluan)
- Play WAV files directly in browsers instead of transcoding. (#5309 by @deluan)
- Include ffprobe in MSI installer and fall back gracefully when absent. (#5326 by @deluan)
Plugins
- Add file path to Scrobbler and Lyrics plugin TrackInfo. (#5339 by @J0R6IT0)
- Fix race condition between KVStore cleanup goroutine and Close. (478845bc5 by @deluan)
Server
- Honor path component of ShareURL config. (d7baf6ee7 by @deluan)
- Surface real SQLite error when backup step fails. (1f3a7efa7 by @deluan)
- Improve error handling in configuration validation. (1988a4162 by @deluan)
- Reduce hot-path heap escapes from value-param pointer aliasing. (#5342 by @deluan)
Database
- Resolve schema inconsistencies in library_artist and scrobble_buffer tables. (#5047 by @bvdwalt)
New Contributors
- @m8tec made their first contribution in #5335
- @J0R6IT0 made their first contribution in #5339
- @obskyr made their first contribution in #5303
- @bvdwalt made their first contribution in #5047
- @amakeenk made their first contribution in #5329
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.61.1 | 5 d’abril del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióThis patch release addresses a WebP performance regression on low-power hardware introduced in v0.61.0, adds a new EnableWebPEncoding config option and a configurable UI cover art size, and includes several Subsonic API and translation fixes.
Configuration Changes
───────┬─────────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────
Status │Option │Description │Default
───────┼─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────
New │EnableWebPEncoding │Opt-in to WebP encoding for resized artwork. When false (default), Navidrome uses JPEG/PNG (preserving the original source format), avoiding the WebP WASM encoder overhead that caused slow image processing on low-power hardware in v0.61.0. Set to true to re-enable WebP output. Replaces the internal DevJpegCoverArt flag. (#5286) │false
───────┼─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────
New │UICoverArtSize │Size (in pixels, 200–1200) of cover art requested by the web UI. It was increased from 300px to 600px in 0.61.0; now configurable and defaulting to 300px to reduce image encoding load on low-power hardware. Users on capable hardware can raise it for sharper thumbnails. (#5286) │300
───────┼─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────
Changed│DevArtworkMaxRequests│Default lowered from max(4, NumCPU) to max(2, NumCPU/2) to reduce load on low-power hardware. (#5286). (Note: this is an internal configuration and can be removed in future releases) │max(2, NumCPU/2)
───────┼─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────
Removed│DevJpegCoverArt │Replaced by the user-facing EnableWebPEncoding option. (#5286) │—
───────┴─────────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────
For a complete list of all configuration options, see the Configuration Options documentation.
Server
- Add missing viper defaults for MPVPath, ArtistImageFolder, and Plugins.LogLevel so they can be overridden via environment variables and config files. (220019a9f by @deluan)
- Update go-sqlite3 to v1.14.38 and go-toml to v2.3.0. (6109bf519 by @deluan)
Artwork
- Address WebP performance regression on low-power hardware by preservi |
| 0.61.0 | 31 de març del 2026 | — | 64 bits MSI32 bits MSI Notes de la versió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, 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)
- Add ownership checks to share Delete and Update operations, preventing unauthorized access to other users' shares. (#5189 by @deluan)
- Clear server-managed fields in savePlaylist to prevent field injection via REST API. (f102036dc by @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. (#5197 by @deluan)
Configuration Changes
───────┬─────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────
Status │Option │Description │Default
───────┼─────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────
New │EnableArtworkUpload │Enable uploading custom artwork for playlists and artists. (#5110, #5198) │true
───────┼─────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────
New │EnableM3UExternalAlbumArt │Enable fetching album art URLs from #EXTALBUMARTURL directives in M3U playlists. (#5131) │false
───────┼─────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────
New │DiscArtPriority │Priority list for disc-level cover art sources. (#5182) │disc*.*, cd*.*, cover.*, folder.*, front.*, discsubtitle, embedded
───────┼─────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────
New │ArtistImageFolder │Folder name to search for artist images within the library. (#5198) │—
───────┼─────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────
New │Search.Backend │Search backend to use (fts for FTS5 full-text search). (#5079) │fts
───────┼─────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────
New │ExtAuth.LogoutURL │URL to redirect to when logging out with external authentication. (#5074) │""
───────┼─────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────
New │Subsonic.AppendAlbumVersion │Append album version/edition to album names in Subsonic |
| 0.60.3 | 10 de febrer del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióChangelog
New Features
- 34c6f12: feat(server): add explicit status support in smart playlists (#5031) (@kgarner7)
Bug fixes
- 408aa78: fix(scanner): log warning when metadata extraction fails (@deluan)
- ed79a88: fix(scanner): pass filename hint to gotaglib's OpenStream for format detection (#5012) (@deluan)
- fd09ca1: fix(scanner): resolve data race on conf.Server access in getScanner (@deluan)
- 0a47228: fix(subsonic): validate JSONP callback parameter (@deluan)
- eb9ebc3: fix(ui): add missing keys in Danish translation (#5011) (@denisarissa)
- 62f9c3a: fix: linux service should restart when upgrading (#5001) (@mintsoft)
- e05a7e2: fix: prevent data race on conf.Server during cleanup in e2e tests (@deluan)
- bee0305: fix: split reflex -R flags to preserve directory exclusion optimization (@deluan)
Other work
- 302d99a: chore(deps): update dependencies in go.mod and go.sum (@deluan)
- c80ef8a: chore: ignore _test.go files in reflex conf (@deluan)
- 8319905: test(subsonic): add comprehensive e2e test suite for Subsonic API (#5003) (@deluan)
Full Changelog: v0.60.2...v0.60.3
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.60.2 | 7 de febrer del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióThis release expands ListenBrainz integration with artist URLs and top/similar songs, adds OpenSubsonic readonly and validUntil properties for playlists, and includes several bug fixes for the UI, scanner, and plugin system.
Added
- Backend Features:
- Add artist URL, top songs, and similar songs support to the ListenBrainz agent. (#4934 by @kgarner7)
- API Features:
- Add OpenSubsonic readonly and validUntil properties to playlists. (#4993 by @kgarner7)
- Plugin Features:
- Add CallRaw method to SubsonicAPI host function with support for binary responses. (#4982 by @deluan)
Fixed
- UI:
- Fix Last.fm URL handling and Biographies rendering on artist page. (#4980 by @kgarner7)
- Fix Nautiline theme font path. (#4983 by @borisrorsvort)
- Scanner:
- Preserve first line in parentheses in lyrics. (#4985 by @deluan)
- Server:
- Clean up Last.fm content by removing "Read more" links from descriptions and bios. (e11206f0e by @deluan)
- Handle WASM runtime panics in gotaglib openFile function. (4e720ee93 by @deluan) |
| 0.60.0 | 3 de febrer del 2026 | — | 64 bits MSI32 bits MSI Notes de la versióPlugins
This release introduces a major rewrite of the experimental Plugin System, now with multi-language PDK support,
enabling developers to extend
Navidrome's functionality using WebAssembly-based plugins written in Go, Rust, Python or JavaScript. Plugins run in a
secure sandbox and can provide additional metadata sources, custom integrations, and server-side enhancements. Users can
now easily configure plugins directly from the UI through a new JSONForms-based configuration interface.
A couple of working plugins are already available:
- AudioMuse-AI integration
- ListenBrainz Daily Playlist Importer
- Discord Rich Presence
For more plugins, keep an eye on the tag navidrome-plugins in GitHub.
More details and instructions on how to use and manage plugins can be found in
our documentation.
New documentation will soon be added with details on how to create new plugins.
Metadata Extraction
Additionally, this version includes a pure-Go metadata extractor built on top of the new go-taglib library. This
is a significant step toward removing the C++ TagLib dependency, which will simplify cross-platform builds and packaging
in future releases. The new extractor is activated by default, but in case of any issues you can revert to the previous
implementation by setting Scanner.Extractor="legacy-taglib" configuration option.
We've also added Instant Mix functionality (song-based Similar Songs) and improved track
matching algorithms, along with support for multiple languages when fetching metadata from Last.fm and Deezer.
Instant Mix
The Instant Mix feature generates a playlist of similar songs based on a selected track. By default, it retrieves
similar songs from Last.fm (if configured with an API key) or falls back to Deezer. It can also be configured to use
external plugins, like AudioMuse-AI for sonic analysis-based
similarity recommendations.
New and Changed Configuration Options
Plugin System Options
──────────────────┬───────┬───────────────────────────────────────────────────────────
Option │Default│Description
──────────────────┼───────┼───────────────────────────────────────────────────────────
Plugins.Enabled │true │Enable/disable the plugin system
──────────────────┼───────┼───────────────────────────────────────────────────────────
Plugins.Folder │"" │Path to the plugins directory. Default: $DataFolder/Plugins
──────────────────┼───────┼───────────────────────────────────────────────────────────
Plugins.CacheSize │"200MB"│Maximum cache size for storing compiled plugin WASM modules
──────────────────┼───────┼───────────────────────────────────────────────────────────
Plugins.AutoReload│false │Automatically detect new/changed/removed plugins
──────────────────┼───────┼───────────────────────────────────────────────────────────
Plugins.LogLevel │"" │Override log level for plugin-related messages
──────────────────┴───────┴───────────────────────────────────────────────────────────
Subsonic API Options
────────────────────────────┬───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Option │Default│Description
────────────────────────────┼───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Subsonic.MinimalClients │"" │Comma-separated list of clients that receive reduced API responses (useful for resource-constrained devices like smartwatches)
────────────────────────────┼───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Subsonic.EnableAverageRating│true │Include average rating in API responses
────────────────────────────┴───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Metadata & Matching Options
──────────────────────────┬───────┬────────────────────────────────────────────────────────────────── |
| 0.59.0 | 6 de desembre del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióThis release brings significant improvements and new features:
- Scanner Improvements: Selective folder scanning and enhancements to the file system watcher for better performance and reliability.
- Scrobble History: Native scrobble/listen history tracking, allowing Navidrome to keep a record of your listening habits. This will be used in future visualizations and features (Navidrome Wrapped maybe?).
- User Administration: New CLI commands for user management, making it easier to handle user accounts from the terminal.
- New Themes: Two new themes have been added: SquiddiesGlass and AMusic (Apple Music inspired).
- General: Numerous bug fixes, translation updates, and configuration options for advanced use cases.
Added
- UI Features:
- Add AMusic (Apple Music inspired) theme. (#4723 by @metalheim)
- Add SquiddiesGlass Theme. (#4632 by @rendergraf)
- Add loading state to artist action buttons for improved user experience. (f6b2ab572 by @deluan)
- Add SizeField to display total size in LibraryList. (73ec89e1a by @deluan)
- Update totalSize formatting to display two decimal places. (c3e8c6711 by @deluan)
- Backend Features:
- Track scrobble/listens history. Note that for music added before this version, the count of scrobbles per song will not necessarily equal the song playcount. (#4770 by @deluan)
- Add user administration to CLI. (#4754 by @kgarner7)
- Make Unicode handling in external API calls configurable, with DevPreserveUnicodeInExternalCalls (default false). (#4277 by @deluan)
- Rename "reverse proxy authentication" to "external authentication". (#4418 by @crazygolem)
- Add configurable transcoding cancellation, with EnableTranscodingCancellation (default false). (#4411 by @deluan)
- Add Rated At field. (#4660 by @zacaj)
- Add DevOptimizeDB flag to control whether apply SQLite optimization (default true). (ca83ebbb5 by @deluan)
- Scanner Features:
- Implement selective folder scanning and file system watcher improvements. (#4674 by @deluan)
- Improve error messages for cleanup operations in annotations, bookmarks, and tags. (36fa86932 by @deluan)
- Plugins:
- Add artist bio, top tracks, related artists and language support (Deezer). (#4720 by @deluan)
Changed
- UI:
- Update Bulgarian, Esperanto, Finnish, Galician, Dutch, Norwegian, Turkish translations. (#4760 and #4773 by @deluan)
- Update Danish, German, Greek, Spanish, French, Japanese, Polish, Russian, Swedish, Thai, Ukrainian translations. (#4687 by @deluan)
- Update Basque translation. (#4670 by @xabirequejo)
- New Hungarian strings and updates. (#4703 by @ChekeredList71)
- Server:
- Make NowPlaying dispatch asynchronous with worker pool. (#4757 by @deluan)
- Enables quoted ; as values in ini files. (c21aee736 by @deluan)
- Fix Navidrome build issues in VS Code dev container. (#4750 by @floatlesss)
Fixed
- UI:
- Improve playlist bulk action button contrast on dark themes. (86f929499 by @deluan)
- Increase contrast of button text in the Dark theme. (f939ad84f by @deluan)
- Sync body background color with theme. (9f0d3f3cf by @deluan)
- Allow scrolling in shareplayer queue by adding delay. (#4748 by @floatlesss)
- Fix translation display for library list terms. (#4712 by @dongeunm)
- Fix library selection state for single-library users. (#4686 by @deluan)
- Adjust margins for bulk actions buttons in Spotify-ish and Ligera. (9b3bdc8a8 by @deluan)
- Scanner:
- Handle cross-library relative paths in playlists. (#4659 by @deluan)
- Defer artwork PreCache calls until after transaction commits. (67c4e2495 by @deluan)
- Specify exact table to use for missing mediafile filter. (#4689 by @kgarner7)
- Refactor legacyReleaseDate logic and add tests for date mapping. (d57a8e6d8 by @deluan)
- Server:
- Lastfm.ScrobbleFirstArtistOnly also only scrobbles the first artist of the album. (#4762 by @maya-doshi)
- Log warning when no config file is found. (142a3136d by @deluan)
- Retry insights collection when no admin user available. (#4746 by @deluan)
- Improve error message for encry |
| 0.58.5 | 9 de novembre del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióThis release focuses on stability improvements and bug fixes, with several important fixes for UI themes, translations, database operations, and scanner functionality. Notable improvements include fixes for ARM64 crashes, playlist sorting, and new Bosnian translation.
Added
- UI Features:
- Add Genre column as optional field in playlist table view. (aff9c7120 by @deluan)
- Add new Bosnian translation. (#4399 by @MuxBH28)
- Subsonic API:
- Implement indexBasedQueue extension for better queue management. (#4244 by @kgarner7)
- Populate Folder field with user's accessible library IDs. (94d2696c8 by @deluan)
- Insights:
- Detecting packaging method. (#3841 by @mintsoft)
Changed
- Scanner:
- Optimize update artist's statistics using normalized media_file_artists table. (#4641 by @deluan)
Fixed
- UI:
- Resolve transparent dropdown background in Ligera theme. (#4665 by @deluan)
- Fix Ligera theme's RaPaginationActions contrast. (0bdd3e6f8 by @deluan)
- Fix color of MuiIconButton in Gruvbox Dark theme. (#4585 by @konstantin-morenko)
- Correct track ordering when sorting playlists by album. (#4657 by @deluan)
- Allow scrolling in play queue by adding delay. (#4562 by @pca006132)
- Fix Playlist Italian translation. (#4642 by @nagiqui)
- Update Galician, Dutch, Thai translations from POEditor. (#4416 by @deluan)
- Update Korean translation. (#4443 by @DDinghoya)
- Update Traditional Chinese translation. (#4454 by @york9675)
- Update Chinese simplified translation. (#4403 by @yanggqi)
- Update Deutsch, Galego, Italiano translations. (#4394 by @fuxii)
- Scanner:
- Restore basic tag extraction fallback mechanism for improved metadata parsing. (#4401 by @deluan)
- Server:
- Album statistics not updating after deleting missing files. (#4668 by @deluan)
- Qualify user id filter to avoid ambiguous column. (#4511 by @deluan)
- Enable multi-valued releasetype in smart playlists. (#4621 by @deluan)
- Handle UTF BOM in lyrics and playlist files. (#4637 by @deluan)
- Slice share content label by UTF-8 runes. (#4634 by @beer-psi)
- Update wazero dependency to resolve ARM64 SIGILL crash. (#4655 by @deluan)
- Database:
- Make playqueue position field an integer. (#4481 by @kgarner7)
- Docker:
- Use standalone wget instead of the busybox one. (#4473 by @daniele-athome)
New Contributors
- @konstantin-morenko made their first contribution in #4585
- @nagiqui made their first contribution in #4642
- @beer-psi made their first contribution in #4634
- @fuxii made their first contribution in #4394
- @daniele-athome made their first contribution in #4473
- @pca006132 made their first contribution in #4562
- @MuxBH28 made their first contribution in #4399
Full Changelog: v0.58.0...v0.58.5
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.58.0 | 28 de juliol del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióNavidrome v0.58.0 Release Notes
Navidrome v0.58.0 introduces Multi-library Support, a major architectural enhancement that enables users to organize and manage multiple music collections with proper permission controls and complete UI integration. This long-requested feature allows you to create separate libraries for different music collections (e.g., personal music, family music, audiobooks) while maintaining proper access controls and data isolation.
For full documentation on how to use it, see the new Multi-library page in the documentation website.
⚠️ Important
Full Scan
Although this release does not force a full scan on upgrade, you should do it as soon as possible. This is because the multi-library changes affect the move/rename/retag detection and can potentially make you lose annotations (stars, playcounts, playlist references). During the full scan, it will duplicate all your albums, but that's expected. It will remove the duplicates at the end of the scan.
Database Migration Warning
This release includes database schema changes that are NOT reversible by simply downgrading to a previous version of Navidrome.
Before installing this version:
1. BACKUP YOUR DATABASE - Create a complete backup of your navidrome.db file
2. TEST ON A COPY FIRST - If possible, test this version on a copy of your data before upgrading your main installation
If you need to rollback:
- Stop Navidrome
- Restore your database backup
- Reinstall the previous version
Added
Multi-Library Support
Create and manage multiple music libraries with separate music folders. (#4181 by @deluan)
- Library-aware permission system: Users can be assigned access to specific libraries with proper data isolation.
- Admin interface for library management: Complete CRUD operations for libraries including creation, editing, and deletion.
- Library selector in UI: Users can switch between accessible libraries using the sidebar library selector.
- Per-library statistics: Artist and tag statistics are now calculated per library with proper counting.
- Cross-library playlist support: Playlists can contain songs from multiple libraries, filtered by user access.
UI Features
- Hindi language translation: Complete Hindi language support for the user interface. (#4390 by @nerkoux)
- Activity panel improvements: Reset activity panel error icon to normal state when clicked. (#4379 by @deluan)
- Translation updates: Updated Polish translations. (#4384 by @deluan)
- Translation updates: Updated Danish, German, Greek, Spanish, Finnish, French, Indonesian, Russian, Slovenian, Swedish, Turkish, Ukrainian translations. (#4326 by @deluan)
- Translation updates: Updated Hungarian translations. (#4375 by @ChekeredList71 and #4291 by @ChekeredList71)
- Translation updates: Updated Basque translation. (#4309 by @xabirequejo)
Plugin Features
- Plugin scheduler enhancement: Add TimeNow function to SchedulerService for better plugin capabilities. (#4337 by @deluan)
- Plugin insights: Add plugin and multi-library information to insights endpoint. (#4391 by @deluan)
API Features
- Multi-library API support: All Subsonic endpoints now respect library permissions with proper filtering. (#4181 by @deluan)
- Enhanced search capabilities: Search endpoints are library-aware and filter results by user access. (#4181 by @deluan)
- Music folder endpoints: Return user-accessible libraries through music folder API. (#4181 by @deluan)
Changed
- Agents logic streamlining: Remove unnecessary caching and streamline metadata agents logic. (#4298 by @deluan)
- Dependency updates: Update Go dependencies to latest versions. (#6722af50e by @deluan)
Fixed
UI
- Playlist menu interaction: Prevent disabled "Show in Playlist" menu item from triggering actions. (#4356 by @deluan)
- Year display: Don't show year "0" in the interface. (#3c1e5603d by @deluan)
- ReplayGain support: Fix replaygain for Artist Radio and Top Songs. (#4328 by @deluan)
Scanner
- Apple Music playlists import: Fix playlist import for songs with a |
| 0.57.0 | 1 de juliol del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióNavidrome v0.57.0
A big thank you to all the contributors who made this release possible!
Added
- UI Features:
- Added "Artist Radio" and "Shuffle" options to the artist page. (#4186 by @deluan)
- Added a "Play Artist's Top Songs" button. (#4204 by @deluan)
- Added "Love" and "Rating" functionality to songs within a playlist view. (#4134 by @deluan)
- New "Add to Playlist" dialog, with improved UX. (#4156 by @deluan)
- Added a "Now Playing" panel for administrators to monitor active streams, with configurable EnableNowPlaying option (default true). (#4209, #4219 by @deluan)
- Added a context menu option to "Show in Playlist". (#4139 by @deluan)
- Added RecentlyAddedByModTime support for tracks. (#4046, #4279 by @deluan)
- Added a configuration tab in the About dialog. (#4142 by @deluan)
- Experimental Plugin Support: Added experimental support for plugins, allowing for greater extensibility and customization. See details in the PR description (#3998, #4260 by @deluan)
- Scanner Accuracy: Implemented folder hashing for smarter and more accurate quick scans, significantly improving detection of library changes. (#4220 by @deluan)
- MBID Search: Added functionality to search for albums, artists, and songs by their MusicBrainz ID (MBID). (#4286 by @deluan)
- Smart Playlists:
- Added support for sorting smart playlists by multiple fields. (#4214 by @deluan)
- Added support for MBIDs in smart playlists. (4096760bd by @deluan)
- Deezer Agent: Added a new agent to fetch artist images from the Deezer API. (#4180 by @bplaat)
- API Features:
- Added new endpoints to the native API for updating, clearing, and managing the play queue by index. (#4210, #4215 by @deluan)
- Added main credit stat to reflect only album artist/artist credit. (#4268 by @kgarner7)
- Monitoring: Added new Prometheus metrics to the Subsonic API and Plugins. (#4266 by @kgarner7)
Changed
- Docker: Downgraded the Alpine base image in the Dockerfile to oldest supported version 3.19 for smaller images. (7928adb3d by @deluan)
- Dependencies: Updated TagLib to version 2.1.1. (#4281 by @deluan)
Fixed
- UI:
// bugfix(playlist): reset page to 1 on playlist change - #1676 #4154
- Fixed an issue where the playlist page was not resetting to page 1 when changing playlists. (#4154 by @strider-)
- Scanner:
- Ensured that full scans always update the database. (#4252 by @deluan)
- Fixed an issue where artist statistics were not refreshing during quick scans. (#4269 by @deluan)
- Server:
- Fixed an issue to ensure a single play queue record is used per user. (f7e005a99 by @deluan)
- Enhanced artist folder detection with directory traversal. (#4151 by @deluan)
- Subsonic API:
- Fixed an issue where clearing a playlist's comment and public status was not working. (#4258 by @deluan)
- Fixed JukeboxRole logic in getUser to respect AdminOnly setting. (#4170 by @deluan)
- Fixed loading lyrics from external files when the embedded lyrics was empty. (#4232 by @wilywyrm)
- Fixed lyrics detection when the there are multiple instances of the same song. (#4237 by @kgarner7)
- Database:
- Fixed an issue where dangling music entries were not being cleared after upgrading to recent versions (0.55+). (#4262 by @deluan)
- Allow for nullable ReplayGain values. (#4239 by @kgarner7)
- Auto clean-up annotation table when removing user. (#4211 by @kgarner7)
- Jukebox: Fixed issues with mpv command and template parsing, and ensured the MusicFolder is included. (#4162 by @deluan, #4067 by @patso23)
Note: For those waiting for the Multi-Library feature, it is still in progress and will be released in the next version. You can follow its development in the Multi-Library PR. It is a complex feature that requires significant changes to the codebase, so it's taking a bit longer than expected. Thank you for your patience and continuous support!
New Contributors
- @Keviannn made their first contribution in #4146
- @strider- made their first contribution in #4154
- @patso23 made their first contribution in #4067
- |
| 0.56.1 | 29 de maig del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióChangelog
Quick fix for Artists not showing up in Subsonic clients, See #4140
Bug fixes
- fa2cf36: fix(subsonic): change role filter logic (@deluan) (#4140)
Full Changelog: v0.56.0...v0.56.1
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter!
Changelog
Bug fixes
- fa2cf36: fix(subsonic): change role filter logic (@deluan)
Full Changelog: v0.56.0...v0.56.1
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.56.0 | 28 de maig del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióWe're excited to announce Navidrome v0.56.0, a major release packed with new features, important bug fixes, and significant improvements to the user experience. This release includes 81 commits with contributions from our amazing community!
🔒 SECURITY UPDATES
- SQL Injection Prevention: Fixed potential SQL injection vulnerability in artist role filtering. CVE will be published soon - @4rdr / @caiocotts
- Transcoding Security: Transcoding configuration changes are now restricted to admin users only - @lujiefsi (#4096)
🎉 Major New Features
Missing Files Management
- Remove All Missing Files: New bulk action to clean up missing files from your library - @deluan (#4108)
- Scanner.PurgeMissing Configuration: New config option to automatically purge missing files during scans - @deluan (#4107)
- Missing Artists: Hide missing artists from the UI and Subsonic API, and add admin-only "missing" filters - @deluan (#4092)
Playlist Enhancements
- M3U File Downloads & Unified Export Logic: Downloaded playlists now include M3U files for better compatibility with external players - @deluan
- Playlist Cover Art: Playlists now display their cover art in the UI - @deluan
- Save Queue to Playlist: Easily save your current playback queue as a new playlist - @deluan (#4110)
Enhanced User Interface
- Smooth Image Transitions: Smooth transitions for album and artist artwork - @deluan (#4120)
- Scan Progress & Status Improvements: Real-time scan progress, error reporting, and elapsed time - @deluan (#4094, #4115)
- Sample Rate Display: View sample rate information in the song info dialog - @gqgs (#3960)
- Genre and Mood Fields: Added genre and mood fields to the AlbumSongs component - @deluan
- Internationalization Improvements: Updated translations for multiple languages
Scanner and Metadata Improvements
- Filesystem Lyrics Support: Support for reading lyrics (.lrc) directly from filesystem files - @kgarner7 (#2897, #3997)
- Symlink Support: New Scanner.FollowSymlinks option (default true)to allow disabling symbolic links following - @deluan (#4061)
- ISRC Support: Added ISRC (International Standard Recording Code) support for OpenSubsonic - @deluan (#4088)
- Artist/AlbumArtist Filtering: New filter options for media files - @kgarner7 (#4001)
- Scanner Optimizations: Improved refresh performance and missing flag update logic - @deluan (#4059)
Other Notable Features
- Default Share Expiration: New DefaultShareExpiration configuration option - @caiocotts (#4082)
- Scrobble First Artist Only: New option Lastfm.ScrobbleFirstArtistOnly to send only the first artist when scrobbling - @deluan (#4131)
🐛 Critical Bug Fixes
Performance and Memory
- Memory Leak Fix: Resolved memory leak in cache warmer that could affect long-running instances - @deluan (#4095)
Database and Data Integrity
- User Deletion Fix: Fixed issue preventing deletion of users who have shares - @kgarner7 (#4098)
- Smart Playlist Fixes: Fixed numeric comparisons for float custom tags and albumtype handling - @deluan (#4116)
Media Handling
- Multi-disc Artwork: Always select cover art from the first disc in multi-disc albums - @deluan (#3950)
- AIFF/WMA Cover Art: Fixed cover art detection for AIFF and WMA files - @kgarner7 (#3996)
- Track Ordering: Albums now always order tracks by disc and track number correctly - @deluan (#3975)
User Interface Fixes
- Share Image Aspect: Fixed share image aspect ratios by forcing square dimensions - @kgarner7 (#4122)
- UI Display Improvements: Enhanced external link display, artist link rendering, and button styles - @deluan
- Page Titles: Updated titles for radios, shares and show pages - @deluan (#4128)
🔧 Technical Improvements
Development and Build
- Go 1.24.2: Updated to Go version 1.24.2 - @deluan
- Dependency Updates: Updated both Go and JavaScript dependencies, including golangci-lint - @deluan (#3937)
- Automated Dependency Updates: eslint-config-prettier and golangci-lint-action updates - @dependabot (#4077, #4035)
- golangci-lint Integration |
| 0.55.2 | 5 d’abril del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióBugfix release
A few more bug fixes and improvements.
Changelog
New Features
- 1c691ac: feat(docker): automatically loads a navidrome.toml file from /data, if available (@deluan)
- 57e0f6d: feat(server): custom ArtistJoiner config (#3873) (@deluan)
- 112ea28: feat(ui): add Greek translation (#3892) (@Michatec)
- 3394580: feat(ui): add Norwegian translation (@deluan)
- 73eb0e2: feat(ui): add mood column to Album and Song list views (#3925) (@deluan)
- 46a2ec0: feat(ui): hide absolute paths from regular users (@deluan)
- 296259d: feat(ui): show bitDepth in song info dialog (@deluan)
Bug fixes
- 55ce28b: fix(bfr): force upgrade to read all folders. (#3871) (@deluan)
- ee2c2b1: fix(dockerfile): remove the healthcheck, it gives more headaches than benefits. (@deluan)
- 1ed8930: fix(msi): don't override custom ini config (#3836) (@mintsoft)
- be7cb59: fix(scanner): allow disabling splitting with the Tags config option (#3869) (@deluan)
- b386981: fix(scanner): better log message when AutoImportPlaylists is disabled (@deluan)
- 3a0ce6a: fix(scanner): elapsed time for folder processing is wrong in the logs (@deluan)
- 2adb098: fix(scanner): fix displayArtist logic (#3835) (@deluan)
- 491210a: fix(scanner): ignore NaN ReplayGain values (@deluan)
- cd552a5: fix(scanner): pass datafolder and cachefolder to scanner subprocess (@deluan)
- 3f9d173: fix(scanner): support ID3v2 embedded images in WAV files (@deluan)
- 59ece40: fix(server): better embedded artwork extraction with ffmpeg (#3860) (@deluan)
- 264d73d: fix(server): don't break if the ND_CONFIGFILE does not exist (@deluan)
- f9081bb: fix(server): first user created should be admin, when using reverse proxy (#3920) (@deluan)
- d78c6f6: fix(subsonic): ArtistID3 should contain list of AlbumID3 (@deluan)
- 2128872: fix(ui): minor icon inconsistencies and "no missing files" translation (#3837) (@kgarner7)
- 651ce16: fix(ui): sort playlist by album_artist, bpm and channels (@deluan)
- d331ee9: fix(ui): sort playlist by year (@deluan)
- 1e1dce9: fix(ui): update Basque translation (#3864) (@xabirequejo)
- 63dc0e2: fix(ui): update Français, reorder translation according to en.json template (#3839) (@kalon33)
- c837838: fix(ui): update French, Polish, Turkish translations from POEditor (#3834) (@deluan)
- a057a68: fix(ui): update Greek, Esperanto, Polish, Russian, Turkish translations from POEditor (#3894) (@deluan)
- 9e94655: fix(ui): update Italian translations (#3885) (@matteo00gm)
- 2b84c57: fix: restore old date display/sort behaviour (#3862) (@deluan)
Other work
- b046473: chore(deps): upgrade to Go 1.24.1 (#3851) (@deluan)
- 0147bb5: chore(deps): upgrade viper to 1.20.0, add tests for the supported config formats (@deluan)
- 5ab345c: chore(server): add more info to scrobble errors logs (#3889) (@deluan)
- e457f21: chore(server): show square flag in resize artwork logs (@deluan)
- cf100c4: chore(subsonic): update snapshot tests to use version 1.16.1 (@deluan)
- 1806552: chore: remove more outdated TODOs (@deluan)
- 223e88d: chore: remove some BFR-related TODOs that are not valid anymore (@deluan)
- 88f87e6: chore: replace album placeholder (@deluan)
Full Changelog: v0.55.1...v0.55.2
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.55.1 | 15 de març del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióBugfix release
A bunch of bug fixes, and a couple of improvements.
Thanks you all for the feedback!
Changelog
New Features
- 2838ac3: feat(scanner): allow disabling tags with Tags.<tag>.Ignore=true (@deluan)
- beb768c: feat(server): add Role filters to albums (#3829) (@deluan)
Bug fixes
- b952672: fix(scanner): add back the Scanner.GenreSeparators as a deprecated option (@deluan)
- 226be78: fix(scanner): full_text not being updated on scan (@deluan)
- 938c3d4: fix(scanner): restore setsubtitle as discsubtitle for non-WMA (#3821) (@kgarner7)
- 5fb1db6: fix(scanner): watcher not working with relative MusicFolder (@deluan)
- 2a15a21: fix(server): db migration does not work for MusicFolders ending with a trailing slash. (#3797) (@deluan)
- 5c67297: fix(server): panic when logging tag type. Fix #3790 (@deluan)
- 5c0b6fb: fix(server): skip non-UTF encoding during the database migration. (#3803) (@deluan)
- ed1109d: fix(subsonic): fix albumCount in artists (#3827) (@kgarner7)
- 7c13878: fix(subsonic): getRandomSongs with genre filter (@deluan)
- a28462a: fix(ui): fix make dev (#3795) (@kgarner7)
- 70f536e: fix(ui): skip missing files in bulk operations (#3807) (@deluan)
- 0bb4b88: fix(ui): update Español translation (#3805) (@RigleGit)
Documentation updates
- 98808e4: docs(scanner): clarifies the purpose of the mappings.yaml file for regular users (@deluan)
Other work
- 422ba22: chore(scanner): add logs to .ndignore processing (@deluan)
Full Changelog: v0.55.0...v0.55.1
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.54.4 | 15 de gener del 2025 | — | 64 bits MSI32 bits MSI Notes de la versióChangelog
New Features
- d60e831: feat(cli): support getting playlists via cli (#3634) (@kgarner7)
Bug fixes
- 3179966: fix(metrics): write system metrics on start (#3641) (@kgarner7)
- acce3c9: fix(release): make binaries executable before packaging (@deluan)
- beff1af: fix(subsonic): make Share's lastVisited optional (@deluan)
- f1478d4: fix(ui): fix for typo in hu.json (#3635) (@ChekeredList71)
- 920fd53: fix(ui): remove index.html from service worker cache after creating admin user (#3642) (@kgarner7)
- 73ccfbd: fix(ui): update Türkçe translations from POEditor (#3636) (@deluan)
Other work
- 537e2fc: chore(deps): bump go dependencies (@deluan)
- ba2623e: chore(server): add more logs to backup (@deluan)
Full Changelog: v0.54.3...v0.54.4
Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.
Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.54.2 | 21 de desembre del 2024 | — | 64 bits MSI32 bits MSI Notes de la versióChangelog
Bug fixes
- fix(insights): get Windows version (@deluan)
- fix(server): change log level for some last.fm warnings (@deluan)
- fix(ui): update Español, Français, Svenska translations from POEditor (#3576) (@deluan)
- fix(ui): update Hungarian translation (#3574) (@ChekeredList71)
Build process updates
- build(ci): fix release version label and package names (#3573) (@deluan)
- build(poeditor): change commit message for translation update PRs (@deluan)
Other work
- chore: add PikaPods to release notes (@deluan)
Full Changelog: https://github.com/navidrome/navidrome/compare/v0.54.1...v0.54.2Helping out
This release is only possible thanks to the support of some awesome people!Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.Where to go next?
- Read installation instructions on our website.
- Host Navidrome on PikaPods for a simple cloud solution.
- Reach out on Discord, Reddit and Twitter! |
| 0.49.3 | 2 de juny del 2023 | — | 64 bits ZIP32 bits ZIP |