diff --git a/roles/server/default.nix b/roles/server/default.nix index a9b5937..44f1b3c 100755 --- a/roles/server/default.nix +++ b/roles/server/default.nix @@ -20,5 +20,6 @@ ./immich.nix ./copyparty.nix ./beets.nix + ./navidrome.nix ]; } diff --git a/roles/server/navidrome.nix b/roles/server/navidrome.nix new file mode 100644 index 0000000..cab624f --- /dev/null +++ b/roles/server/navidrome.nix @@ -0,0 +1,31 @@ +{lib, ...}: { + services = rec { + navidrome = { + enable = true; + settings = { + BaseUrl = "https://${caddy.virtualHosts.navidrome.hostName}"; + Address = "unix:/run/navidrome/navidrome.socket"; + MusicFolder = "/srv/music"; + EnableStarRating = false; + # Better to download in copyparty / smb + EnableDownloads = false; + }; + }; + caddy.virtualHosts.navidrome = { + hostName = "music.everest.tailscale"; + extraConfig = '' + import tailscale + reverse_proxy ${lib.strings.replaceString ":" "/" navidrome.settings.Address} + ''; + }; + headscale.settings.dns.extra_records = [ + { + name = caddy.virtualHosts.navidrome.hostName; + type = "A"; + value = "100.100.0.1"; + } + ]; + }; + programs.rust-motd.settings.service_status.Navidrome = "navidrome"; + users.users.caddy.extraGroups = ["navidrome"]; +}