Core capabilities of Den
mainDen provides a structured way to manage complex Nix infrastructure by addressing several key configuration challenges:
- Entity Declaration: Define hosts and users using a structured path:
den.hosts.<arch>.<hostName>.users.<userName>. - Schema Definition: Define common options/schemas for entities:
den.schema.host.options.vpn-group = lib.mkOption. - Global Features: Include features that affect all entities via
den.default.includes. - Cross-Entity Configuration: Allow a
Hostto affect itsUsers configuration and vice-versa. - Aspect Mixins: Mixin aspects from remote sources and enhance local ones using
den.namespace. - Community Namespacing: Provide features to the community using a common namespace (e.g.,
{ omfnix, ... }: { omfnix.niri.nixos = ...; }).