{ self, ... }: { flake.nixosModules.navidrome = { config, ... }: let cfg = config.hostOptions.server; in { imports = [ self.nixosModules.hostOptions self.nixosModules.nginx ]; services.navidrome = { enable = true; settings = { MusicFolder = "${cfg.mediaPath}/audio"; DataFolder = "${cfg.dataPath}/navidrome"; Address = "127.0.0.1"; Port = 4533; EnableTranscoding = true; EnableMediaDeletion = true; Scanner.PurgeMissing = "always"; EnableSharing = true; DefaultShareExpiration = "24h"; }; }; services.nginx.virtualHosts."music.${cfg.domain}" = { enableACME = true; forceSSL = true; locations."/".proxyPass = "http://127.0.0.1:4553"; }; }; }