From 049c7d66df3caf2c909139690c2e4110806a8289 Mon Sep 17 00:00:00 2001 From: alexion Date: Sat, 12 Sep 2026 20:35:41 -0400 Subject: [PATCH] refactor(nixos): source navidrome mount paths from service --- configs/nixos/guests/navidrome.nix | 7 +++---- configs/nixos/modules/services/navidrome.nix | 20 +++++++++++++++++--- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/configs/nixos/guests/navidrome.nix b/configs/nixos/guests/navidrome.nix index 1e593b9..2451f65 100644 --- a/configs/nixos/guests/navidrome.nix +++ b/configs/nixos/guests/navidrome.nix @@ -4,8 +4,7 @@ ... }: let - dataDir = "/var/lib/navidrome"; - libraryDir = "/music"; + serviceConfig = config.containers.navidrome.config.modules.services.navidrome; envFile = "/run/secrets/navidrome.env"; lastfmApiKeySecret = "services/navidrome/lastfm/api-key"; lastfmSecretSecret = "services/navidrome/lastfm/secret"; @@ -44,13 +43,13 @@ in interior.modules.services.navidrome.enable = true; mounts = { - ${dataDir} = { + ${serviceConfig.dataDir} = { directory = config.guests.navidrome.dataPath; owner = config.registry."stable-uid".${config.networking.hostName}.navidrome; group = "storage"; mode = "2770"; }; - ${libraryDir} = { + ${serviceConfig.libraryDir} = { directory = config.guests.navidrome.libraryPath; owner = "root"; group = "storage"; diff --git a/configs/nixos/modules/services/navidrome.nix b/configs/nixos/modules/services/navidrome.nix index 045eb97..a65ecfe 100644 --- a/configs/nixos/modules/services/navidrome.nix +++ b/configs/nixos/modules/services/navidrome.nix @@ -6,6 +6,20 @@ { options.modules.services.navidrome = { enable = lib.mkEnableOption "Navidrome"; + + dataDir = lib.mkOption { + type = lib.types.str; + default = "/var/lib/navidrome"; + readOnly = true; + description = "Guest path where Navidrome stores its data folder."; + }; + + libraryDir = lib.mkOption { + type = lib.types.str; + default = "/music"; + readOnly = true; + description = "Guest path where Navidrome reads its library folder."; + }; }; config = lib.mkMerge [ @@ -18,7 +32,7 @@ isSystemUser = true; uid = config.registry."stable-uid".${config.networking.hostName}.navidrome; group = "storage"; - home = "/var/lib/navidrome"; + home = config.modules.services.navidrome.dataDir; }; services.navidrome = { @@ -30,8 +44,8 @@ settings = { Address = "0.0.0.0"; Port = 4533; - DataFolder = "/var/lib/navidrome"; - MusicFolder = "/music"; + DataFolder = config.modules.services.navidrome.dataDir; + MusicFolder = config.modules.services.navidrome.libraryDir; EnableSharing = true; }; };