nix-configs/instances/nemesis/services/navidrome.nix
Lucy Hochkamp 28dc0896b9
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
ci/woodpecker/cron/dependency-pr Pipeline was successful
navidrome
2025-12-04 00:21:41 +01:00

48 lines
1.2 KiB
Nix

{
config,
...
}:
let
host = "music.xyno.systems";
internalIp = "127.0.0.5";
in
{
services.kanidm.provision = {
groups = {
navidrome_users.members = [ "application_admins" ];
};
};
xyno.services.oauth2Proxy.hosts."${host}" = {
allowedGroups = [ "navidrome_users" ];
};
xyno.services.traefik.simpleProxy = {
navidrome = {
inherit host;
inherit (config.xyno.services.oauth2Proxy.hosts.${host}) middlewares;
internal = "http://${internalIp}:4533";
};
navidrome-subsonic = {
inherit host;
rule = "Host(`${host}`) && PathPrefix(`/rest/`) && !Query(`c`, `NavidromeUI`)";
internal = "http://${internalIp}:4533";
};
};
services.navidrome = {
enable = true;
settings = {
Address = internalIp;
MusicFolder = "/data/media/beets/music";
ReverseProxyWhitelist = "127.0.0.1/32";
BaseUrl = "https://${host}";
Prometheus = {
Enabled = false; # TODO
};
ReverseProxyUserHeader = "X-Auth-Request-Preferred-Username";
Scanner = {
Schedule = "45 0 * * *"; # daily at 0:45
};
};
};
xyno.impermanence.directories = [ "/var/lib/navidrome" ];
}