- Read
README.mdfirst for a high-level understanding of what this repository manages. - Treat
flake.nixand files underhosts/andmodules/as the source of truth.
- NixOS host definitions:
hosts/*/default.nix - Flake outputs and host/home wiring:
flake.nix - System user policy (human vs bot account type):
modules/nixos/global/users.nix - Home Manager user modules:
modules/hm/users/*.nix - Bot Home Manager stack:
modules/hm/bot/*.nix
- Determine the current machine first:
hostname --short(fallback:hostnamectl --static)
- Verify that hostname exists in:
hosts/<hostname>/default.nixflake.nixoutputs for the command you plan to run
- Use explicit flake targets (for example
.#<hostname>or.#<user>@<hostname>), never guessed values.
- Do not hard-code hostnames, usernames, or role mappings in docs/scripts when they can be read from the source files above.
- If host/user context is unclear, inspect source files first and only then run Nix commands.