{ config, lib, masterDomain, securityTemplates, ... }: let cfg = config.os.srv.uptime-kuma; in { options.os.srv.uptime-kuma = { enable = lib.mkEnableOption "enables uptime-kuma"; proxyConfig = lib.mkOption { type = lib.types.attrs; default = { }; }; }; config = lib.mkIf cfg.enable { services.uptime-kuma = { enable = true; appriseSupport = true; settings = { HOST = "127.0.0.1"; UPTIME_KUMA_DB_TYPE = "sqlite"; }; }; os.srv.uptime-kuma.proxyConfig = { "uptime-kuma.${masterDomain}" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://${config.os.core.network.ips.vm2-gateway}:3001"; extraConfig = securityTemplates.restrictToInternal; }; }; }; }; }