diff --git a/External-Configuration-Modules.md b/External-Configuration-Modules.md new file mode 100644 index 0000000..18133d3 --- /dev/null +++ b/External-Configuration-Modules.md @@ -0,0 +1,33 @@ +# External Configuration Modules + +External modules allow system and user configuration to live in +separate Git repositories. + +## System Modules + +Used in `inventory.nix` to define complete host configurations. + +```nix +devices."server" = builtins.fetchGit { + url = "https://git.example.edu/org/server-config"; + rev = "abc123"; +}; +``` + +## User Modules + +Defined in `users.nix` and typically include both account options and +home-manager configuration. + +Each external user module may contain: +- `user.nix` (required) +- `nixos.nix` (optional) + +## Evaluation Order + +1. User NixOS modules +2. Host type modules +3. Inventory overrides +4. External system modules + +Later modules override earlier ones.