fix(monitoring): moonraker/fluidd status

This commit is contained in:
arcnmx 2024-08-11 15:16:30 -07:00
parent cd83456843
commit bd27fd4fcb
3 changed files with 13 additions and 5 deletions

View file

@ -1,10 +1,12 @@
{ {
config,
lib, lib,
gensokyo-zone, gensokyo-zone,
... ...
}: let }: let
inherit (gensokyo-zone.lib) mkAlmostOptionDefault; inherit (gensokyo-zone.lib) mkAlmostOptionDefault;
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
systemConfig = config;
in { in {
config.exports.services.fluidd = {config, ...}: { config.exports.services.fluidd = {config, ...}: {
displayName = mkAlmostOptionDefault "Fluidd"; displayName = mkAlmostOptionDefault "Fluidd";
@ -13,13 +15,13 @@ in {
serviceAttr = "fluidd"; serviceAttr = "fluidd";
assertions = let assertions = let
mkAssertion = f: nixosConfig: let mkAssertion = f: nixosConfig: let
cfg = nixosConfig.services.nginx; cfg = nixosConfig.services.fluidd;
in in
f nixosConfig cfg; f nixosConfig cfg;
in in
mkIf config.enable [ mkIf config.enable [
(mkAssertion (nixosConfig: cfg: { (mkAssertion (nixosConfig: cfg: {
assertion = config.ports.default.port == 80; assertion = config.ports.default.port == nixosConfig.services.nginx.proxied.listenPort;
message = "port mismatch"; message = "port mismatch";
})) }))
]; ];
@ -27,11 +29,11 @@ in {
defaults.port.listen = mkAlmostOptionDefault "lan"; defaults.port.listen = mkAlmostOptionDefault "lan";
ports = { ports = {
default = { default = {
port = mkAlmostOptionDefault 80; port = mkAlmostOptionDefault systemConfig.exports.services.nginx.ports.proxied.port;
protocol = "http"; protocol = "http";
status = { status = {
enable = mkAlmostOptionDefault true; enable = mkAlmostOptionDefault true;
gatus.client.network = mkAlmostOptionDefault "ip4"; gatus.settings.headers.Host = mkAlmostOptionDefault "fluidd_internal";
}; };
prometheus.exporter.enable = mkAlmostOptionDefault true; prometheus.exporter.enable = mkAlmostOptionDefault true;
}; };

View file

@ -29,7 +29,10 @@ in {
default = { default = {
port = mkAlmostOptionDefault 7125; port = mkAlmostOptionDefault 7125;
protocol = "http"; protocol = "http";
status.enable = mkAlmostOptionDefault true; status = {
enable = mkAlmostOptionDefault true;
gatus.client.network = mkAlmostOptionDefault "ip4";
};
}; };
}; };
}; };

View file

@ -1,6 +1,7 @@
{ config, gensokyo-zone, lib, ... }: let { config, gensokyo-zone, lib, ... }: let
inherit (gensokyo-zone.lib) domain; inherit (gensokyo-zone.lib) domain;
inherit (lib.modules) mkIf mkDefault; inherit (lib.modules) mkIf mkDefault;
inherit (lib.strings) removePrefix;
cfg = config.services.fluidd; cfg = config.services.fluidd;
serverName = "@fluidd_internal"; serverName = "@fluidd_internal";
virtualHost = config.services.nginx.virtualHosts.${cfg.hostName}; virtualHost = config.services.nginx.virtualHosts.${cfg.hostName};
@ -22,6 +23,8 @@ in {
}; };
${serverName} = { ${serverName} = {
# https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/web-apps/fluidd.nix # https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/web-apps/fluidd.nix
# XXX: non-@ host required for gatus to work
serverAliases = [ (removePrefix "@" serverName) ];
proxied.enable = true; proxied.enable = true;
# TODO: proxy.upstream = "fluidd-apiserver"; # TODO: proxy.upstream = "fluidd-apiserver";
proxy.url = "http://fluidd-apiserver"; proxy.url = "http://fluidd-apiserver";