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 nixosModules and sometimes hmModules from 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.