diff options
Diffstat (limited to 'nixos/modules/services/monitoring/sensu/dashboard.nix')
-rw-r--r-- | nixos/modules/services/monitoring/sensu/dashboard.nix | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/nixos/modules/services/monitoring/sensu/dashboard.nix b/nixos/modules/services/monitoring/sensu/dashboard.nix new file mode 100644 index 000000000000..dda38f2f8c43 --- /dev/null +++ b/nixos/modules/services/monitoring/sensu/dashboard.nix @@ -0,0 +1,112 @@ +{ config, lib, cfg }: + +{ + options = with lib; with types; { + enable = mkOption { + type = bool; + default = (cfg.role == "server"); + description = "Enable the dashboard"; + }; + + host = mkOption { + type = str; + default = "127.0.0.1"; + description = "The IP address on which Uchiwa will listen."; + }; + + port = mkOption { + type = int; + default = 3000; + description = "The port on which Uchiwa will listen."; + }; + + refresh = mkOption { + type = int; + default = 5; + description = "UI refresh interval."; + }; + + proxy = mkOption { + description = "Proxy traffic to/from the sensu dashboard."; + default = {}; + type = submodule { + options = { + enable = mkOption { + type = bool; + default = false; + description = "Enable proxy."; + }; + + path = mkOption { + type = str; + default = "/"; + description = "The path to the dashboard if behind a proxy."; + }; + + name = mkOption { + type = str; + default = config.networking.hostName; + description = "Hostname on which to repond."; + }; + + enableSSL = mkOption { + type = bool; + default = false; + description = "Force SSL."; + }; + }; + }; + }; + + users = mkOption { + description = "Users"; + default = {}; + type = listOf(submodule { + options = { + username = mkOption { + description = "User name."; + type = str; + }; + + password = mkOption { + description = "Password."; + type = str; + }; + + accessToken = mkOption { + default = ""; + description = "Access token."; + type = str; + }; + + readonly = mkOption { + default = false; + description = "Read only."; + type = bool; + }; + }; + }); + }; + + usersOptions = mkOption { + description = "Options relevant to all users"; + default = {}; + type = submodule { + options = { + + defaultTheme = mkOption { + type = enum [ "uchiwa-default" "uchiwa-dark" ]; + default = "uchiwa-dark"; + description = "The theme to use."; + }; + + logoUrl = mkOption { + type = str; + default = ""; + description = "The logo to use."; + }; + }; + }; + }; + }; +} |