tangled
alpha
login
or
join now
encode42.dev
/
nixos
0
fork
atom
Personal-use NixOS configuration
0
fork
atom
overview
issues
pulls
pipelines
Drop navidrome package in favor of upstream
encode42.dev
1 week ago
db0a15af
0f54883b
-120
3 changed files
expand all
collapse all
unified
split
config
server
media
navidrome.nix
packages
default.nix
navidrome
default.nix
-5
config/server/media/navidrome.nix
···
17
17
services.navidrome = {
18
18
enable = true;
19
19
20
20
-
# Unstable until #488091 is merged
21
21
-
package = pkgs-flake.navidrome;
22
22
-
23
20
settings = {
24
21
Address = "unix:${socket}";
25
22
···
68
65
TranscodingCacheSize = "8GB";
69
66
};
70
67
};
71
71
-
72
72
-
systemd.services.navidrome.serviceConfig.MemoryDenyWriteExecute = lib.mkForce false;
73
68
74
69
# Caddy reverse proxy configuration
75
70
users.users.caddy.extraGroups = [ config.users.users.navidrome.group ];
-1
packages/default.nix
···
16
16
collabora-online = pkgs.callPackage ./collabora-online { };
17
17
iso2god-rs = pkgs.callPackage ./iso2god-rs { };
18
18
mediaelch = pkgs.callPackage ./mediaelch { };
19
19
-
navidrome = pkgs.callPackage ./navidrome { };
20
19
network-optimizer = pkgs.callPackage ./network-optimizer { };
21
20
omnipoly = pkgs.callPackage ./omnipoly { };
22
21
playwright-captcha = pkgs.callPackage ./playwright-captcha { inherit captcha-python-async; };
-114
packages/navidrome/default.nix
···
1
1
-
# https://github.com/NixOS/nixpkgs/pull/488091
2
2
-
3
3
-
{
4
4
-
buildGoModule,
5
5
-
buildPackages,
6
6
-
fetchFromGitHub,
7
7
-
fetchNpmDeps,
8
8
-
lib,
9
9
-
nodejs_24,
10
10
-
npmHooks,
11
11
-
pkg-config,
12
12
-
stdenv,
13
13
-
ffmpeg-headless,
14
14
-
taglib,
15
15
-
zlib,
16
16
-
nixosTests,
17
17
-
nix-update-script,
18
18
-
ffmpegSupport ? true,
19
19
-
versionCheckHook,
20
20
-
}:
21
21
-
22
22
-
buildGoModule (finalAttrs: {
23
23
-
pname = "navidrome";
24
24
-
version = "0.60.3";
25
25
-
26
26
-
src = fetchFromGitHub {
27
27
-
owner = "navidrome";
28
28
-
repo = "navidrome";
29
29
-
rev = "v${finalAttrs.version}";
30
30
-
hash = "sha256-DwVmNJKjwEhTKIVPYFqaUR9SD4HpACkK4XJoFfQVRus=";
31
31
-
};
32
32
-
33
33
-
vendorHash = "sha256-StI4CfWN/OnbYFktRriTJWMHTuJkCinpYk9qgsxMGG8=";
34
34
-
35
35
-
npmRoot = "ui";
36
36
-
37
37
-
npmDeps = fetchNpmDeps {
38
38
-
inherit (finalAttrs) src;
39
39
-
sourceRoot = "${finalAttrs.src.name}/ui";
40
40
-
hash = "sha256-EA2WM7xaqP7rS0pjx+yXwpjdauaduvDefmFH73eByxI=";
41
41
-
};
42
42
-
43
43
-
nativeBuildInputs = [
44
44
-
buildPackages.makeWrapper
45
45
-
nodejs_24
46
46
-
npmHooks.npmConfigHook
47
47
-
pkg-config
48
48
-
];
49
49
-
50
50
-
overrideModAttrs = oldAttrs: {
51
51
-
nativeBuildInputs = lib.filter (drv: drv != npmHooks.npmConfigHook) oldAttrs.nativeBuildInputs;
52
52
-
preBuild = null;
53
53
-
};
54
54
-
55
55
-
buildInputs = [
56
56
-
taglib
57
57
-
zlib
58
58
-
];
59
59
-
60
60
-
excludedPackages = [
61
61
-
"plugins"
62
62
-
];
63
63
-
64
64
-
ldflags = [
65
65
-
"-X github.com/navidrome/navidrome/consts.gitSha=${finalAttrs.src.rev}"
66
66
-
"-X github.com/navidrome/navidrome/consts.gitTag=v${finalAttrs.version}"
67
67
-
];
68
68
-
69
69
-
env = lib.optionalAttrs stdenv.cc.isGNU {
70
70
-
CGO_CFLAGS = toString [ "-Wno-return-local-addr" ];
71
71
-
# Workaround for https://github.com/golang/go/issues/77387
72
72
-
# Remove when go1.25.8 has been merged into release-25.11
73
73
-
CGO_CFLAGS_ALLOW = "--define-prefix";
74
74
-
};
75
75
-
76
76
-
postPatch = ''
77
77
-
patchShebangs ui/bin/update-workbox.sh
78
78
-
'';
79
79
-
80
80
-
preBuild = ''
81
81
-
make buildjs
82
82
-
'';
83
83
-
84
84
-
tags = [
85
85
-
"netgo"
86
86
-
];
87
87
-
88
88
-
nativeInstallCheckInputs = [ versionCheckHook ];
89
89
-
doInstallCheck = true;
90
90
-
91
91
-
postFixup = lib.optionalString ffmpegSupport ''
92
92
-
wrapProgram $out/bin/navidrome \
93
93
-
--prefix PATH : ${lib.makeBinPath [ ffmpeg-headless ]}
94
94
-
'';
95
95
-
96
96
-
passthru = {
97
97
-
tests.navidrome = nixosTests.navidrome;
98
98
-
updateScript = nix-update-script { };
99
99
-
};
100
100
-
101
101
-
meta = {
102
102
-
description = "Music Server and Streamer compatible with Subsonic/Airsonic";
103
103
-
mainProgram = "navidrome";
104
104
-
homepage = "https://www.navidrome.org/";
105
105
-
license = lib.licenses.gpl3Only;
106
106
-
sourceProvenance = with lib.sourceTypes; [ fromSource ];
107
107
-
maintainers = with lib.maintainers; [
108
108
-
aciceri
109
109
-
tebriel
110
110
-
];
111
111
-
# Broken on Darwin: sandbox-exec: pattern serialization length exceeds maximum (NixOS/nix#4119)
112
112
-
broken = stdenv.hostPlatform.isDarwin;
113
113
-
};
114
114
-
})