57 lines
1.4 KiB
Markdown
57 lines
1.4 KiB
Markdown
# NixOS Configurations
|
|
|
|
This note covers `21-nixos-configurations/`, which defines a full `nixosConfigurations` output.
|
|
|
|
---
|
|
|
|
## 1. Module Versus Configuration
|
|
|
|
`04-nixos-module/` shows a reusable module. This example shows the next layer up: a full system definition built with `nixpkgs.lib.nixosSystem`.
|
|
|
|
The local `module.nix` still matters, but now it is only one input into a named machine configuration.
|
|
|
|
---
|
|
|
|
## 2. What the Flake Exposes
|
|
|
|
The key output is:
|
|
|
|
- `nixosConfigurations.demo`
|
|
|
|
That is the shape other commands expect when you build, inspect, or deploy a NixOS system from a flake.
|
|
|
|
---
|
|
|
|
## 3. Why the Example Sets Boot and File System Options
|
|
|
|
Even a small NixOS configuration needs a few system-level settings to evaluate cleanly as a full configuration.
|
|
|
|
This example sets:
|
|
|
|
- a host name,
|
|
- a root file system,
|
|
- a boot loader device, and
|
|
- `system.stateVersion`.
|
|
|
|
Those settings are minimal, and they keep the example focused on flake structure rather than real machine setup.
|
|
|
|
---
|
|
|
|
## 4. What the Check Verifies
|
|
|
|
The check reads values from the evaluated configuration and compares them with the expected host name and `/etc` file contents.
|
|
|
|
That proves the configuration merges correctly without turning the example into a deployment workflow.
|
|
|
|
---
|
|
|
|
## 5. Commands to Try
|
|
|
|
```bash
|
|
cd 21-nixos-configurations
|
|
|
|
nix flake show
|
|
nix eval .#nixosConfigurations.demo.config.networking.hostName --raw
|
|
nix flake check
|
|
```
|