Skip to content

Entity Schema Reference

import { Aside } from ‘@astrojs/starlight/components’;

den.hosts.<system>.<name> = { ... };
OptionTypeDefaultDescription
namestrattr nameHost configuration name
hostNamestrnameNetwork hostname
systemstrparent keyPlatform (e.g., x86_64-linux)
classstrguessednixos, darwin, or systemManager
aspectstrnameMain aspect name
descriptionstrautoHuman-readable description
usersattrset{}User definitions
instantiatefunctionautoBuilder function
intoAttrstrautoFlake output attribute
mainModulemoduleautoResolved NixOS/Darwin module
freeformanythingCustom attributes
System suffixDefault classDefault intoAttr
*-linuxnixosnixosConfigurations
*-darwindarwindarwinConfigurations
ClassDefault function
nixosinputs.nixpkgs.lib.nixosSystem
darwininputs.darwin.lib.darwinSystem
systemManagerinputs.system-manager.lib.makeSystemConfig
den.hosts.<system>.<host>.users.<name> = { ... };
OptionTypeDefaultDescription
namestrattr nameUser configuration name
userNamestrnameOS account name
classstrhomeManagerHome management class
aspectstrnameMain aspect name
freeformanythingCustom attributes
den.homes.<system>.<name> = { ... };
OptionTypeDefaultDescription
namestrattr nameHome configuration name
userNamestrnameUser account name
systemstrparent keyPlatform system
classstrhomeManagerHome management class
aspectstrnameMain aspect name
descriptionstrautoHuman-readable description
pkgsattrsetautoNixpkgs instance
instantiatefunctionautoBuilder function
intoAttrstrhomeConfigurationsFlake output attribute
mainModulemoduleautoResolved HM module
freeformanythingCustom attributes

Base modules applied to all entities of a type:

den.base.conf = { ... }: { }; # hosts + users + homes
den.base.host = { host, ... }: { };
den.base.user = { user, ... }: { };
den.base.home = { home, ... }: { };

den.base.conf is automatically imported by host, user, and home.

Namespace storage for aspect libraries:

den.ful.<namespace>.<name> = aspect;

Populated via inputs.den.namespace.

Flake output for sharing namespaces:

flake.denful.<namespace> = den.ful.<namespace>;