mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19: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
|
||||
probe_count:5,5
|
||||
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:
|
||||
|
||||
[virtual_sdcard]
|
||||
path: ~/printer_data/gcodes
|
||||
on_error_gcode: CANCEL_PRINT
|
||||
|
||||
[pause_resume]
|
||||
|
|
@ -5,14 +5,14 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf mkDefault;
|
||||
inherit (gensokyo-zone.lib) domain;
|
||||
inherit (lib.modules) mkIf mkBefore mkDefault;
|
||||
inherit (gensokyo-zone.lib) mkAlmostOptionDefault domain;
|
||||
inherit (config.services) klipper;
|
||||
cfg = config.services.moonraker;
|
||||
in {
|
||||
sops.secrets = {
|
||||
moonraker_cfg = {
|
||||
sopsFile = ./secrets/moonraker.yaml;
|
||||
sopsFile = mkDefault ../secrets/moonraker.yaml;
|
||||
path = "${cfg.stateDir}/config/secrets.conf";
|
||||
owner = cfg.user;
|
||||
};
|
||||
|
|
@ -60,10 +60,28 @@ 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 {
|
||||
moonraker = {
|
||||
restartIfChanged = false;
|
||||
};
|
||||
};
|
||||
networking.firewall = mkIf cfg.enable {
|
||||
interfaces.lan.allowedTCPPorts = [
|
||||
cfg.port
|
||||
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.logistics-webcam
|
||||
nixos.klipper
|
||||
nixos.moonraker
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue