# Usenet binary client.
{ config, lib, ... }:
let
  cfg = config.my.services.sabnzbd;

  domain = config.networking.domain;
  sabnzbdDomain = "sabnzbd.${domain}";
  port = 9090; # NOTE: not declaratively set...
in
{
  options.my.services.sabnzbd = with lib; {
    enable = mkEnableOption "SABnzbd binary news reader";
  };

  config = lib.mkIf cfg.enable {
    services.sabnzbd = {
      enable = true;
      group = "media";
    };

    services.nginx.virtualHosts."${sabnzbdDomain}" = {
      forceSSL = true;
      useACMEHost = domain;

      locations."/".proxyPass = "http://localhost:${toString port}";
    };
  };
}