mirror of
https://github.com/divnix/digga.git
synced 2024-12-18 13:41:33 +03:00
44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
|
# Hosts
|
||
|
|
||
|
Nix flakes contain an output called `nixosConfigurations` declaring an
|
||
|
attribute set of valid NixOS systems. To simplify the management and creation
|
||
|
of these hosts, nixflk automatically imports every _.nix_ file inside this
|
||
|
directory to the mentioned attribute set, applying the projects defaults to
|
||
|
each. The only hard requirement is that the file contain a valid NixOS module.
|
||
|
|
||
|
As an example, a file `hosts/system.nix` will be available via the flake
|
||
|
output `nixosConfigurations.system`. You can have as many hosts as you want
|
||
|
and all of them will be automatically imported based on their name.
|
||
|
|
||
|
For each host, the configuration automatically sets the `networking.hostName`
|
||
|
attribute to the name of the file minus the _.nix_ extension. This is for
|
||
|
convenience, since `nixos-rebuild` automatically searches for a configuration
|
||
|
matching the current systems hostname if one is not specified explicitly.
|
||
|
|
||
|
It is recommended that the host modules only contain configuration information
|
||
|
specific to a particular piece of hardware. Anything reusable across machines
|
||
|
is best saved for [profile modules](../profiles).
|
||
|
|
||
|
This is a good place to import sets of profiles, called [suites](../suites),
|
||
|
that you intend to use on your machine.
|
||
|
|
||
|
Additionally, this is the perfect place to import anything you might need from
|
||
|
the [nixos-hardware][nixos-hardware] repository.
|
||
|
|
||
|
## Example
|
||
|
|
||
|
`hosts/librem.nix`:
|
||
|
```nix
|
||
|
{ suites, hardware, ... }:
|
||
|
{
|
||
|
imports = suites.laptop ++ [ hardware.purism-librem-13v3 ];
|
||
|
|
||
|
boot.loader.systemd-boot.enable = true;
|
||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||
|
|
||
|
fileSystems."/" = { device = "/dev/disk/by-label/nixos"; };
|
||
|
}
|
||
|
```
|
||
|
|
||
|
[nixos-hardware]: https://github.com/NixOS/nixos-hardware
|