{ config, lib, ... }: let cfg = config.services.navidrome; domain = "music.sorre.internal"; in { services.navidrome = { enable = true; settings = { MusicFolder = "/var/lib/navidrome/music"; DataFolder = "/var/lib/navidrome/data"; BaseUrl = "https://${domain}"; Port = 4533; Address = "127.0.0.1"; Backup = { # TODO: don't hardcode /var/lib, figure out how to use $STATE_DIRECTORY Path = "/var/lib/backups/navidrome"; Count = 5; Schedule = "0 0 * * *"; # every midnight }; }; }; environment.systemPackages = [ cfg.finalPackage ]; systemd.services.navidrome = lib.mkIf cfg.enable { serviceConfig.StateDirectory = lib.mkForce "navidrome backups/navidrome"; }; }