44 lines
1.6 KiB
Markdown
44 lines
1.6 KiB
Markdown
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@<host>
|
|
|
|
---
|
|
|
|
## How these build paths work
|
|
|
|
The build commands follow the flake output attribute tree. Start with `flake.nix`:
|
|
|
|
```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
|