diff --git a/modules/system/exports/fluidd.nix b/modules/system/exports/fluidd.nix index 5c88ca43..b78aa194 100644 --- a/modules/system/exports/fluidd.nix +++ b/modules/system/exports/fluidd.nix @@ -1,10 +1,12 @@ { + config, lib, gensokyo-zone, ... }: let inherit (gensokyo-zone.lib) mkAlmostOptionDefault; inherit (lib.modules) mkIf; + systemConfig = config; in { config.exports.services.fluidd = {config, ...}: { displayName = mkAlmostOptionDefault "Fluidd"; @@ -13,13 +15,13 @@ in { serviceAttr = "fluidd"; assertions = let mkAssertion = f: nixosConfig: let - cfg = nixosConfig.services.nginx; + cfg = nixosConfig.services.fluidd; in f nixosConfig cfg; in mkIf config.enable [ (mkAssertion (nixosConfig: cfg: { - assertion = config.ports.default.port == 80; + assertion = config.ports.default.port == nixosConfig.services.nginx.proxied.listenPort; message = "port mismatch"; })) ]; @@ -27,11 +29,11 @@ in { defaults.port.listen = mkAlmostOptionDefault "lan"; ports = { default = { - port = mkAlmostOptionDefault 80; + port = mkAlmostOptionDefault systemConfig.exports.services.nginx.ports.proxied.port; protocol = "http"; status = { enable = mkAlmostOptionDefault true; - gatus.client.network = mkAlmostOptionDefault "ip4"; + gatus.settings.headers.Host = mkAlmostOptionDefault "fluidd_internal"; }; prometheus.exporter.enable = mkAlmostOptionDefault true; }; diff --git a/modules/system/exports/moonraker.nix b/modules/system/exports/moonraker.nix index 6ebe552d..791b9c14 100644 --- a/modules/system/exports/moonraker.nix +++ b/modules/system/exports/moonraker.nix @@ -29,7 +29,10 @@ in { default = { port = mkAlmostOptionDefault 7125; protocol = "http"; - status.enable = mkAlmostOptionDefault true; + status = { + enable = mkAlmostOptionDefault true; + gatus.client.network = mkAlmostOptionDefault "ip4"; + }; }; }; }; diff --git a/nixos/fluidd.nix b/nixos/fluidd.nix index ca0d84b3..f8afe2ad 100644 --- a/nixos/fluidd.nix +++ b/nixos/fluidd.nix @@ -1,6 +1,7 @@ { config, gensokyo-zone, lib, ... }: let inherit (gensokyo-zone.lib) domain; inherit (lib.modules) mkIf mkDefault; + inherit (lib.strings) removePrefix; cfg = config.services.fluidd; serverName = "@fluidd_internal"; virtualHost = config.services.nginx.virtualHosts.${cfg.hostName}; @@ -22,6 +23,8 @@ in { }; ${serverName} = { # 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; # TODO: proxy.upstream = "fluidd-apiserver"; proxy.url = "http://fluidd-apiserver";