{ config, lib, ... }: { options.modules.services.navidrome = { enable = lib.mkEnableOption "Navidrome"; }; config = lib.mkMerge [ { registry."stable-uid".${config.networking.hostName}.navidrome = 20004; } (lib.mkIf config.modules.services.navidrome.enable { users.users.navidrome = { isSystemUser = true; uid = config.registry."stable-uid".${config.networking.hostName}.navidrome; group = "storage"; home = "/var/lib/navidrome"; }; services.navidrome = { enable = true; user = "navidrome"; group = "storage"; environmentFile = "/run/secrets/navidrome.env"; openFirewall = true; settings = { Address = "0.0.0.0"; Port = 4533; DataFolder = "/var/lib/navidrome"; MusicFolder = "/music"; EnableSharing = true; }; }; }) ]; }