summary refs log tree commit diff
path: root/nixos/doc/manual/configuration/config-syntax.xml
blob: 5526dea247c0adf09774f0583ebd916bdcb0f02d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<chapter xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         version="5.0"
         xml:id="sec-configuration-syntax">
 <title>Configuration Syntax</title>
 <para>
  The NixOS configuration file
  <filename>/etc/nixos/configuration.nix</filename> is actually a <emphasis>Nix
  expression</emphasis>, which is the Nix package manager’s purely functional
  language for describing how to build packages and configurations. This means
  you have all the expressive power of that language at your disposal,
  including the ability to abstract over common patterns, which is very useful
  when managing complex systems. The syntax and semantics of the Nix language
  are fully described in the
  <link
xlink:href="https://nixos.org/nix/manual/#chap-writing-nix-expressions">Nix
  manual</link>, but here we give a short overview of the most important
  constructs useful in NixOS configuration files.
 </para>
 <xi:include href="config-file.xml" />
 <xi:include href="abstractions.xml" />
 <xi:include href="modularity.xml" />
 <xi:include href="summary.xml" />
</chapter>