Skip to content

Concepts and vocabulary

Basic vocabulary for administering a DNF network. The following pages refer to it without redefining it.

DNF is entirely based on Nix / NixOS 🡕. Key concepts to know before administering the fleet:

TermDescription
NixDeclarative package manager: you describe the desired state, Nix builds it identically.
NixOSThe Linux distribution built on Nix: the entire system (packages, services, network) is described in code.
DeclarativeYou declare what (the result), not how (the commands): the same code produces the same system.
ReproducibleSame inputs → same system, on any machine, at any time.
DerivationThe “recipe” for building an element (package, config), evaluated by Nix.
Store (/nix/store)Immutable repository of built artifacts, identified by a hash. Nothing gets overwritten.
FlakeNix project unit with pinned inputs (flake.lock): frozen and reproducible versions.
GenerationA complete, timestamped system state. Each deployment creates a new one.
RollbackRevert to a previous generation (at boot or hot): a failed deployment is never final.
Home Manager 🡕Declaratively manages a user’s environment (apps, desktop, dotfiles).
TermDescription
ZoneAutonomous subnet (home LAN, guest network, remote site…). /16 IP prefix, one gateway, its hosts.
NodeAny machine on the network: workstation, server, gateway, coordination server.
GatewayBorder node of a zone: router, firewall, DNS/DHCP, VPN client. One per zone, fixed IP <prefix>.1.1.
Coordination server (HCS)Public node that orchestrates the mesh VPN (Headscale) and hosts shared services between zones.
VPN (tailnet)The mesh that connects all zones and remote machines, via Headscale + Tailscale.
TermDescription
HostManaged NixOS node, declared in etc/config.yaml.
Host profileTemplate that defines a host’s role (gateway, server, desktop, laptop, portable, hcs, vm…). See Host profiles.
User profileHome Manager 🡕 environment for an account (nix-admin, normal, student, child…).
GroupsConnect users and hosts: they determine who can connect where.
ServicesSelf-hosted bricks activated per host (Nextcloud, Immich, Forgejo…). See Services.
FeaturesNon-service options activated per host (monitoring-node, nfs-client…).

Everything comes from a single declarative file, turned into NixOS configuration:

LocationRole
etc/config.yamlThe source of truth: network, zones, users, hosts, services.
dnf/The framework: modules, profiles, libraries. Reusable, rarely modified.
usr/The local project (writable): module and profile overrides, machines, secrets.
var/generated/Generated Nix code from etc/config.yaml (never edit manually).
doc/This documentation.
Diagram