Skip to content

Getting Started

Try Den instantly without installing anything:

Terminal window
nix run github:vic/den

Create a fresh Den-based flake:

Terminal window
mkdir my-infra && cd my-infra
nix flake init -t github:vic/den
nix flake update den

This creates a project with:

flake.nix # inputs and entry point
modules/ # your Den modules go here
hosts.nix # host and user declarations
aspects/ # aspect definitions

The generated flake.nix imports Den and uses import-tree to load all modules:

{
outputs = inputs:
inputs.flake-parts.lib.mkFlake { inherit inputs; }
(inputs.import-tree ./modules);
inputs = {
den.url = "github:vic/den";
flake-aspects.url = "github:vic/flake-aspects";
import-tree.url = "github:vic/import-tree";
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
};
}

In modules/hosts.nix, declare your first host:

{
den.hosts.x86_64-linux.my-laptop.users.vic = { };
}

This single line creates:

  • A NixOS host named my-laptop on x86_64-linux
  • A user vic with Home-Manager support
  • Aspects den.aspects.my-laptop and den.aspects.vic
Terminal window
nixos-rebuild switch --flake .#my-laptop
TemplateDescription
defaultBatteries-included layout
minimalMinimalistic Den flake
noflakeNo flakes, no flake-parts
exampleExamples and patterns
ciFeature test suite
bogusBug reproduction
Terminal window
nix flake init -t github:vic/den#minimal