2021-02-14 03:38:20 +01:00
|
|
|
# From NixOS
|
|
|
|
|
|
|
|
## Generate Configuration
|
2021-04-23 01:10:02 +02:00
|
|
|
Assuming you're happy with your existing partition layout, you can generate a
|
2021-02-14 03:38:20 +01:00
|
|
|
basic NixOS configuration for your system using:
|
|
|
|
```sh
|
|
|
|
flk up
|
|
|
|
```
|
|
|
|
|
|
|
|
This will make a new file `hosts/up-$(hostname).nix`, which you can edit to
|
|
|
|
your liking.
|
|
|
|
|
|
|
|
Make sure your `i18n.defaultLocale` and `time.timeZone` are set properly for
|
|
|
|
your region. Keep in mind that `networking.hostName` with be automatically
|
|
|
|
set to the filename of your hosts file, so `hosts/my-host.nix` will have the
|
|
|
|
hostname `my-host`.
|
|
|
|
|
2021-04-19 04:26:27 +02:00
|
|
|
Now might be a good time to read the docs on [suites](../concepts/suites.md) and
|
|
|
|
[profiles](../concepts/profiles.md) and add or create any that you need.
|
2021-02-14 03:38:20 +01:00
|
|
|
|
|
|
|
> ##### _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
|
|
|
|
|
2021-04-23 01:10:02 +02:00
|
|
|
Once you're ready to deploy `hosts/my-host.nix`:
|
2021-02-14 03:38:20 +01:00
|
|
|
```sh
|
|
|
|
flk my-host switch
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
This calls `nixos-rebuild` with sudo to build and install your configuration.
|
|
|
|
|
|
|
|
> ##### _Notes:_
|
|
|
|
> - Instead of `switch`, you can pass `build`, `test`, `boot`, etc just as with
|
|
|
|
> `nixos-rebuild`.
|
|
|
|
>
|
|
|
|
> - It is convenient to have the template living at `/etc/nixos` so you can
|
|
|
|
> simply `sudo nixos-rebuild switch` from anywhere on the system, but it is
|
|
|
|
> not required.
|
|
|
|
|
|
|
|
|