1.6 KiB
1.6 KiB
Build ISO installer nix build .#nixosConfigurations.installer-iso.config.system.build.isoImage
Build kiosk system and push to Attic cache nix build .#nixosConfigurations.rhemawavekiosk.config.system.build.toplevel attic push kiosk ./result
Deploy to a specific kiosk over SSH nixos-rebuild switch --flake .#rhemawavekiosk --target-host root@
How these build paths work
The build commands follow the flake output attribute tree. Start with flake.nix:
nixosConfigurations = {
rhemawavekiosk = nixpkgs.lib.nixosSystem { ... }; # production machine
installer-iso = nixpkgs.lib.nixosSystem { ... }; # USB installer
};
Each nixosConfiguration is a full NixOS system. You access what you want to build
by walking the attribute tree with dots:
.#nixosConfigurations.<name>.config.system.build.<target>
│ │ │ │
│ │ │ └─ what to build:
│ │ │ toplevel = full system closure
│ │ │ isoImage = bootable ISO
│ │ │
│ │ └─ name from flake.nix (rhemawavekiosk, installer-iso)
│ │
│ └─ nixosConfigurations = standard flake output for NixOS systems
│
└─ .# = "this flake, attribute..."
You can explore what's available with: nix eval .#nixosConfigurations --apply builtins.attrNames nix eval .#nixosConfigurations.rhemawavekiosk.config.system.build --apply builtins.attrNames