11 pixiecore = config.services.pixiecore;
12 pxeHostName = "nixos-pxe";
13 nixos = import (modulesPath + "/../lib/eval-config.nix") {
16 # Required to avoid infinite recursion
17 # when `inputs` is used in `imports`.
31 (modulesPath + "/installer/netboot/netboot-minimal.nix")
32 ../../nixos/default.nix
35 nixpkgs.hostPlatform = {
36 system = "x86_64-linux";
37 config = "x86_64-unknown-linux-gnu";
39 ## Some useful options for setting up a new system
40 services.getty.autologinUser = lib.mkForce "root";
41 users.users.root.openssh.authorizedKeys.keys =
42 hostConfig.users.users.julm.openssh.authorizedKeys.keys;
43 console.keyMap = "fr";
44 # hardware.video.hidpi.enable = true;
46 system.stateVersion = config.system.nixos.release;
49 hostName = pxeHostName;
50 #hosts = nixosConfigurations;
51 #host = nixosConfigurations.${hostName}._module.args;
53 nixpkgs.overlays = import ../../nixpkgs/overlays.nix args;
61 inputs.home-manager.nixosModules.home-manager
63 home-manager.useGlobalPkgs = true;
64 home-manager.useUserPackages = true;
65 home-manager.verbose = true;
66 #home-manager.force = true;
67 home-manager.backupFileExtension = "old";
68 home-manager.extraSpecialArgs = {
69 hostName = pxeHostName;
75 build = nixos.config.system.build;
78 services.pixiecore = {
85 kernel = "${build.kernel}/bzImage";
86 initrd = "${build.netbootRamdisk}/initrd";
87 cmdLine = "init=${build.toplevel}/init loglevel=4";
90 networking.nftables.ruleset = ''
93 udp dport 67 counter accept comment "Pixiecore/DHCP"
94 udp dport 69 counter accept comment "Pixiecore/TFTP"
95 udp dport 4011 counter accept comment "Pixiecore/ProxyDHCP"
96 tcp dport ${toString pixiecore.port} counter accept comment "Pixiecore"
97 tcp dport ${toString pixiecore.statusPort} counter accept comment "Pixiecore/status"
100 ip daddr 255.255.255.255 udp sport 67 udp dport 68 counter accept comment "Pixiecore"
101 meta l4proto udp counter accept comment "Pixiecore file sending"