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"