script | ||
secret | ||
shared | ||
system | ||
themes | ||
flake.lock | ||
flake.nix | ||
README.md | ||
secrets.nix | ||
switch.sh |
Infrastructure
Hello this is my new and improved Nix infrastructure.
General layout
There are three main directories:
secret
, which contains secretsshared
, which contains shared config modulessystem
, 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
).
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.
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.