nix-stuff/roles/server/navidrome.nix
2025-09-19 15:09:32 +02:00

31 lines
917 B
Nix

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