mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
feat(klipper): deploy printer configs
This commit is contained in:
parent
e04d59016b
commit
8925b00445
10 changed files with 125 additions and 69 deletions
|
|
@ -1,31 +0,0 @@
|
||||||
[include fluidd.cfg]
|
|
||||||
[include ender3v3se.cfg]
|
|
||||||
[include macros.cfg]
|
|
||||||
|
|
||||||
[display_status]
|
|
||||||
|
|
||||||
[pause_resume]
|
|
||||||
|
|
||||||
[print_stats]
|
|
||||||
|
|
||||||
[virtual_sdcard]
|
|
||||||
path:/var/lib/moonraker/gcodes
|
|
||||||
|
|
||||||
[bed_mesh default]
|
|
||||||
version = 1
|
|
||||||
points =
|
|
||||||
-0.007500, 0.075000, 0.205000, 0.325000, 0.472500
|
|
||||||
-0.177500, -0.050000, 0.090000, 0.205000, 0.327500
|
|
||||||
-0.287500, -0.157500, -0.027500, 0.077500, 0.225000
|
|
||||||
-0.375000, -0.237500, -0.105000, 0.015000, 0.142500
|
|
||||||
-0.345000, -0.227500, -0.090000, 0.022500, 0.202500
|
|
||||||
x_count = 5
|
|
||||||
y_count = 5
|
|
||||||
mesh_x_pps = 2
|
|
||||||
mesh_y_pps = 2
|
|
||||||
algo = bicubic
|
|
||||||
tension = 0.2
|
|
||||||
min_x = 30.0
|
|
||||||
max_x = 207.0
|
|
||||||
min_y = 30.0
|
|
||||||
max_y = 215.48000000000002
|
|
||||||
53
modules/nixos/klipper.nix
Normal file
53
modules/nixos/klipper.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
gensokyo-zone,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (gensokyo-zone.lib) mapListToAttrs;
|
||||||
|
inherit (lib.options) mkOption mkEnableOption;
|
||||||
|
inherit (lib.modules) mkIf mkMerge mkAfter mkOptionDefault;
|
||||||
|
inherit (lib.attrsets) nameValuePair;
|
||||||
|
inherit (lib.strings) concatMapStrings escapeShellArg;
|
||||||
|
cfg = config.services.klipper;
|
||||||
|
includeFileName = "00-includes.cfg";
|
||||||
|
includeFile = pkgs.writeText "klipper-includes.cfg" (concatMapStrings (
|
||||||
|
path: "[include ${path}]\n"
|
||||||
|
)
|
||||||
|
cfg.configFiles);
|
||||||
|
mkIncludeSetting = path: nameValuePair "include ${path}" (mkOptionDefault {});
|
||||||
|
includeSettings = mapListToAttrs mkIncludeSetting (
|
||||||
|
if cfg.mutableConfig
|
||||||
|
then [includeFileName]
|
||||||
|
else cfg.configFiles
|
||||||
|
);
|
||||||
|
in {
|
||||||
|
options.services.klipper = with lib.types; {
|
||||||
|
quiet = mkEnableOption "more silent logs";
|
||||||
|
configFiles = mkOption {
|
||||||
|
type = listOf path;
|
||||||
|
default = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config.services.klipper = {
|
||||||
|
settings = mkMerge [
|
||||||
|
(mkIf (cfg.configFiles != []) includeSettings)
|
||||||
|
{
|
||||||
|
virtual_sdcard = mkIf cfg.mutableConfig {
|
||||||
|
path = mkOptionDefault "${cfg.mutableConfigFolder}/gcodes";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
config.systemd.services.klipper = mkIf cfg.enable {
|
||||||
|
serviceConfig = mkIf cfg.quiet {
|
||||||
|
LogFilterPatterns = [
|
||||||
|
''~INFO:root:Stats''
|
||||||
|
];
|
||||||
|
};
|
||||||
|
preStart = mkIf (cfg.configFiles != [] && cfg.mutableConfig) (mkAfter ''
|
||||||
|
ln -sfT ${includeFile} ${escapeShellArg "${cfg.mutableConfigFolder}/${includeFileName}"}
|
||||||
|
'');
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
gensokyo-zone,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (gensokyo-zone.lib) mkAlmostOptionDefault;
|
|
||||||
inherit (lib.modules) mkIf mkDefault;
|
|
||||||
inherit (config.services) moonraker octoprint;
|
|
||||||
cfg = config.services.klipper;
|
|
||||||
in {
|
|
||||||
services = {
|
|
||||||
klipper = {
|
|
||||||
enable = mkDefault true;
|
|
||||||
octoprintIntegration = mkIf octoprint.enable (mkDefault true);
|
|
||||||
user = mkIf moonraker.enable (mkAlmostOptionDefault "moonraker");
|
|
||||||
group = mkIf moonraker.enable (mkAlmostOptionDefault "moonraker");
|
|
||||||
mutableConfig = true;
|
|
||||||
mutableConfigFolder = mkIf moonraker.enable (mkDefault "${moonraker.stateDir}/config");
|
|
||||||
settings = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd = mkIf cfg.enable {
|
|
||||||
services.klipper = {
|
|
||||||
restartIfChanged = false;
|
|
||||||
serviceConfig.LogFilterPatterns = [
|
|
||||||
''~INFO:root:Stats''
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
25
nixos/klipper/default.nix
Normal file
25
nixos/klipper/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.modules) mkIf mkAfter mkDefault;
|
||||||
|
inherit (config.services) octoprint;
|
||||||
|
cfg = config.services.klipper;
|
||||||
|
in {
|
||||||
|
services = {
|
||||||
|
klipper = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
quiet = mkDefault true;
|
||||||
|
octoprintIntegration = mkIf octoprint.enable (mkDefault true);
|
||||||
|
configFiles = [
|
||||||
|
./printer.cfg
|
||||||
|
./ender3v3se.cfg
|
||||||
|
./macros.cfg
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.services.klipper = mkIf cfg.enable {
|
||||||
|
restartIfChanged = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -165,3 +165,22 @@ mesh_max:207,215.5
|
||||||
mesh_min:30,30
|
mesh_min:30,30
|
||||||
probe_count:5,5
|
probe_count:5,5
|
||||||
speed:120
|
speed:120
|
||||||
|
|
||||||
|
[bed_mesh fallback]
|
||||||
|
version = 1
|
||||||
|
points =
|
||||||
|
-0.007500, 0.075000, 0.205000, 0.325000, 0.472500
|
||||||
|
-0.177500, -0.050000, 0.090000, 0.205000, 0.327500
|
||||||
|
-0.287500, -0.157500, -0.027500, 0.077500, 0.225000
|
||||||
|
-0.375000, -0.237500, -0.105000, 0.015000, 0.142500
|
||||||
|
-0.345000, -0.227500, -0.090000, 0.022500, 0.202500
|
||||||
|
x_count = 5
|
||||||
|
y_count = 5
|
||||||
|
mesh_x_pps = 2
|
||||||
|
mesh_y_pps = 2
|
||||||
|
algo = bicubic
|
||||||
|
tension = 0.2
|
||||||
|
min_x = 30.0
|
||||||
|
max_x = 207.0
|
||||||
|
min_y = 30.0
|
||||||
|
max_y = 215.48000000000002
|
||||||
|
|
@ -48,7 +48,6 @@
|
||||||
#gcode:
|
#gcode:
|
||||||
|
|
||||||
[virtual_sdcard]
|
[virtual_sdcard]
|
||||||
path: ~/printer_data/gcodes
|
|
||||||
on_error_gcode: CANCEL_PRINT
|
on_error_gcode: CANCEL_PRINT
|
||||||
|
|
||||||
[pause_resume]
|
[pause_resume]
|
||||||
|
|
@ -5,14 +5,14 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkDefault;
|
inherit (lib.modules) mkIf mkBefore mkDefault;
|
||||||
inherit (gensokyo-zone.lib) domain;
|
inherit (gensokyo-zone.lib) mkAlmostOptionDefault domain;
|
||||||
inherit (config.services) klipper;
|
inherit (config.services) klipper;
|
||||||
cfg = config.services.moonraker;
|
cfg = config.services.moonraker;
|
||||||
in {
|
in {
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
moonraker_cfg = {
|
moonraker_cfg = {
|
||||||
sopsFile = ./secrets/moonraker.yaml;
|
sopsFile = mkDefault ../secrets/moonraker.yaml;
|
||||||
path = "${cfg.stateDir}/config/secrets.conf";
|
path = "${cfg.stateDir}/config/secrets.conf";
|
||||||
owner = cfg.user;
|
owner = cfg.user;
|
||||||
};
|
};
|
||||||
|
|
@ -60,9 +60,27 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
klipper = mkIf cfg.enable {
|
||||||
|
user = mkAlmostOptionDefault "moonraker";
|
||||||
|
group = mkAlmostOptionDefault "moonraker";
|
||||||
|
mutableConfig = true;
|
||||||
|
mutableConfigFolder = mkDefault "${cfg.stateDir}/config";
|
||||||
|
configFiles = mkBefore [./fluidd.cfg];
|
||||||
|
settings = {
|
||||||
|
print_stats = {};
|
||||||
|
pause_resume = {};
|
||||||
|
display_status = {};
|
||||||
|
virtual_sdcard = {
|
||||||
|
path = "${cfg.stateDir}/gcodes";
|
||||||
|
on_error_gcode = mkAlmostOptionDefault "CANCEL_PRINT";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
systemd.services.moonraker = mkIf cfg.enable {
|
systemd.services = mkIf cfg.enable {
|
||||||
restartIfChanged = false;
|
moonraker = {
|
||||||
|
restartIfChanged = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
networking.firewall = mkIf cfg.enable {
|
networking.firewall = mkIf cfg.enable {
|
||||||
interfaces.lan.allowedTCPPorts = [
|
interfaces.lan.allowedTCPPorts = [
|
||||||
5
nixos/klipper/printer.cfg
Normal file
5
nixos/klipper/printer.cfg
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
[display_status]
|
||||||
|
|
||||||
|
[pause_resume]
|
||||||
|
|
||||||
|
[print_stats]
|
||||||
|
|
@ -19,7 +19,6 @@ in {
|
||||||
nixos.cameras.printer
|
nixos.cameras.printer
|
||||||
nixos.cameras.logistics-webcam
|
nixos.cameras.logistics-webcam
|
||||||
nixos.klipper
|
nixos.klipper
|
||||||
nixos.moonraker
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue