Hosts in the Dendritic Flake
Hosts are where reusable branches become concrete NixOS systems.
Up: cells
Down: desktop host composition | server host composition
What this node does
Each host file performs the same basic job.
- Select branch names.
- Validate that those branches exist.
- Collect
nixosModulesand sometimeshmModulesfrom the selected branches. - Add host-specific modules and hardware modules.
- Export a
config.flake.nixosConfigurations.<host>entry.
Composition pattern
selectedBranches = map (name: cfg.branches.${name}) selectedBranchNames;
branchNixosModules =
lib.concatMap (branchCfg: branchCfg.nixosModules) selectedBranches;
branchHmModules =
lib.concatMap (branchCfg: branchCfg.hmModules) selectedBranches;This is where the dendritic architecture converges. Leaves attach to branches, and hosts flatten the selected branches into actual module lists.
Why hosts are the convergence point
A branch should remain reusable. A host is allowed to be specific. That makes the host file the right place for machine role, hardware, bootstrapping choices, and whether Home Manager is part of the system.