diff options
| author | Mel <mel@rnrd.eu> | 2025-04-16 19:25:17 +0200 |
|---|---|---|
| committer | Mel <mel@rnrd.eu> | 2025-04-17 02:01:41 +0200 |
| commit | 2c077263e033aaaa602d1eead55804325a492116 (patch) | |
| tree | c8afc315390210504796cb8b22875e0be32795ef /modules | |
| parent | 22eb149ed7e337fb49eca779e9f7b8fc1600d823 (diff) | |
| download | network-2c077263e033aaaa602d1eead55804325a492116.tar.zst network-2c077263e033aaaa602d1eead55804325a492116.zip | |
Initial Klipper+Moonraker service configuration
Signed-off-by: Mel <mel@rnrd.eu>
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/klipper.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/modules/klipper.nix b/modules/klipper.nix new file mode 100644 index 0000000..f23e66c --- /dev/null +++ b/modules/klipper.nix @@ -0,0 +1,73 @@ +{ me, pkgs, ... }: + +let + moonrakerPort = 7125; + klipperDir = "/srv/klipper"; + + serial = "/dev/ttyUSB0"; + + user = "klipper"; + group = "klipper"; + + klipper-config = pkgs.runCommand "klipper-printer.cfg" {} '' + cat \ + ${../assets/printer/printer.cfg} \ + ${../assets/printer/mainsail.cfg} \ + > $out + ''; +in +{ + users.users.klipper = { + isSystemUser = true; + description = "Klipper user"; + home = "/srv/klipper"; + inherit group; + extraGroups = [ "dialout" ]; # for serial access + }; + users.groups.klipper = {}; + + services = { + klipper = { + enable = true; + inherit user group; + + firmwares.mcu = { + enable = true; + enableKlipperFlash = true; + inherit serial; + configFile = ../assets/printer/firmware.cfg; + }; + + configFile = klipper-config; + # will change to just `configDir` in 25.05, + # update it then. + mutableConfig = true; + mutableConfigFolder = "${klipperDir}/config"; + }; + + moonraker = { + enable = true; + inherit user group; + + address = me.tailscale.ip; + port = moonrakerPort; + + stateDir = "${klipperDir}/moonraker"; + settings = { + authorization = { + cors_domains = [ + "https://app.fluidd.xyz" + "https://my.mainsail.xyz" + "https://*.rnrd.fyi" + ]; + + trusted_clients = [ + "10.0.0.0/8" + "127.0.0.1/24" + "192.168.178.0/24" + ]; + }; + }; + }; + }; +} |
