about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--hosts/tahoe/default.nix1
-rw-r--r--hosts/tahoe/services.nix5
-rw-r--r--modules/services/default.nix1
-rw-r--r--modules/services/navidrome/default.nix55
-rw-r--r--profiles/music-server.nix40
5 files changed, 41 insertions, 61 deletions
diff --git a/hosts/tahoe/default.nix b/hosts/tahoe/default.nix
index 4a5e054..17d0ae4 100644
--- a/hosts/tahoe/default.nix
+++ b/hosts/tahoe/default.nix
@@ -13,6 +13,7 @@ in
     "${self}/profiles/acme.nix"
     "${self}/profiles/nginx.nix"
     "${self}/profiles/unifi.nix"
+    "${self}/profiles/music-server.nix"
     "${self}/profiles/hardware/amd.nix"
   ];
 
diff --git a/hosts/tahoe/services.nix b/hosts/tahoe/services.nix
index b684275..94ee6bb 100644
--- a/hosts/tahoe/services.nix
+++ b/hosts/tahoe/services.nix
@@ -11,11 +11,6 @@ in
       enable = true;
       publicShares = [ "/data/fast/music" "/data/fast/videos" ];
     };
-    navidrome = {
-      enable = true;
-      vhostName = "music.${config.homelab.domain}";
-      musicFolder = "/data/fast/music";
-    };
     monitoring = {
       prometheus = {
         enable = true;
diff --git a/modules/services/default.nix b/modules/services/default.nix
index 5d25eab..3d24cbb 100644
--- a/modules/services/default.nix
+++ b/modules/services/default.nix
@@ -7,7 +7,6 @@
     ./cgit
     ./gitolite
     ./monitoring
-    ./navidrome
     ./samba
     ./sendsms
     ./syncthing
diff --git a/modules/services/navidrome/default.nix b/modules/services/navidrome/default.nix
deleted file mode 100644
index 1c8243a..0000000
--- a/modules/services/navidrome/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ config, pkgs, lib, ... }:
-let
-  cfg = config.my.services.navidrome;
-  secrets = config.age.secrets;
-in
-{
-  options.my.services.navidrome = with lib; {
-    enable = mkEnableOption "Navidrome Music Server";
-    vhostName = mkOption {
-      type = types.str;
-      example = "music.fcuny.net";
-      description = "Name for the virtual host";
-    };
-    musicFolder = mkOption {
-      type = types.str;
-      example = "/data/fast/music";
-      description = "Music folder";
-    };
-  };
-
-  config = lib.mkIf cfg.enable {
-    services.navidrome = {
-      enable = true;
-      settings = {
-        MusicFolder = cfg.musicFolder;
-      };
-    };
-
-    services.nginx.virtualHosts."${cfg.vhostName}" = {
-      forceSSL = true;
-      useACMEHost = config.homelab.domain;
-      listen = [
-        {
-          addr = "192.168.6.40";
-          port = 443;
-          ssl = true;
-        }
-        {
-          addr = "192.168.6.40";
-          port = 80;
-          ssl = false;
-        }
-      ];
-      locations."/" = {
-        proxyPass = "http://127.0.0.1:4533";
-        proxyWebsockets = true;
-      };
-    };
-
-    my.services.backup = {
-      paths = [ "/var/lib/navidrome" ];
-      exclude = [ "/var/lib/navidrome/cache/" ];
-    };
-  };
-}
diff --git a/profiles/music-server.nix b/profiles/music-server.nix
new file mode 100644
index 0000000..9ed665b
--- /dev/null
+++ b/profiles/music-server.nix
@@ -0,0 +1,40 @@
+{ config, pkgs, lib, ... }:
+let
+  musicFolder = "/data/fast/music";
+  vhostName = "music.${config.homelab.domain}";
+in
+{
+  # https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/audio/navidrome.nix
+  services.navidrome = {
+    enable = true;
+    settings = {
+      MusicFolder = musicFolder;
+    };
+  };
+
+  services.nginx.virtualHosts."${vhostName}" = {
+    forceSSL = true;
+    useACMEHost = config.homelab.domain;
+    listen = [
+      {
+        addr = "192.168.6.40";
+        port = 443;
+        ssl = true;
+      }
+      {
+        addr = "192.168.6.40";
+        port = 80;
+        ssl = false;
+      }
+    ];
+    locations."/" = {
+      proxyPass = "http://127.0.0.1:4533";
+      proxyWebsockets = true;
+    };
+  };
+
+  my.services.backup = {
+    paths = [ systemd.services.navidrome.WorkingDirectory ];
+    exclude = [ "${systemd.services.navidrome.WorkingDirectory}/cache/" ];
+  };
+}