{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"]; }