Personal-use NixOS configuration

Drop navidrome package in favor of upstream

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