2023-05-21 21:15:04 +02:00
|
|
|
# Infrastructure
|
|
|
|
|
|
|
|
Hello this is my new and improved Nix infrastructure.
|
|
|
|
|
|
|
|
## General layout
|
|
|
|
|
|
|
|
There are three main directories:
|
|
|
|
|
|
|
|
- `secret`, which contains secrets
|
|
|
|
- `shared`, which contains shared config modules
|
|
|
|
- `system`, which contains the configurations for specific machines
|
|
|
|
|
|
|
|
I have some machines that don't run NixOS so I have separated the home-manager stuff (`home`)
|
|
|
|
from the NixOS system-level stuff (`core`).
|
|
|
|
|
2023-06-06 16:19:47 +02:00
|
|
|
For example, `strawberry` is a NixOS machine, so for this machine, there is both a `home.nix`
|
|
|
|
for the home config of my user account, and a `core.nix` containing the system-level configuration
|
|
|
|
of the machine.
|
2023-05-21 21:15:04 +02:00
|
|
|
|
|
|
|
### Shared configuration
|
|
|
|
|
|
|
|
NixOS and home-manager modules are used to organize the config.
|
|
|
|
|
|
|
|
A lot of config is shared between machines. This is stored within the `shared/` directory,
|
|
|
|
under either `shared/core/` for system-level NixOS modules or `shared/home/` for home-manager
|
|
|
|
modules.
|
|
|
|
|
|
|
|
There's also a shared key used by the `nix` user of each machine, for which the public key
|
|
|
|
is in `shared/data/`. This key is used to let other machines serve as remote builders.
|