From NixOS
Generate Configuration
Assuming you're happy with your existing partition layout, you can generate a basic NixOS configuration for your system using:
flk up
This will make a new file hosts/up-$(hostname).nix
, which you can edit to
your liking.
You must then add a host to nixos.hosts
in flake.nix:
{
nixos.hosts = {
modules = hosts/NixOS.nix;
};
}
Make sure your i18n.defaultLocale
and time.timeZone
are set properly for
your region. Keep in mind that networking.hostName
will be automatically
set to the name of your host;
Now might be a good time to read the docs on suites and profiles and add or create any that you need.
Note:
While the
up
sub-command is provided as a convenience to quickly set up and install a "fresh" NixOS system on current hardware, committing these files is discouraged.They are placed in the git staging area automatically because they would be invisible to the flake otherwise, but it is best to move what you need from them directly into a host module of your own making, and commit that instead.
Installation
Once you're ready to deploy hosts/my-host.nix
:
flk my-host switch
This calls nixos-rebuild
with sudo to build and install your configuration.
Notes:
Instead of
switch
, you can passbuild
,test
,boot
, etc just as withnixos-rebuild
.It is convenient to have the template living at
/etc/nixos
so you can simplysudo nixos-rebuild switch
from anywhere on the system, but it is not required.