meta/architecture-docs/NixDefinitions.md
2024-06-20 09:38:44 -04:00

1.2 KiB

NixDefinitions

Where it's situated

NixConfigs

NixDefinitions is a layer of NixOS modules that exposes a simple interface of a few options (e.g. what services to run, domain names). Setting those options is the job of the layer above (NixConfigs).

NixOS Instances & Services

The combination of NixConfigs and NixDefintions produces a detailed description of the Services and other system setup that should be running on the NixOS instances.

NixOps

NixOps consumes the combined NixConfigs/NixDefintions configuration to know what the system should look like when deployed.

NixGuard

NixGuard compares the state of the NixConfigs/NixDefinitions to the running state to detect inconsistent state and either fix or report it.

Purpose

NixDefinitions...

  • simplifies the job of NixPanel, allowing it to not worry at all about how machines work, but simply produce a machine-readable translation of the options set by Administrators.
  • factors out the system configuration that is common between any Fediversity system, defining a simple set of parameters that might differ between them.