feat: add declarative status page

This commit is contained in:
Luj 2025-01-18 00:25:18 +01:00
parent f3ba2a1c8b
commit 718128596f
Signed by: luj
GPG key ID: 6FC74C847011FD83
10 changed files with 101 additions and 40 deletions

View file

@ -45,6 +45,10 @@ in
);
inherit (cfg) user group;
};
machine.meta.probes.monitors."jackett.luj - IPv4".accepted_statuscodes = [ "400" ];
machine.meta.probes.monitors."jackett.luj - IPv6".accepted_statuscodes = [ "400" ];
}
(mkIf cfg.nginx.enable (mkVPNSubdomain cfg.nginx.subdomain port))

View file

@ -43,9 +43,27 @@
default = with profiles; [ base ];
};
monitors = mkOption {
default = { };
type = types.attrsOf (pkgs.formats.json { }).type;
probes = {
monitors = lib.mkOption {
type = types.attrsOf (pkgs.formats.json { }).type;
default = { };
};
tags = lib.mkOption {
type = types.attrsOf (pkgs.formats.json { }).type;
default = { };
};
notifications = lib.mkOption {
type = types.attrsOf (pkgs.formats.json { }).type;
default = { };
};
status_pages = lib.mkOption {
type = types.attrsOf (pkgs.formats.json { }).type;
default = { };
};
settings = lib.mkOption {
type = types.attrsOf (pkgs.formats.json { }).type;
default = { };
};
};
defaultInterface = mkOption {

View file

@ -59,7 +59,7 @@ in
'';
systemConfig = _: {
machine.meta.monitors = lib.mkIf (name != "default") {
machine.meta.probes.monitors = lib.mkIf (name != "default") {
"${name} - IPv4" = {
url = "https://${
if (hasSuffix "luj" name) then
@ -69,6 +69,7 @@ in
}";
type = "http";
accepted_statuscodes = [ "200-299" ];
notificationIDList = [ 1 ];
headers = ''
{
"Host": "${name}"
@ -84,6 +85,7 @@ in
}]";
type = "http";
accepted_statuscodes = [ "200-299" ];
notificationIDList = [ 1 ];
headers = ''
{
"Host": "${name}"