{
  config,
  lib,
  ...
}:
let
  inherit (config.machine.navidrome)
    enable
    domain
    port
    folder
    ;
in
with lib;
mkIf enable {
  services.nginx.virtualHosts =
    with lib;
    mkIf (domain != null) {
      "${domain}" = {
        forceSSL = true;
        enableACME = true;
        locations."/" = {
          proxyPass = "http://[::1]:${toString port}";
          proxyWebsockets = true;
        };
      };
    };

  services.navidrome = {
    inherit enable;
    settings = {
      Address = "0.0.0.0";
      Port = port;
      MusicFolder = folder;
      DefaultTheme = "AMusic";
      EnableSharing = true;
    };
  };
}
