3688 Commits

Author SHA1 Message Date
Deluan
5be6dfc54b
Clean up runNavidrome function 2026-01-02 20:36:55 +00:00
Deluan Quintão
9e9f72ae8a
Make sorting lists by name/title case-insensitive (#2993)
* Make sort by order_* fields case-insensitive.

* Sort internet radios by name case-insensitive
2026-01-02 20:36:55 +00:00
Deluan Quintão
9ff3145845
Terminate all MPV instances when stopping Navidrome (#3008)
* Terminate all mpv instances when stopping Navidrome

* Exit trackSwitcher goroutine when terminating

* Remove potential race condition when starting the Playback device

* Fix lint error

* Removed unused and unneeded vars/functions

* Use device short name in log

* Small refactor

* Small nitpick

* Make start functions more uniform
2026-01-02 20:36:55 +00:00
Deluan
6640509044
Make dependency injection more consistent 2026-01-02 20:36:55 +00:00
Deluan
b20e3ae337
Fix migration package name mismatch 2026-01-02 20:36:54 +00:00
Deluan
d94e73236b
Change default transcodings to a proper typed struct 2026-01-02 20:36:54 +00:00
Deluan
7500b17eb1
Fix ambiguous column when sorting media_files by created_at.
Fix #3006
2026-01-02 20:36:54 +00:00
Deluan
ad89e02a93
Limit access to Jukebox for admins only (configurable).
Closes #2849
2026-01-02 20:36:54 +00:00
Deluan
e569f80796
Bump Go dependencies 2026-01-02 20:36:52 +00:00
Matthias Schmidt
7cd38f9742
Guard against missing active track (#2996)
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2026-01-02 20:36:35 +00:00
Matthias Schmidt
2c6216817d
Persist adjusted volume (#2997)
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2026-01-02 20:36:35 +00:00
Ludovic Fernandez
6d8557b6bb
Improves golangci-lint configuration and workflow (#3004)
* chore: the default Go version is based on the go.mod

* chore: use linter configuration instead of exclude-rules

* chore: update workflow
2026-01-02 20:36:35 +00:00
Deluan
1a2683fe75
Pin golangci-lint-action version as a workaround to fix the pipeline.
See https://github.com/golangci/golangci-lint/issues/4695
2026-01-02 20:36:35 +00:00
Deluan
96e011efc0
Fix CollapsibleComment in PlaylistDetails. Closes #2992 2026-01-02 20:36:35 +00:00
Deluan
3459141f8c
Add HTTPSecurityHeaders.CustomFrameOptionsValue option.
Requested in https://github.com/navidrome/navidrome/issues/248#issuecomment-1783768985
2026-01-02 20:36:33 +00:00
Deluan
2c638ecd3f
Fix typo 2026-01-02 20:35:33 +00:00
Kendall Garner
91ef9a71c1
Sort repeated lyrics that may be out of order (#2989)
With synchronized lyrics with repeated text, there is not a guarantee that the repeat is in order (e.g. `[00:00.00][00:10.00] a\n[00:05.00]b`).
This change will post-process lyrics with repeated timestamps in one line to ensure that it is always sorted.
2026-01-02 20:35:32 +00:00
Deluan
1159d65729
Bump Go dependencies 2026-01-02 20:35:32 +00:00
Deluan
33c96640e8
Fix PlaylistTracks's loadAllGenres. Fix #2988 2026-01-02 20:35:32 +00:00
Deluan
ad2a40a712
Fix AlbumPlayCountMode. Closes #2984 2026-01-02 20:35:32 +00:00
Deluan
044ef35d8e
Fix int types in OpenSubsonic responses.
Refer to https://support.symfonium.app/t/symfonium-sync-crashes-when-tpos-is-not-an-int/4204
2026-01-02 20:35:32 +00:00
Deluan
d19df38b3d
Fix signaler on Windows 2026-01-02 20:35:32 +00:00
Deluan
e5bdc379c6
Use signal.NotifyContext 2026-01-02 20:35:32 +00:00
Deluan
786a65aa07
Refactor loadGenres, remove duplication 2026-01-02 20:35:32 +00:00
Deluan
ad4918135d
Refactor DB Album mapping to model.Album 2026-01-02 20:35:32 +00:00
Deluan
88b7165362
Load mime_types from external file 2026-01-02 20:35:32 +00:00
Deluan
198fc5f9c9
Remove AlbumPlayCountMode from command line options 2026-01-02 20:35:32 +00:00
Deluan
e95e88950c
Add tests for AlbumPlayCountMode, change the calc to match the request from #1032 2026-01-02 20:35:32 +00:00
Deluan
054475a127
Add tests for AlbumPlayCountMode 2026-01-02 20:35:32 +00:00
vvdveen
60209152ec
Add AlbumPlayCountMode config option (#2803)
Closes #1032

* feat(album_repository.go): add kodi-style album playcount option - #1032

Signed-off-by: Victor van der Veen <vvdveen@gmail.com>

* fix format issue and remove reference to kodi (now normalized)

Signed-off-by: Victor van der Veen <vvdveen@gmail.com>

* reduced complexity but added rounding

Signed-off-by: Victor van der Veen <vvdveen@gmail.com>

* Use constants for AlbumPlayCountMode values

---------

Signed-off-by: Victor van der Veen <vvdveen@gmail.com>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:35:32 +00:00
crazygolem
7c196d544f
Add support for Reverse Proxy auth in Subsonic endpoints (#2558)
* feat(subsonic): Add support for Reverse Proxy auth - #2557

Signed-off-by: Jeremiah Menétrey <superjun1@gmail.com>

* Small refactoring

---------

Signed-off-by: Jeremiah Menétrey <superjun1@gmail.com>
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2026-01-02 20:35:31 +00:00
Deluan
1af9b7ae5e
Bump github.com/spf13/viper from 1.15.0 to 1.18.2 2026-01-02 20:35:30 +00:00
Deluan Quintão
0a6d76f4b0
Bump Go dependencies (#2976)
* Fix build

* Bump dependencies
2026-01-02 20:35:04 +00:00
Deluan
c1683122b9
Bump github.com/pressly/goose/v3 from 3.19.2 to 3.20.0 2026-01-02 20:35:04 +00:00
Anna Smith
82733e2d5f
Fix typo in comment (#2974) 2026-01-02 20:35:04 +00:00
Deluan
281f611c0e
Add OpenSubsonic channelCount 2026-01-02 20:35:04 +00:00
Deluan
d46740771c
Fix scrobble error spam in the logs.
Relates to #2831 and #2975
2026-01-02 20:35:04 +00:00
crazygolem
b75b09e8da
Use the RealIP middleware also behind a reverse proxy (#2858)
* Use the RealIP middleware only behind a reverse proxy

* Fix proxy ip source in tests

* Fix test for PR#2087

The PR did not update the test after changing the behavior, but the test still
passed because another condition was preventing the user from being created in
the test.

* Use RealIP even without a trusted reverse proxy

* Use own type for context key

* Fix casing to follow go's conventions

* Do not apply RealIP middleware twice

* Fix IP source in logs

The most interesting data point in the log message is the proxy's IP, but
having the client IP too can help identify integration issues.
2026-01-02 20:35:04 +00:00
Tim
3969263fbd
Handling long playlist comments (#2973)
Closes #1737

* wrapping playlist comment in a <Collapse> element

* Extract common collapsible logic into a component

---------

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:35:04 +00:00
dependabot[bot]
05c6cc2c77
Bump github.com/onsi/gomega from 1.32.0 to 1.33.0 (#2968)
Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.32.0 to 1.33.0.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.32.0...v1.33.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 20:35:04 +00:00
Deluan
437bcc5fa1
Include MPV in release Docker image. Refers to #2910 2026-01-02 20:35:04 +00:00
Deluan
4e3fca54c0
Fix typo 2026-01-02 20:35:03 +00:00
Deluan
02604f0cfb
Allow comments in the NSP file.
See comment https://github.com/navidrome/navidrome/issues/1417#issuecomment-2064731407
2026-01-02 20:35:03 +00:00
Deluan
cd805d24da
Block regular users from changing their own playlists ownership 2026-01-02 20:35:03 +00:00
Deluan
b9e273bcf7
Fix issue in https://github.com/navidrome/navidrome/issues/2767#issuecomment-2065636352 2026-01-02 20:35:03 +00:00
dependabot[bot]
4d89f549cf
Bump golang.org/x/net from 0.21.0 to 0.23.0 (#2962)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.21.0 to 0.23.0.
- [Commits](https://github.com/golang/net/compare/v0.21.0...v0.23.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 20:35:03 +00:00
Jonathan
2e0daf03db
Externalize MPV command template (#2948)
* externalise MPVTemplate

* Remove unnecessary comment

---------

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:35:03 +00:00
dependabot[bot]
26b49b56d8
Bump react-icons from 5.0.1 to 5.1.0 in /ui (#2957)
Bumps [react-icons](https://github.com/react-icons/react-icons) from 5.0.1 to 5.1.0.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v5.0.1...v5.1.0)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 20:35:03 +00:00
dependabot[bot]
75a0399e0e
Bump github.com/pelletier/go-toml/v2 from 2.2.0 to 2.2.1 (#2956)
Bumps [github.com/pelletier/go-toml/v2](https://github.com/pelletier/go-toml) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/pelletier/go-toml/releases)
- [Changelog](https://github.com/pelletier/go-toml/blob/v2/.goreleaser.yaml)
- [Commits](https://github.com/pelletier/go-toml/compare/v2.2.0...v2.2.1)

---
updated-dependencies:
- dependency-name: github.com/pelletier/go-toml/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 20:35:03 +00:00
Andrew Katsikas
da76a24539
Fix jukebox mode under Windows (#2774)
* bug(core/playback/mpv): jukebox mode under windows - #2767

Use named pipe for socket path under windows during mpv playback, change function name, unexport function

Signed-off-by: apkatsikas <apkatsikas@gmail.com>

* bug(core/playback/mpv): jukebox mode under windows - #2767

Fix typo

Signed-off-by: apkatsikas <apkatsikas@gmail.com>

* bug(core/playback/mpv): jukebox mode under windows - navidrome#2767

Early return for Close on Windows

Signed-off-by: apkatsikas <apkatsikas@gmail.com>

* bug(core/playback/mpv): jukebox mode under windows - navidrome#2767

Update import and run prettier

Signed-off-by: apkatsikas <apkatsikas@gmail.com>

* bug(core/playback/mpv): jukebox mode under windows - navidrome#2767

Update function name

Signed-off-by: apkatsikas <apkatsikas@gmail.com>

* bug(core/playback/mpv): jukebox mode under windows - navidrome#2767

Create track_close files for both platforms and move MpvTrack Close into new file

Signed-off-by: apkatsikas <apkatsikas@gmail.com>

* bug(core/playback/mpv): jukebox mode under windows - navidrome#2767

Create SocketName function for both platforms, restore name of TempFileName

Signed-off-by: apkatsikas <apkatsikas@gmail.com>

* bug(core/playback/mpv): jukebox mode under windows - navidrome#2767

Add missing params to SocketName on windows

Signed-off-by: apkatsikas <apkatsikas@gmail.com>

* Unexport SocketName, use socketName in NewTrack

---------

Signed-off-by: apkatsikas <apkatsikas@gmail.com>
2026-01-02 20:35:03 +00:00