Skip to content

The Mental Model

Rather than build each machine from scratch, we compose a host from small, reusable pieces — much as Puppet does with its roles and profiles method. The result should make it intuitive to find, adjust and add settings for configuring your hosts.

OverviewOverview
How a host is composed
  1. A host is configured via a role, or directly via system modules, and optionally user-specific configuration.
  2. User-specific configuration is managed by Home Manager, which can take advantage of shared user-level configuration injected via concepts, to avoid repetition.
  3. Concepts are abstractions that pair system facets (NixOS modules) with user facets (Home Manager modules) under one reusable name, so system and user stay independent libraries. A role bundles those concepts into intuitive units.
  4. Secrets supply sensitive information as encrypted values, so authentication and network access can be configured safely.