about summary refs log tree commit diff
path: root/nixpkgs/nixos/modules/services/audio/navidrome.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/services/audio/navidrome.nix')
-rw-r--r--nixpkgs/nixos/modules/services/audio/navidrome.nix37
1 files changed, 30 insertions, 7 deletions
diff --git a/nixpkgs/nixos/modules/services/audio/navidrome.nix b/nixpkgs/nixos/modules/services/audio/navidrome.nix
index ca1cd6ca43af..06d2d174a4df 100644
--- a/nixpkgs/nixos/modules/services/audio/navidrome.nix
+++ b/nixpkgs/nixos/modules/services/audio/navidrome.nix
@@ -6,8 +6,18 @@
 }:
 
 let
-  inherit (lib) mkEnableOption mkPackageOption mkOption maintainers;
-  inherit (lib.types) bool str;
+  inherit (lib)
+    mkEnableOption
+    mkPackageOption
+    mkOption
+    maintainers
+    ;
+  inherit (lib.types)
+    bool
+    port
+    str
+    submodule
+    ;
   cfg = config.services.navidrome;
   settingsFormat = pkgs.formats.json { };
 in
@@ -20,11 +30,24 @@ in
       package = mkPackageOption pkgs "navidrome" { };
 
       settings = mkOption {
-        type = settingsFormat.type;
-        default = {
-          Address = "127.0.0.1";
-          Port = 4533;
+        type = submodule {
+          freeformType = settingsFormat.type;
+
+          options = {
+            Address = mkOption {
+              default = "127.0.0.1";
+              description = "Address to run Navidrome on.";
+              type = str;
+            };
+
+            Port = mkOption {
+              default = 4533;
+              description = "Port to run Navidrome on.";
+              type = port;
+            };
+          };
         };
+        default = { };
         example = {
           MusicFolder = "/mnt/music";
         };
@@ -134,5 +157,5 @@ in
 
       networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.settings.Port ];
     };
-    meta.maintainers = with maintainers; [ nu-nu-ko ];
+  meta.maintainers = with maintainers; [ fsnkty ];
 }