{ lib, namespace, ... }:
with lib;
{
  options.${namespace}.services.netbootxyz = {
    enable = mkEnableOption "netbootxyz network boot service";

    webPort = mkOption {
      type = types.port;
      default = 4000;
      description = "HTTP port for netbootxyz";
    };

    assetPort = mkOption {
      type = types.port;
      default = 4001;
      description = "NGINX server for hosting assets.";
    };

    tftpPort = mkOption {
      type = types.port;
      default = 69;
      description = "HTTPS port for netbootxyz";
    };

    openFirewall = mkOption {
      type = types.bool;
      default = true;
      description = "Whether to open firewall for netbootxyz";
    };

    dataDir = mkOption {
      type = types.str;
      default = "/media/nas/main/nix-app-data/netbootxyz";
      description = "Data directory for netbootxyz";
    };

    assetDir = mkOption {
      type = types.str;
      default = "/media/nas/main/isos";
      description = "Asset directory for netbootxyz";
    };
  };
}
