Skip to content

v0.50.0

Compare
Choose a tag to compare
@github-actions github-actions released this 17 Nov 03:11
· 207 commits to master since this release

New in this release

Jukebox mode

One of the most requested features is finally available: Navidrome's Jukebox feature is a built-in functionality that allows users to play music directly to the server's audio. This essentially turns your server into a jukebox, enabling you to play songs or playlists remotely through a supported Subsonic client. See full documentation here. Can't thank enough @ms140569 for his dedication to this.

Album splitting by Original/Release date

Another big feature is the support for disambiguating album editions by Original/Release Date, contributed by @certuna.

Very Important: This feature is controlled by the Scanner.GroupAlbumReleases config option. The default is false, meaning split is the default behaviour. This has a side effect that Navidrome will think all albums are new, and they will lose their star/love information, as well as play counts. If you don't want this behaviour, set Scanner.GroupAlbumReleases to true before upgrading.

Better networking support

Now Navidrome supports HTTPS out of the box. You need to provide a certificate and key as options (See new ND_TLSCERT/ND_TLSKEY config options). One more thing: Now the Address config option can specify a Unix socket file instead of a IP address. For that set Address (or ND_ADDRESS) to unix:/path/to/socket/file.

A big thanks to @ms140569, @certuna, @kgarner7 and all contributors that participated in this release.

