aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-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/" ];
+ };
+}