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`.
 
  30             (modulesPath + "/installer/netboot/netboot-minimal.nix")
 
  31             ../../nixos/default.nix
 
  34             nixpkgs.hostPlatform = {
 
  35               system = "x86_64-linux";
 
  36               config = "x86_64-unknown-linux-gnu";
 
  38             ## Some useful options for setting up a new system
 
  39             services.getty.autologinUser = lib.mkForce "root";
 
  40             users.users.root.openssh.authorizedKeys.keys =
 
  41               hostConfig.users.users.julm.openssh.authorizedKeys.keys;
 
  42             console.keyMap = "fr";
 
  43             # hardware.video.hidpi.enable = true;
 
  45             system.stateVersion = config.system.nixos.release;
 
  48               hostName = pxeHostName;
 
  49               #hosts = nixosConfigurations;
 
  50               #host = nixosConfigurations.${hostName}._module.args;
 
  52             nixpkgs.overlays = import ../../nixpkgs/overlays.nix;
 
  60       inputs.home-manager.nixosModules.home-manager
 
  62         home-manager.useGlobalPkgs = true;
 
  63         home-manager.useUserPackages = true;
 
  64         home-manager.verbose = true;
 
  65         #home-manager.force = true;
 
  66         home-manager.backupFileExtension = "old";
 
  67         home-manager.extraSpecialArgs = {
 
  68           hostName = pxeHostName;
 
  74   build = nixos.config.system.build;
 
  77   services.pixiecore = {
 
  84     kernel = "${build.kernel}/bzImage";
 
  85     initrd = "${build.netbootRamdisk}/initrd";
 
  86     cmdLine = "init=${build.toplevel}/init loglevel=4";
 
  89   networking.nftables.ruleset = ''
 
  92         udp dport 67 counter accept comment "Pixiecore/DHCP"
 
  93         udp dport 69 counter accept comment "Pixiecore/TFTP"
 
  94         udp dport 4011 counter accept comment "Pixiecore/ProxyDHCP"
 
  95         tcp dport ${toString pixiecore.port} counter accept comment "Pixiecore"
 
  96         tcp dport ${toString pixiecore.statusPort} counter accept comment "Pixiecore/status"
 
  99         ip daddr 255.255.255.255 udp sport 67 udp dport 68 counter accept comment "Pixiecore"
 
 100         meta l4proto udp counter accept comment "Pixiecore file sending"