From 17524cc5b80293a28714dddcf4fbdcbc9ec0c81f Mon Sep 17 00:00:00 2001 From: Kat Inskip Date: Tue, 6 Aug 2024 11:47:56 -0700 Subject: [PATCH] feat(logistics): closer to a working prinper --- modules/system/exports/moonraker.nix | 36 ++++++++++++++++++++++++++++ nixos/klipper.nix | 3 +++ nixos/moonraker.nix | 1 + systems/logistics/default.nix | 2 ++ systems/logistics/nixos.nix | 1 + 5 files changed, 43 insertions(+) create mode 100644 modules/system/exports/moonraker.nix diff --git a/modules/system/exports/moonraker.nix b/modules/system/exports/moonraker.nix new file mode 100644 index 00000000..6ebe552d --- /dev/null +++ b/modules/system/exports/moonraker.nix @@ -0,0 +1,36 @@ +{ + lib, + gensokyo-zone, + ... +}: let + inherit (gensokyo-zone.lib) mkAlmostOptionDefault; + inherit (lib.modules) mkIf; +in { + config.exports.services.moonraker = {config, ...}: { + displayName = mkAlmostOptionDefault "Moonraker"; + id = mkAlmostOptionDefault "moonraker"; + nixos = { + serviceAttr = "moonraker"; + assertions = let + mkAssertion = f: nixosConfig: let + cfg = nixosConfig.services.moonraker; + in + f nixosConfig cfg; + in + mkIf config.enable [ + (mkAssertion (nixosConfig: cfg: { + assertion = config.ports.default.port == cfg.port; + message = "port mismatch"; + })) + ]; + }; + defaults.port.listen = mkAlmostOptionDefault "lan"; + ports = { + default = { + port = mkAlmostOptionDefault 7125; + protocol = "http"; + status.enable = mkAlmostOptionDefault true; + }; + }; + }; +} diff --git a/nixos/klipper.nix b/nixos/klipper.nix index 97093874..65c63821 100644 --- a/nixos/klipper.nix +++ b/nixos/klipper.nix @@ -2,6 +2,9 @@ _: { services = { klipper = { enable = true; + octoprintIntegration = true; + settings = { + }; }; }; } diff --git a/nixos/moonraker.nix b/nixos/moonraker.nix index e5006129..d942371a 100644 --- a/nixos/moonraker.nix +++ b/nixos/moonraker.nix @@ -3,6 +3,7 @@ _: { moonraker = { enable = true; address = "0.0.0.0"; + port = 7125; # it's the default but i'm specifying it anyway settings = { octoprint_compat = { }; history = { }; diff --git a/systems/logistics/default.nix b/systems/logistics/default.nix index 0d5b78ec..eca8afe3 100644 --- a/systems/logistics/default.nix +++ b/systems/logistics/default.nix @@ -12,6 +12,8 @@ _: { ports.stream.port = 41081; }; octoprint.enable = true; + nginx.enable = true; + moonraker.enable = true; }; }; network.networks = { diff --git a/systems/logistics/nixos.nix b/systems/logistics/nixos.nix index da32e45b..01e73f07 100644 --- a/systems/logistics/nixos.nix +++ b/systems/logistics/nixos.nix @@ -18,6 +18,7 @@ in { nixos.cameras.printer nixos.cameras.logistics-webcam nixos.octoprint + nixos.nginx nixos.klipper nixos.moonraker nixos.fluidd