{ config, lib, masterDomain, securityTemplates, ... }: let cfg = config.os.srv.netdata; in { options.os.srv.netdata = { enable = lib.mkEnableOption "enables netdata monitoring"; proxyConfig = lib.mkOption { type = lib.types.attrs; default = { }; }; }; config = lib.mkIf cfg.enable { services.netdata = { enable = true; config.web."bind to" = "127.0.0.1"; python = { enable = true; recommendedPythonPackages = true; }; }; os.srv.netdata.proxyConfig = { "netdata.${masterDomain}" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://${config.os.core.network.ips.host}:19999"; extraConfig = securityTemplates.restrictToInternal; }; }; }; }; }