Highlights

  • [UI] Don't pump the volume up to 100% if it is not in a mobile device. Fix #2255. Thanks @tessharp
  • [UI] Add option to allow shares to be downloaded
  • [UI] Make AlbumArtists clickable in AlbumSongs view. Fixes #1627. Thanks @krateng
  • [UI] Add Arabic (@zayedalsaidi) and Korean (@bonik21) translations
  • [UI] Give page the right lang attribute (#2299). Thanks @subhajit20
  • [UI] Upgrade to Node v18
  • [UI] Fix external link for artist page (#2533). Thanks @kgarner7
  • [Scanner] Ignore Recycle Bins in Windows. Fix #1074
  • [Scanner] Make playlist tracks match case-insensitive. Fix #1720
  • [Scanner] Better support for ReplayGain tags. Thanks @kgarner7
  • [Scanner] Ignore playlists starting with a dot (#2390)
  • [Scanner] Add support for lyrics tag unsynced lyrics (#2391). Thanks @BenzLeung
  • [Scanner] Use file creation date for Date Added/CreatedAt (#2553). Thanks @certuna
  • [Server] Jukebox mode (#2289). Thanks @ms140569
  • [Server] Implement ArtistArt priority (#2266). Thanks @repomaa
  • [Server] Add option to load TLS cert/key, and use HTTPS
  • [Server] Add support for listening on Unix socket. See #1477
  • [Server] Allow BaseURL to contain full server url, including scheme and host. Fix #2183
  • [Server] Sanitize filenames inside zip files. Fixes #1763
  • [Server] Allow configuring cache folder (#2357). Thanks @tomleb
  • [Server] Fix ListenBrainz submission, includes duration (#2279). Thanks @phw
  • [Server] POST endpoint for importing m3u playlists (#2273). Thanks @spwats and @caiocotts
  • [Server] Upgrade to Go 1.21
  • [Subsonic] Convert all Subsonic API ints to int32 as per specification #2252
  • [Subsonic] Fix getSongsByGenre pagination. Fix #1640
  • [Subsonic] Add initial support for OpenSubsonic. (#2302)
  • [Build] Publish docker images to ghcr.io (#2298). Thanks @onedr0p for the "push" ;)

Changelog

  • fee0f40 Bump dependencies
  • 9d2aaff Bump golang.org/x/tools from 0.13.0 to 0.15.0
  • 2ff4023 Bump golang.org/x/image from 0.12.0 to 0.14.0
  • 79870b1 Do not empty old artist metadata (#2423)
  • 7a858a2 Fix external link for artist page if LastFM is missinb but Musicbrainz is not (#2533)
  • 9cefaf6 Bump github.com/onsi/gomega from 1.29.0 to 1.30.0
  • 3debd31 Add more replaygain tests, fix wma (#2356)
  • 24d9fb5 Update translations (#2409)
  • 40841ab Small date mapping fix (#2584)
  • bae5fc9 Fix hardcoded IPv4 literals (#2602)
  • e055826 Fix devcontainer for Go 1.21
  • 54bde26 Bump github.com/mattn/go-sqlite3 from 1.14.16 to 1.14.18
  • 3a73769 Bump golang.org/x/sync from 0.3.0 to 0.5.0
  • de3d870 Bump github.com/spf13/cobra from 1.7.0 to 1.8.0
  • 03175e1 Use file creation date for Date Added/CreatedAt (#2553)
  • 26472f4 POST endpoint for importing m3u playlists - #2078 (#2273)
  • 6bca753 Bump @babel/traverse from 7.19.3 to 7.23.2 in /ui
  • 68d1d5c Bump github.com/lestrrat-go/jwx/v2 from 2.0.12 to 2.0.16
  • db6c460 Bump github.com/beego/beego/v2 from 2.0.7 to 2.1.3
  • 4cd916b Bump react-router-dom from 5.3.0 to 5.3.4 in /ui
  • c40e83e Bump github.com/go-chi/chi/v5 from 5.0.8 to 5.0.10
  • 9094f41 Improve TopSongs findMatchingTrack by de-prioritizing compilations (#2532)
  • 9ff95b6 Bump github.com/onsi/gomega from 1.27.10 to 1.29.0
  • 77ace85 Coalesce genre to null for smart playlist (#2573)
  • 59f0c48 Jukebox cleanup (#2554)
  • 2cd4358 Make Jukebox available to Subsonic clients
  • 248bf23 Bump github.com/lestrrat-go/jwx/v2 from 2.0.11 to 2.0.12 (#2480)
  • b5664ab Bump github.com/onsi/ginkgo/v2 from 2.11.0 to 2.12.0 (#2497)
  • ac7f94e Fix text being unreadable with Ligera theme (#2517)
  • d45f9f1 Bump github.com/google/uuid from 1.3.0 to 1.3.1 (#2489)
  • 250107d Bump golang.org/x/image from 0.9.0 to 0.12.0 (#2507)
  • 64b14db Add Korean Language (#2463)
  • 73d1851 Bump golang.org/x/tools from 0.9.1 to 0.13.0 (#2516)
  • 1b16e11 Jukebox mode (#2289)
  • f941347 Upgrade to Go 1.21 (#2475)
  • 1b5cefd Bump github.com/onsi/gomega from 1.27.8 to 1.27.9 (#2450)
  • 4cf25fc Bump github.com/microcosm-cc/bluemonday from 1.0.24 to 1.0.25 (#2449)
  • 14ba83e Bump github.com/go-chi/chi/v5 from 5.0.8 to 5.0.10 (#2444)
  • 08f3fd1 Bump github.com/pressly/goose/v3 from 3.13.1 to 3.13.4 (#2442)
  • 3d66f58 Bump tough-cookie from 4.1.2 to 4.1.3 in /ui (#2441)
  • 5b1ba3d Bump word-wrap from 1.2.3 to 1.2.4 in /ui (#2446)
  • a002830 Fix EnableMediaFileCoverArt option default value
  • 7b600be Bump golang.org/x/tools from 0.10.0 to 0.11.0 (#2432)
  • 7d0a191 Bump golang.org/x/image from 0.8.0 to 0.9.0 (#2430)
  • c7fe311 Bump github.com/go-chi/jwtauth/v5 from 5.1.0 to 5.1.1 (#2427)
  • 4520a34 Bump github.com/pressly/goose/v3 from 3.11.2 to 3.13.1 (#2428)
  • 3e14c3c Add support for lyrics tag unsynced lyrics (#2391)
  • 1e891d6 Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 (#2408)
  • caf9b22 Bump golang.org/x/image from 0.7.0 to 0.8.0 (#2407)
  • 4f8742b Update translations (#2329)
  • 26aa0f4 Fix typo
  • 4898f31 Add format target to Makefile
  • 9da013f Submit duration to ListenBrainz (#2405)
  • 5af67c7 Upgrade Go dependencies
  • c860895 Fix listenbrainz submission and clarify MusicBrainz recording ID field (#2279)
  • 36eda87 Fix locale-dependent tests. Closes #2402
  • 7c92a73 Ignore playlists starting with a dot - #2367 (#2390)
  • f5d9782 Fix original date (TDOR) mapping for ffmpeg extractor
  • d6083da Re-apply "Refactor walkDirTree to use fs.FS" but remove context cancelation logic.
  • 6b3b4d8 Revert "Refactor walkDirTree to use fs.FS"
  • 3853c33 Refactor walkDirTree to use fs.FS
  • 257ccc5 Allow configuring cache folder (#2357)
  • cec5fb0 Fix lint errors
  • 3fc4313 Move string slice functions to slice package as generic functions
  • c4c99b7 Make GroupAlbumReleases false by default
  • a984bbb Make SmartPlaylists to always be seen as changed for Subsonic clients.
  • ba06766 Fix date formatting to use UTC
  • e38a690 Order albums by full original date (this time is for real). Fixes #1452
  • 7d0656f Order albums by full original date. Fixes #1452
  • 11f33ff Update dependencies
  • 611363f Add missing translation
  • 85d43d2 Add tests to date roll-ups
  • 8faaa3c Use table specs in getDate tests
  • 20462c5 Restore album "year" translation string
  • 52b77e4 Support for Original Date, Release Date & splitting/grouping of album editions (#2162)
  • 010ba0d Use table specs in ReplayGain tests.
  • 9b7fac5 Update default transcoding commands (#2325)
  • be12c12 Remove unused Badge component from ActivityPanel icon
  • a19a643 Manually add replaygain tags for m4a (#2346)
  • f9b060a Removed onBackdropClick deprecated property
  • a3d78e9 Fix Monokai theme. Closes #2353
  • d85b063 Fix build
  • bfa10ca Upgrade to Node v18
  • 08fcb43 Upgrade React-Admin to 3.19.12
  • 5d02df6 Fix eslint error
  • c3a2e08 Update caniuse-lite
  • 4296741 Simplify EventStream handling
  • 6bee4ed Sanitize filenames inside zip files. Fixes #1763
  • e62c3ed Revert: Change fix formatting command
  • 0a08d0a Change fix formatting command
  • ad51335 Disable POEditor import job in forks
  • a70b81f Bump github.com/onsi/ginkgo/v2 from 2.9.4 to 2.9.5 (#2352)
  • 0d920c7 Bump github.com/prometheus/client_golang from 1.14.0 to 1.15.1 (#2342)
  • 957a73e Bump github.com/mileusna/useragent from 1.2.1 to 1.3.2 (#2319)
  • abc418e Bump github.com/onsi/ginkgo/v2 from 2.9.2 to 2.9.4 (#2343)
  • 1128322 Bump golang.org/x/tools from 0.8.0 to 0.9.1 (#2350)
  • 2e479de Bump github.com/go-chi/httprate from 0.7.1 to 0.7.4 (#2320)
  • 8311a7f Bump golang.org/x/sync from 0.1.0 to 0.2.0 (#2344)
  • 6ec8f78 Bump github.com/pressly/goose/v3 from 3.10.0 to 3.11.2 (#2341)
  • 3e879d2 Add K8s manifest (#2330)
  • 6d3d005 Allow the setrlimit syscall - #1961 (#2333)
  • c12510d Update README
  • 0bd73bd Better GH Action names
  • 8c120ee Better GH Action names
  • 9590b3c Use the highest resolution artist image from Spotify
  • 4887c33 Bump golang.org/x packages
  • da21acb Give page the right lang attribute (#2299)
  • 9154e44 Add initial support for OpenSubsonic. (#2302)
  • 2e01063 Update translations (#2198)
  • 597e5ab Fix push develop to Docker Hub
  • 92994ef Publish docker images to ghcr.io (#2298)
  • 9628b13 Add help msg for JS formatting errors
  • 3474240 Show Player name, not client, in mobile view. Fix #1659.
  • ecac74c Fix getSongsByGenre pagination. Fix #1640
  • ddfde7b Run lint on latest Go 1.20.x
  • 96c50d3 Upgrade to Go 1.20.3 and GoRelease 1.16.1
  • 310c816 Use Go 1.20 for local cross-compilation
  • bd402fb Fix IntelliJ warning
  • 8bb141b Bump github.com/spf13/cobra from 1.6.1 to 1.7.0 (#2293)
  • f25b91b Remove any previous UNIX socket file
  • f959701 Bump github.com/onsi/gomega from 1.27.5 to 1.27.6 (#2292)
  • 61dd8d5 Fix data race in scanner
  • bbb9461 Increase max Server-Sent Events' ID
  • 95016f6 Fix SQL migrations
  • c3cc7de Enable SQL migrations
  • 7847f19 Upgrade goose
  • 7a0df44 Bump github.com/onsi/gomega from 1.27.5 to 1.27.6 (#2288)
  • 6a8d2dc Only use valid images for artist.* artwork
  • de816e8 Fix lint error
  • b22d036 Use channels for EventStream instead of diodes
  • fea2de8 Add Galician translation.
  • d6dd0aa Close SSE connection on write error
  • 458017b Update Chinese translations (#2260)
  • e6bfa2b Convert our usage of go-diodes into a simplified, generic version
  • 1c7fb74 Fix writeEvents race condition.
  • 83ae2ba Fix race condition
  • 2ccc5bc Implement artist art priority (#2266)
  • 406554f Remove some tools from dependencies, reducing the modules dependencies
  • e89cdf6 Fix flaky tests
  • cf804a5 Add support for listening on Unix socket.
  • 628fd69 Fix race condition
  • 1d00d1e Fix writeEvent function.
  • 607c406 Show translation changes on pipeline
  • e3079d8 More tests
  • 3bedd89 Bump dependencies
  • 57829bf Bump github.com/lestrrat-go/jwx/v2 from 2.0.8 to 2.0.9 (#2282)
  • b998c05 Some refactorings
  • 05d381c Add more middleware tests
  • 59a9c05 Add Arabic translation (#2277)
  • 0de81b8 Bump caniuse-lite
  • 91785ec Add tests for core.Archiver
  • 65eeb5e Add tests for serverAddressMiddleware
  • 17e0cd5 Shuffle the tests, just in case (#2272)
  • 3a6d2dc More log redaction
  • 183b462 Fix zip comments in Share downloads.
  • 16fc4eb Fix missing extensions in Share downloads.
  • 6fee744 Bump github.com/onsi/gomega from 1.27.3 to 1.27.4 (#2268)
  • 74d5c7b Bump github.com/golangci/golangci-lint from 1.51.2 to 1.52.0 (#2270)
  • 880fc9e Bump github.com/Masterminds/squirrel from 1.5.3 to 1.5.4 (#2269)
  • 1430aa1 Update play_date on scrobble only when newer - #2262 (#2263)
  • 673880d Add option to load TLS cert/key, and use HTTPS
  • 7ea1113 Don't pump the volume up to 100% if it is not in a mobile device. Fix #2255
  • 377e7eb Disable share downloading when EnableDownloads is false.
  • 23c483d Only freezes issues/prs after 120 days
  • c380139 Fix lint
  • 63fbccf Enable memory profiling
  • 1f6ec1d Add pprof endpoint, disabled by default
  • cad8156 Bump webpack from 5.74.0 to 5.76.1 in /ui (#2256)
  • f7d4fcd Convert all Subsonic API ints to int32 as per specification (#2252)
  • 002cb4e Update README.md
  • e13eaeb Update README.md
  • 539c0fa Bump github.com/onsi/ginkgo/v2 from 2.9.0 to 2.9.1 (#2251)
  • 4ccb6cc Update Chinese translations (#2250)
  • ec0eb28 Hide Love button on Artist Page when EnableFavourites=false. Fix #2245
  • b520d88 Add download button in the SharePlayer
  • a7d3e6e Add option to allow share to be downloaded
  • a22eef3 Add share download endpoint
  • 50d9838 Add docker compose examples, with traefik or caddy and without, fixes #476 (#2240)
  • 016454c Bump golangci-lint version
  • 41a5db7 Update more dependencies
  • 6e6ec58 Update sanitize and golang.org/x dependencies
  • c88e1ba Make playlist tracks match case-insensitive. Fix #1720
  • e16e3d2 Fix pipeline.
  • 339a623 Ignore Recycle Bins in Windows. Fix #1074
  • 47f15cc Make AlbumArtists clickable in AlbumSongs view. Fixes #1627
  • 9667f3c Add file path to toggleable columns in SongList view. Fix #1719
  • 5773fa0 Fix discussions links
  • 527c378 Add feature request link to About dialog
  • caa0788 Fine tune issue templates
  • 40b14e6 Add log-output to lock-threads bot
  • becd50e Remove debug-only option from stale bot
  • 15b5aa9 Add stale/lock-threads bot
  • 7987d98 Fix pipeline's lint error message
  • 1dd074b Add new issue templates
  • 7eac9d2 Bump dependencies
  • 362d8c5 Bump github.com/onsi/gomega from 1.26.0 to 1.27.1 (#2204)
  • 01c604b Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#2216)
  • 2c129a2 Bump golang.org/x/image from 0.0.0-20191009234506-e7c1f5e7dbb8 to 0.5.0 (#2217)
  • 5fc4076 Fix translation key
  • d303ad2 Bump dependencies
  • c4a68c8 Fix build pipeline
  • ad9ce98 Use GoLang 1.20.1 in pipeline
  • a134b1b Use sync/atomic package, now that we are at Go 1.19
  • 6dce4b2 Remove custom atomic.Bool, we are now at Go 1.19
  • 10108c6 Allow BaseURL to contain full server url, including scheme and host. Fix #2183
  • aac6e2c Add path to cookies. Fix #1580
  • 0ffdb2e Bump minimum Go version to 1.19