Nix flake-based dotfiles using snowfall-lib for module organization.
systems/<arch>-<platform>/<hostname>/- NixOS and darwin system configurationshomes/<arch>-<platform>/<user>@<hostname>/- Home Manager configurationsmodules/<context>/<name>/- Reusable modulespackages/<name>/- Custom packagesoverlays/<name>/- Nixpkgs overlays
# Build NixOS system
nixos-rebuild switch --flake .#<hostname>
# Build darwin system
darwin-rebuild switch --flake .#<hostname>
# Build home configuration
home-manager switch --flake .#<user>@<hostname>- Create directory:
systems/<arch>-<platform>/<hostname>/ - Copy hardware config from installer to
./hardware-configuration.nix - Create
default.nix:
{ lib, inputs, ... }:
{
imports = [
./hardware-configuration.nix
];
networking.hostName = "<hostname>";
}- Create directory:
homes/<arch>-<platform>/<user>@<hostname>/ - Create
default.nixwith home configuration
If new host needs access to secrets, update the comment in systems/x86_64-install-iso/minimal/default.nix with the age key.
Don't commit the secret dummy
Build the installer ISO:
nix build '.#install-isoConfigurations.minimal'Perform traditional Nixos installation. If secrets are needed, copy the /etc/orlando-age-key.txt into the new user's ~/.config/sops/age-key.txt.