···9999100100 optionsNix = builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList);
101101102102- pythonMD =
103103- let
104104- self = (pkgs.python3Minimal.override {
105105- inherit self;
106106- includeSiteCustomize = true;
107107- });
108108- in self.withPackages (p: [ p.mistune_2_0 ]);
109109-110102in rec {
111103 inherit optionsNix;
112104···124116125117 optionsJSON = pkgs.runCommand "options.json"
126118 { meta.description = "List of NixOS options in JSON format";
127127- buildInputs = [ pkgs.brotli pythonMD ];
119119+ buildInputs = [
120120+ pkgs.brotli
121121+ (let
122122+ self = (pkgs.python3Minimal.override {
123123+ inherit self;
124124+ includeSiteCustomize = true;
125125+ });
126126+ in self.withPackages (p: [ p.mistune_2_0 ]))
127127+ ];
128128 options = builtins.toFile "options.json"
129129 (builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix));
130130- # convert markdown to docbook in its own derivation to cache the
131131- # conversion results. the conversion is surprisingly expensive.
132132- baseJSON =
133133- if baseOptionsJSON != null
134134- then
135135- pkgs.runCommand "base-json-md-converted" {
136136- buildInputs = [ pythonMD ];
137137- } ''
138138- python ${./mergeJSON.py} ${baseOptionsJSON} <(echo '{}') > $out
139139- ''
140140- else null;
141130 }
142131 ''
143132 # Export list of options in different format.
···154143 else ''
155144 python ${./mergeJSON.py} \
156145 ${lib.optionalString warningsAreErrors "--warnings-are-errors"} \
157157- $baseJSON $options \
146146+ ${baseOptionsJSON} $options \
158147 > $dst/options.json
159148 ''
160149 }
+120-117
nixos/lib/make-options-doc/mergeJSON.py
···33import sys
44from typing import Any, Dict, List
5566+# for MD conversion
77+import mistune
88+import re
99+from xml.sax.saxutils import escape, quoteattr
1010+611JSON = Dict[str, Any]
712813class Key:
···4146 result[opt.name] = opt.value
4247 return result
43484444-# converts in-place!
4545-def convertMD(options: Dict[str, Any]) -> str:
4646- import mistune
4747- import re
4848- from xml.sax.saxutils import escape, quoteattr
4949+admonitions = {
5050+ '.warning': 'warning',
5151+ '.important': 'important',
5252+ '.note': 'note'
5353+}
5454+class Renderer(mistune.renderers.BaseRenderer):
5555+ def _get_method(self, name):
5656+ try:
5757+ return super(Renderer, self)._get_method(name)
5858+ except AttributeError:
5959+ def not_supported(*args, **kwargs):
6060+ raise NotImplementedError("md node not supported yet", name, args, **kwargs)
6161+ return not_supported
49625050- admonitions = {
5151- '.warning': 'warning',
5252- '.important': 'important',
5353- '.note': 'note'
5454- }
5555- class Renderer(mistune.renderers.BaseRenderer):
5656- def __init__(self, path):
5757- self.path = path
5858- def _get_method(self, name):
5959- try:
6060- return super(Renderer, self)._get_method(name)
6161- except AttributeError:
6262- def not_supported(*args, **kwargs):
6363- raise NotImplementedError("md node not supported yet", self.path, name, args, **kwargs)
6464- return not_supported
6363+ def text(self, text):
6464+ return escape(text)
6565+ def paragraph(self, text):
6666+ return text + "\n\n"
6767+ def newline(self):
6868+ return "<literallayout>\n</literallayout>"
6969+ def codespan(self, text):
7070+ return f"<literal>{escape(text)}</literal>"
7171+ def block_code(self, text, info=None):
7272+ info = f" language={quoteattr(info)}" if info is not None else ""
7373+ return f"<programlisting{info}>\n{escape(text)}</programlisting>"
7474+ def link(self, link, text=None, title=None):
7575+ tag = "link"
7676+ if link[0:1] == '#':
7777+ if text == "":
7878+ tag = "xref"
7979+ attr = "linkend"
8080+ link = quoteattr(link[1:])
8181+ else:
8282+ # try to faithfully reproduce links that were of the form <link href="..."/>
8383+ # in docbook format
8484+ if text == link:
8585+ text = ""
8686+ attr = "xlink:href"
8787+ link = quoteattr(link)
8888+ return f"<{tag} {attr}={link}>{text}</{tag}>"
8989+ def list(self, text, ordered, level, start=None):
9090+ if ordered:
9191+ raise NotImplementedError("ordered lists not supported yet")
9292+ return f"<itemizedlist>\n{text}\n</itemizedlist>"
9393+ def list_item(self, text, level):
9494+ return f"<listitem><para>{text}</para></listitem>\n"
9595+ def block_text(self, text):
9696+ return text
9797+ def emphasis(self, text):
9898+ return f"<emphasis>{text}</emphasis>"
9999+ def strong(self, text):
100100+ return f"<emphasis role=\"strong\">{text}</emphasis>"
101101+ def admonition(self, text, kind):
102102+ if kind not in admonitions:
103103+ raise NotImplementedError(f"admonition {kind} not supported yet")
104104+ tag = admonitions[kind]
105105+ # we don't keep whitespace here because usually we'll contain only
106106+ # a single paragraph and the original docbook string is no longer
107107+ # available to restore the trailer.
108108+ return f"<{tag}><para>{text.rstrip()}</para></{tag}>"
109109+ def block_quote(self, text):
110110+ return f"<blockquote><para>{text}</para></blockquote>"
111111+ def command(self, text):
112112+ return f"<command>{escape(text)}</command>"
113113+ def option(self, text):
114114+ return f"<option>{escape(text)}</option>"
115115+ def file(self, text):
116116+ return f"<filename>{escape(text)}</filename>"
117117+ def manpage(self, page, section):
118118+ title = f"<refentrytitle>{escape(page)}</refentrytitle>"
119119+ vol = f"<manvolnum>{escape(section)}</manvolnum>"
120120+ return f"<citerefentry>{title}{vol}</citerefentry>"
651216666- def text(self, text):
6767- return escape(text)
6868- def paragraph(self, text):
6969- return text + "\n\n"
7070- def newline(self):
7171- return "<literallayout>\n</literallayout>"
7272- def codespan(self, text):
7373- return f"<literal>{escape(text)}</literal>"
7474- def block_code(self, text, info=None):
7575- info = f" language={quoteattr(info)}" if info is not None else ""
7676- return f"<programlisting{info}>\n{escape(text)}</programlisting>"
7777- def link(self, link, text=None, title=None):
7878- if link[0:1] == '#':
7979- attr = "linkend"
8080- link = quoteattr(link[1:])
8181- else:
8282- # try to faithfully reproduce links that were of the form <link href="..."/>
8383- # in docbook format
8484- if text == link:
8585- text = ""
8686- attr = "xlink:href"
8787- link = quoteattr(link)
8888- return f"<link {attr}={link}>{text}</link>"
8989- def list(self, text, ordered, level, start=None):
9090- if ordered:
9191- raise NotImplementedError("ordered lists not supported yet")
9292- return f"<itemizedlist>\n{text}\n</itemizedlist>"
9393- def list_item(self, text, level):
9494- return f"<listitem><para>{text}</para></listitem>\n"
9595- def block_text(self, text):
9696- return text
9797- def emphasis(self, text):
9898- return f"<emphasis>{text}</emphasis>"
9999- def strong(self, text):
100100- return f"<emphasis role=\"strong\">{text}</emphasis>"
101101- def admonition(self, text, kind):
102102- if kind not in admonitions:
103103- raise NotImplementedError(f"admonition {kind} not supported yet")
104104- tag = admonitions[kind]
105105- # we don't keep whitespace here because usually we'll contain only
106106- # a single paragraph and the original docbook string is no longer
107107- # available to restore the trailer.
108108- return f"<{tag}><para>{text.rstrip()}</para></{tag}>"
109109- def block_quote(self, text):
110110- return f"<blockquote><para>{text}</para></blockquote>"
111111- def command(self, text):
112112- return f"<command>{escape(text)}</command>"
113113- def option(self, text):
114114- return f"<option>{escape(text)}</option>"
115115- def file(self, text):
116116- return f"<filename>{escape(text)}</filename>"
117117- def manpage(self, page, section):
118118- title = f"<refentrytitle>{escape(page)}</refentrytitle>"
119119- vol = f"<manvolnum>{escape(section)}</manvolnum>"
120120- return f"<citerefentry>{title}{vol}</citerefentry>"
122122+ def finalize(self, data):
123123+ return "".join(data)
121124122122- def finalize(self, data):
123123- return "".join(data)
124124-125125- plugins = []
126126-125125+def p_command(md):
127126 COMMAND_PATTERN = r'\{command\}`(.*?)`'
128128- def command(md):
129129- def parse(self, m, state):
130130- return ('command', m.group(1))
131131- md.inline.register_rule('command', COMMAND_PATTERN, parse)
132132- md.inline.rules.append('command')
133133- plugins.append(command)
127127+ def parse(self, m, state):
128128+ return ('command', m.group(1))
129129+ md.inline.register_rule('command', COMMAND_PATTERN, parse)
130130+ md.inline.rules.append('command')
134131132132+def p_file(md):
135133 FILE_PATTERN = r'\{file\}`(.*?)`'
136136- def file(md):
137137- def parse(self, m, state):
138138- return ('file', m.group(1))
139139- md.inline.register_rule('file', FILE_PATTERN, parse)
140140- md.inline.rules.append('file')
141141- plugins.append(file)
134134+ def parse(self, m, state):
135135+ return ('file', m.group(1))
136136+ md.inline.register_rule('file', FILE_PATTERN, parse)
137137+ md.inline.rules.append('file')
142138139139+def p_option(md):
143140 OPTION_PATTERN = r'\{option\}`(.*?)`'
144144- def option(md):
145145- def parse(self, m, state):
146146- return ('option', m.group(1))
147147- md.inline.register_rule('option', OPTION_PATTERN, parse)
148148- md.inline.rules.append('option')
149149- plugins.append(option)
141141+ def parse(self, m, state):
142142+ return ('option', m.group(1))
143143+ md.inline.register_rule('option', OPTION_PATTERN, parse)
144144+ md.inline.rules.append('option')
150145146146+def p_manpage(md):
151147 MANPAGE_PATTERN = r'\{manpage\}`(.*?)\((.+?)\)`'
152152- def manpage(md):
153153- def parse(self, m, state):
154154- return ('manpage', m.group(1), m.group(2))
155155- md.inline.register_rule('manpage', MANPAGE_PATTERN, parse)
156156- md.inline.rules.append('manpage')
157157- plugins.append(manpage)
148148+ def parse(self, m, state):
149149+ return ('manpage', m.group(1), m.group(2))
150150+ md.inline.register_rule('manpage', MANPAGE_PATTERN, parse)
151151+ md.inline.rules.append('manpage')
158152153153+def p_admonition(md):
159154 ADMONITION_PATTERN = re.compile(r'^::: \{([^\n]*?)\}\n(.*?)^:::\n', flags=re.MULTILINE|re.DOTALL)
160160- def admonition(md):
161161- def parse(self, m, state):
162162- return {
163163- 'type': 'admonition',
164164- 'children': self.parse(m.group(2), state),
165165- 'params': [ m.group(1) ],
166166- }
167167- md.block.register_rule('admonition', ADMONITION_PATTERN, parse)
168168- md.block.rules.append('admonition')
169169- plugins.append(admonition)
155155+ def parse(self, m, state):
156156+ return {
157157+ 'type': 'admonition',
158158+ 'children': self.parse(m.group(2), state),
159159+ 'params': [ m.group(1) ],
160160+ }
161161+ md.block.register_rule('admonition', ADMONITION_PATTERN, parse)
162162+ md.block.rules.append('admonition')
163163+164164+md = mistune.create_markdown(renderer=Renderer(), plugins=[
165165+ p_command, p_file, p_option, p_manpage, p_admonition
166166+])
170167168168+# converts in-place!
169169+def convertMD(options: Dict[str, Any]) -> str:
171170 def convertString(path: str, text: str) -> str:
172172- rendered = mistune.markdown(text, renderer=Renderer(path), plugins=plugins)
173173- # keep trailing spaces so we can diff the generated XML to check for conversion bugs.
174174- return rendered.rstrip() + text[len(text.rstrip()):]
171171+ try:
172172+ rendered = md(text)
173173+ # keep trailing spaces so we can diff the generated XML to check for conversion bugs.
174174+ return rendered.rstrip() + text[len(text.rstrip()):]
175175+ except:
176176+ print(f"error in {path}")
177177+ raise
175178176179 def optionIs(option: Dict[str, Any], key: str, typ: str) -> bool:
177180 if key not in option: return False
+3-4
nixos/modules/config/i18n.nix
···7171 ))
7272 '';
7373 example = ["en_US.UTF-8/UTF-8" "nl_NL.UTF-8/UTF-8" "nl_NL/ISO-8859-1"];
7474- description = ''
7474+ description = lib.mdDoc ''
7575 List of locales that the system should support. The value
7676- <literal>"all"</literal> means that all locales supported by
7676+ `"all"` means that all locales supported by
7777 Glibc will be installed. A full list of supported locales
7878- can be found at <link
7979- xlink:href="https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/SUPPORTED"/>.
7878+ can be found at <https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/SUPPORTED>.
8079 '';
8180 };
8281
+3-3
nixos/modules/config/resolvconf.nix
···8383 dnsExtensionMechanism = mkOption {
8484 type = types.bool;
8585 default = true;
8686- description = ''
8787- Enable the <code>edns0</code> option in <filename>resolv.conf</filename>. With
8888- that option set, <code>glibc</code> supports use of the extension mechanisms for
8686+ description = lib.mdDoc ''
8787+ Enable the `edns0` option in {file}`resolv.conf`. With
8888+ that option set, `glibc` supports use of the extension mechanisms for
8989 DNS (EDNS) specified in RFC 2671. The most popular user of that feature is DNSSEC,
9090 which does not work without it.
9191 '';
+2-2
nixos/modules/config/shells-environment.nix
···109109110110 environment.shellAliases = mkOption {
111111 example = { l = null; ll = "ls -l"; };
112112- description = ''
112112+ description = lib.mdDoc ''
113113 An attribute set that maps aliases (the top level attribute names in
114114 this option) to command strings or directly to build outputs. The
115115 aliases are added to all users' shells.
116116- Aliases mapped to <code>null</code> are ignored.
116116+ Aliases mapped to `null` are ignored.
117117 '';
118118 type = with types; attrsOf (nullOr (either str path));
119119 };
+5-5
nixos/modules/config/system-environment.nix
···16161717 environment.sessionVariables = mkOption {
1818 default = {};
1919- description = ''
1919+ description = lib.mdDoc ''
2020 A set of environment variables used in the global environment.
2121 These variables will be set by PAM early in the login process.
2222···2525 colon characters.
26262727 Note, due to limitations in the PAM format values may not
2828- contain the <literal>"</literal> character.
2828+ contain the `"` character.
29293030 Also, these variables are merged into
3131- <xref linkend="opt-environment.variables"/> and it is
3131+ [](#opt-environment.variables) and it is
3232 therefore not possible to use PAM style variables such as
3333- <code>@{HOME}</code>.
3333+ `@{HOME}`.
3434 '';
3535 type = with types; attrsOf (either str (listOf str));
3636 apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else v);
···5858 Also, these variables are merged into
5959 <xref linkend="opt-environment.profileRelativeEnvVars"/> and it is
6060 therefore not possible to use PAM style variables such as
6161- <code>@{HOME}</code>.
6161+ <literal>@{HOME}</literal>.
6262 '';
6363 };
6464
+19-20
nixos/modules/config/users-groups.nix
···100100 isNormalUser = mkOption {
101101 type = types.bool;
102102 default = false;
103103- description = ''
103103+ description = lib.mdDoc ''
104104 Indicates whether this is an account for a “real” user. This
105105- automatically sets <option>group</option> to
106106- <literal>users</literal>, <option>createHome</option> to
107107- <literal>true</literal>, <option>home</option> to
108108- <filename>/home/<replaceable>username</replaceable></filename>,
109109- <option>useDefaultShell</option> to <literal>true</literal>,
110110- and <option>isSystemUser</option> to
111111- <literal>false</literal>.
112112- Exactly one of <literal>isNormalUser</literal> and
113113- <literal>isSystemUser</literal> must be true.
105105+ automatically sets {option}`group` to
106106+ `users`, {option}`createHome` to
107107+ `true`, {option}`home` to
108108+ {file}`/home/«username»`,
109109+ {option}`useDefaultShell` to `true`,
110110+ and {option}`isSystemUser` to
111111+ `false`.
112112+ Exactly one of `isNormalUser` and
113113+ `isSystemUser` must be true.
114114 '';
115115 };
116116···151151 pamMount = mkOption {
152152 type = with types; attrsOf str;
153153 default = {};
154154- description = ''
154154+ description = lib.mdDoc ''
155155 Attributes for user's entry in
156156- <filename>pam_mount.conf.xml</filename>.
157157- Useful attributes might include <code>path</code>,
158158- <code>options</code>, <code>fstype</code>, and <code>server</code>.
159159- See <link
160160- xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />
156156+ {file}`pam_mount.conf.xml`.
157157+ Useful attributes might include `path`,
158158+ `options`, `fstype`, and `server`.
159159+ See <http://pam-mount.sourceforge.net/pam_mount.conf.5.html>
161160 for more information.
162161 '';
163162 };
···167166 default = pkgs.shadow;
168167 defaultText = literalExpression "pkgs.shadow";
169168 example = literalExpression "pkgs.bashInteractive";
170170- description = ''
169169+ description = lib.mdDoc ''
171170 The path to the user's shell. Can use shell derivations,
172172- like <literal>pkgs.bashInteractive</literal>. Don’t
171171+ like `pkgs.bashInteractive`. Don’t
173172 forget to enable your shell in
174174- <literal>programs</literal> if necessary,
175175- like <code>programs.zsh.enable = true;</code>.
173173+ `programs` if necessary,
174174+ like `programs.zsh.enable = true;`.
176175 '';
177176 };
178177
···3232 devices = mkOption {
3333 type = types.listOf types.str;
3434 default = [ "0a07" "c222" "c225" "c227" "c251" ];
3535- description = ''
3535+ description = lib.mdDoc ''
3636 List of USB device ids supported by g15daemon.
3737- </para>
3838- <para>
3737+3938 You most likely do not need to change this.
4039 '';
4140 };
+1-1
nixos/modules/hardware/tuxedo-keyboard.nix
···13131414 To configure the driver, pass the options to the <option>boot.kernelParams</option> configuration.
1515 There are several parameters you can change. It's best to check at the source code description which options are supported.
1616- You can find all the supported parameters at: <link xlink:href="https://github.com/tuxedocomputers/tuxedo-keyboard#kernelparam" />
1616+ You can find all the supported parameters at: <link xlink:href="https://github.com/tuxedocomputers/tuxedo-keyboard#kernelparam"/>
17171818 In order to use the <literal>custom</literal> lighting with the maximumg brightness and a color of <literal>0xff0a0a</literal> one would put pass <option>boot.kernelParams</option> like this:
1919
+6-6
nixos/modules/hardware/video/uvcvideo/default.nix
···3434 packages = mkOption {
3535 type = types.listOf types.path;
3636 example = literalExpression "[ pkgs.tiscamera ]";
3737- description = ''
3838- List of packages containing <command>uvcvideo</command> dynamic controls
3737+ description = lib.mdDoc ''
3838+ List of packages containing {command}`uvcvideo` dynamic controls
3939 rules. All files found in
4040- <filename><replaceable>pkg</replaceable>/share/uvcdynctrl/data</filename>
4040+ {file}`«pkg»/share/uvcdynctrl/data`
4141 will be included.
42424343- Note that these will serve as input to the <command>libwebcam</command>
4444- package which through its own <command>udev</command> rule will register
4545- the dynamic controls from specified packages to the <command>uvcvideo</command>
4343+ Note that these will serve as input to the {command}`libwebcam`
4444+ package which through its own {command}`udev` rule will register
4545+ the dynamic controls from specified packages to the {command}`uvcvideo`
4646 driver.
4747 '';
4848 apply = map getBin;
+1-1
nixos/modules/installer/cd-dvd/iso-image.nix
···618618 This will be directly appended (without whitespace) to the NixOS version
619619 string, like for example if it is set to <literal>XXX</literal>:
620620621621- <para><literal>NixOS 99.99-pre666XXX</literal></para>
621621+ <literal>NixOS 99.99-pre666XXX</literal>
622622 '';
623623 };
624624
+22-22
nixos/modules/misc/nixpkgs.nix
···119119 example = literalExpression "import <nixpkgs> {}";
120120 description = ''
121121 If set, the pkgs argument to all NixOS modules is the value of
122122- this option, extended with <code>nixpkgs.overlays</code>, if
123123- that is also set. Either <code>nixpkgs.crossSystem</code> or
124124- <code>nixpkgs.localSystem</code> will be used in an assertion
122122+ this option, extended with <literal>nixpkgs.overlays</literal>, if
123123+ that is also set. Either <literal>nixpkgs.crossSystem</literal> or
124124+ <literal>nixpkgs.localSystem</literal> will be used in an assertion
125125 to check that the NixOS and Nixpkgs architectures match. Any
126126- other options in <code>nixpkgs.*</code>, notably <code>config</code>,
126126+ other options in <literal>nixpkgs.*</literal>, notably <literal>config</literal>,
127127 will be ignored.
128128129129 If unset, the pkgs argument to all NixOS modules is determined
···132132 The default value imports the Nixpkgs source files
133133 relative to the location of this NixOS module, because
134134 NixOS and Nixpkgs are distributed together for consistency,
135135- so the <code>nixos</code> in the default value is in fact a
136136- relative path. The <code>config</code>, <code>overlays</code>,
137137- <code>localSystem</code>, and <code>crossSystem</code> come
135135+ so the <literal>nixos</literal> in the default value is in fact a
136136+ relative path. The <literal>config</literal>, <literal>overlays</literal>,
137137+ <literal>localSystem</literal>, and <literal>crossSystem</literal> come
138138 from this option's siblings.
139139140140 This option can be used by applications like NixOps to increase
141141 the performance of evaluation, or to create packages that depend
142142 on a container that should be built with the exact same evaluation
143143 of Nixpkgs, for example. Applications like this should set
144144- their default value using <code>lib.mkDefault</code>, so
144144+ their default value using <literal>lib.mkDefault</literal>, so
145145 user-provided configuration can override it without using
146146- <code>lib</code>.
146146+ <literal>lib</literal>.
147147148148 Note that using a distinct version of Nixpkgs with NixOS may
149149 be an unexpected source of problems. Use this option with care.
···162162 details, see the Nixpkgs documentation.) It allows you to set
163163 package configuration options.
164164165165- Ignored when <code>nixpkgs.pkgs</code> is set.
165165+ Ignored when <literal>nixpkgs.pkgs</literal> is set.
166166 '';
167167 };
168168···188188 The first argument should be used for finding dependencies, and
189189 the second should be used for overriding recipes.
190190191191- If <code>nixpkgs.pkgs</code> is set, overlays specified here
191191+ If <literal>nixpkgs.pkgs</literal> is set, overlays specified here
192192 will be applied after the overlays that were already present
193193- in <code>nixpkgs.pkgs</code>.
193193+ in <literal>nixpkgs.pkgs</literal>.
194194 '';
195195 };
196196···205205 description = ''
206206 Specifies the platform where the NixOS configuration will run.
207207208208- To cross-compile, set also <code>nixpkgs.buildPlatform</code>.
208208+ To cross-compile, set also <literal>nixpkgs.buildPlatform</literal>.
209209210210- Ignored when <code>nixpkgs.pkgs</code> is set.
210210+ Ignored when <literal>nixpkgs.pkgs</literal> is set.
211211 '';
212212 };
213213···230230 or if you're building machines, you can set this to match your
231231 development system and/or build farm.
232232233233- Ignored when <code>nixpkgs.pkgs</code> is set.
233233+ Ignored when <literal>nixpkgs.pkgs</literal> is set.
234234 '';
235235 };
236236···253253 use the old options.
254254255255 Specifies the platform on which NixOS should be built. When
256256- <code>nixpkgs.crossSystem</code> is unset, it also specifies
256256+ <literal>nixpkgs.crossSystem</literal> is unset, it also specifies
257257 the platform <emphasis>for</emphasis> which NixOS should be
258258 built. If this option is unset, it defaults to the platform
259259 type of the machine where evaluation happens. Specifying this
···261261 deployment, or when building virtual machines. See its
262262 description in the Nixpkgs manual for more details.
263263264264- Ignored when <code>nixpkgs.pkgs</code> or <code>hostPlatform</code> is set.
264264+ Ignored when <literal>nixpkgs.pkgs</literal> or <literal>hostPlatform</literal> is set.
265265 '';
266266 };
267267···279279280280 Specifies the platform for which NixOS should be
281281 built. Specify this only if it is different from
282282- <code>nixpkgs.localSystem</code>, the platform
282282+ <literal>nixpkgs.localSystem</literal>, the platform
283283 <emphasis>on</emphasis> which NixOS should be built. In other
284284 words, specify this to cross-compile NixOS. Otherwise it
285285 should be set as null, the default. See its description in the
286286 Nixpkgs manual for more details.
287287288288- Ignored when <code>nixpkgs.pkgs</code> or <code>hostPlatform</code> is set.
288288+ Ignored when <literal>nixpkgs.pkgs</literal> or <literal>hostPlatform</literal> is set.
289289 '';
290290 };
291291···316316 with a recently generated <literal>hardware-configuration.nix</literal>.
317317318318 Specifies the Nix platform type on which NixOS should be built.
319319- It is better to specify <code>nixpkgs.localSystem</code> instead.
319319+ It is better to specify <literal>nixpkgs.localSystem</literal> instead.
320320 <programlisting>
321321 {
322322 nixpkgs.system = ..;
···328328 nixpkgs.localSystem.system = ..;
329329 }
330330 </programlisting>
331331- See <code>nixpkgs.localSystem</code> for more information.
331331+ See <literal>nixpkgs.localSystem</literal> for more information.
332332333333- Ignored when <code>nixpkgs.pkgs</code>, <code>nixpkgs.localSystem</code> or <code>nixpkgs.hostPlatform</code> is set.
333333+ Ignored when <literal>nixpkgs.pkgs</literal>, <literal>nixpkgs.localSystem</literal> or <literal>nixpkgs.hostPlatform</literal> is set.
334334 '';
335335 };
336336 };
+2-2
nixos/modules/programs/adb.nix
···1111 enable = mkOption {
1212 default = false;
1313 type = types.bool;
1414- description = ''
1414+ description = lib.mdDoc ''
1515 Whether to configure system to use Android Debug Bridge (adb).
1616 To grant access to a user, it must be part of adbusers group:
1717- <code>users.users.alice.extraGroups = ["adbusers"];</code>
1717+ `users.users.alice.extraGroups = ["adbusers"];`
1818 '';
1919 };
2020 };
+3-4
nixos/modules/programs/firejail.nix
···6969 };
7070 }
7171 '';
7272- description = ''
7272+ description = lib.mdDoc ''
7373 Wrap the binaries in firejail and place them in the global path.
7474- </para>
7575- <para>
7474+7675 You will get file collisions if you put the actual application binary in
7776 the global environment (such as by adding the application package to
7878- <code>environment.systemPackages</code>), and applications started via
7777+ `environment.systemPackages`), and applications started via
7978 .desktop files are not wrapped if they specify the absolute path to the
8079 binary.
8180 '';
+2-2
nixos/modules/programs/gphoto2.nix
···1111 enable = mkOption {
1212 default = false;
1313 type = types.bool;
1414- description = ''
1414+ description = lib.mdDoc ''
1515 Whether to configure system to use gphoto2.
1616 To grant digital camera access to a user, the user must
1717 be part of the camera group:
1818- <code>users.users.alice.extraGroups = ["camera"];</code>
1818+ `users.users.alice.extraGroups = ["camera"];`
1919 '';
2020 };
2121 };
+1-1
nixos/modules/programs/kdeconnect.nix
···88 Note that it will open the TCP and UDP port from
99 1714 to 1764 as they are needed for it to function properly.
1010 You can use the <option>package</option> to use
1111- <code>gnomeExtensions.gsconnect</code> as an alternative
1111+ <literal>gnomeExtensions.gsconnect</literal> as an alternative
1212 implementation if you use Gnome.
1313 '';
1414 package = mkOption {
+2-2
nixos/modules/programs/neovim.nix
···7272 };
7373 }
7474 '';
7575- description = ''
7575+ description = lib.mdDoc ''
7676 Generate your init file from your list of plugins and custom commands.
7777- Neovim will then be wrapped to load <command>nvim -u /nix/store/<replaceable>hash</replaceable>-vimrc</command>
7777+ Neovim will then be wrapped to load {command}`nvim -u /nix/store/«hash»-vimrc`
7878 '';
7979 };
8080
+9-9
nixos/modules/programs/nncp.nix
···3333 secrets = mkOption {
3434 type = with types; listOf str;
3535 example = [ "/run/keys/nncp.hjson" ];
3636- description = ''
3636+ description = lib.mdDoc ''
3737 A list of paths to NNCP configuration files that should not be
3838 in the Nix store. These files are layered on top of the values at
3939- <xref linkend="opt-programs.nncp.settings"/>.
3939+ [](#opt-programs.nncp.settings).
4040 '';
4141 };
42424343 settings = mkOption {
4444 type = settingsFormat.type;
4545- description = ''
4545+ description = lib.mdDoc ''
4646 NNCP configuration, see
4747- <link xlink:href="http://www.nncpgo.org/Configuration.html"/>.
4747+ <http://www.nncpgo.org/Configuration.html>.
4848 At runtime these settings will be overlayed by the contents of
4949- <xref linkend="opt-programs.nncp.secrets"/> into the file
5050- <literal>${nncpCfgFile}</literal>. Node keypairs go in
5151- <literal>secrets</literal>, do not specify them in
5252- <literal>settings</literal> as they will be leaked into
5353- <literal>/nix/store</literal>!
4949+ [](#opt-programs.nncp.secrets) into the file
5050+ `${nncpCfgFile}`. Node keypairs go in
5151+ `secrets`, do not specify them in
5252+ `settings` as they will be leaked into
5353+ `/nix/store`!
5454 '';
5555 default = { };
5656 };
+1-1
nixos/modules/programs/ssh.nix
···9595 default = "";
9696 description = ''
9797 Extra configuration text prepended to <filename>ssh_config</filename>. Other generated
9898- options will be added after a <code>Host *</code> pattern.
9898+ options will be added after a <literal>Host *</literal> pattern.
9999 See <citerefentry><refentrytitle>ssh_config</refentrytitle><manvolnum>5</manvolnum></citerefentry>
100100 for help.
101101 '';
+1-1
nixos/modules/programs/sway.nix
···3939 Sway, the i3-compatible tiling Wayland compositor. You can manually launch
4040 Sway by executing "exec sway" on a TTY. Copy /etc/sway/config to
4141 ~/.config/sway/config to modify the default configuration. See
4242- <link xlink:href="https://github.com/swaywm/sway/wiki" /> and
4242+ <link xlink:href="https://github.com/swaywm/sway/wiki"/> and
4343 "man 5 sway" for more information'';
44444545 wrapperFeatures = mkOption {
+3-3
nixos/modules/programs/turbovnc.nix
···1515 ensureHeadlessSoftwareOpenGL = mkOption {
1616 type = types.bool;
1717 default = false;
1818- description = ''
1818+ description = lib.mdDoc ''
1919 Whether to set up NixOS such that TurboVNC's built-in software OpenGL
2020 implementation works.
21212222- This will enable <option>hardware.opengl.enable</option> so that OpenGL
2222+ This will enable {option}`hardware.opengl.enable` so that OpenGL
2323 programs can find Mesa's llvmpipe drivers.
24242525- Setting this option to <code>false</code> does not mean that software
2525+ Setting this option to `false` does not mean that software
2626 OpenGL won't work; it may still work depending on your system
2727 configuration.
2828
+4-4
nixos/modules/security/acme/default.nix
···504504 reloadServices = mkOption {
505505 type = types.listOf types.str;
506506 inherit (defaultAndText "reloadServices" []) default defaultText;
507507- description = ''
508508- The list of systemd services to call <code>systemctl try-reload-or-restart</code>
507507+ description = lib.mdDoc ''
508508+ The list of systemd services to call `systemctl try-reload-or-restart`
509509 on.
510510 '';
511511 };
···581581 Turns on the OCSP Must-Staple TLS extension.
582582 Make sure you know what you're doing! See:
583583 <itemizedlist>
584584- <listitem><para><link xlink:href="https://blog.apnic.net/2019/01/15/is-the-web-ready-for-ocsp-must-staple/" /></para></listitem>
585585- <listitem><para><link xlink:href="https://blog.hboeck.de/archives/886-The-Problem-with-OCSP-Stapling-and-Must-Staple-and-why-Certificate-Revocation-is-still-broken.html" /></para></listitem>
584584+ <listitem><para><link xlink:href="https://blog.apnic.net/2019/01/15/is-the-web-ready-for-ocsp-must-staple/"/></para></listitem>
585585+ <listitem><para><link xlink:href="https://blog.hboeck.de/archives/886-The-Problem-with-OCSP-Stapling-and-Must-Staple-and-why-Certificate-Revocation-is-still-broken.html"/></para></listitem>
586586 </itemizedlist>
587587 '';
588588 };
+1-1
nixos/modules/security/dhparams.nix
···61616262 The value is the size (in bits) of the DH params to generate. The
6363 generated DH params path can be found in
6464- <literal>config.security.dhparams.params.<replaceable>name</replaceable>.path</literal>.
6464+ <literal>config.security.dhparams.params.«name».path</literal>.
65656666 <note><para>The name of the DH params is taken as being the name of
6767 the service it serves and the params will be generated before the
+30-30
nixos/modules/security/doas.nix
···6262 wheelNeedsPassword = mkOption {
6363 type = with types; bool;
6464 default = true;
6565- description = ''
6666- Whether users of the <code>wheel</code> group must provide a password to
6767- run commands as super user via <command>doas</command>.
6565+ description = lib.mdDoc ''
6666+ Whether users of the `wheel` group must provide a password to
6767+ run commands as super user via {command}`doas`.
6868 '';
6969 };
70707171 extraRules = mkOption {
7272 default = [];
7373- description = ''
7373+ description = lib.mdDoc ''
7474 Define specific rules to be set in the
7575- <filename>/etc/doas.conf</filename> file. More specific rules should
7575+ {file}`/etc/doas.conf` file. More specific rules should
7676 come after more general ones in order to yield the expected behavior.
7777- You can use <code>mkBefore</code> and/or <code>mkAfter</code> to ensure
7777+ You can use `mkBefore` and/or `mkAfter` to ensure
7878 this is the case when configuration options are merged.
7979 '';
8080 example = literalExpression ''
···113113 noPass = mkOption {
114114 type = with types; bool;
115115 default = false;
116116- description = ''
117117- If <code>true</code>, the user is not required to enter a
116116+ description = lib.mdDoc ''
117117+ If `true`, the user is not required to enter a
118118 password.
119119 '';
120120 };
···122122 noLog = mkOption {
123123 type = with types; bool;
124124 default = false;
125125- description = ''
126126- If <code>true</code>, successful executions will not be logged
125125+ description = lib.mdDoc ''
126126+ If `true`, successful executions will not be logged
127127 to
128128- <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
128128+ {manpage}`syslogd(8)`.
129129 '';
130130 };
131131132132 persist = mkOption {
133133 type = with types; bool;
134134 default = false;
135135- description = ''
136136- If <code>true</code>, do not ask for a password again for some
135135+ description = lib.mdDoc ''
136136+ If `true`, do not ask for a password again for some
137137 time after the user successfully authenticates.
138138 '';
139139 };
···141141 keepEnv = mkOption {
142142 type = with types; bool;
143143 default = false;
144144- description = ''
145145- If <code>true</code>, environment variables other than those
144144+ description = lib.mdDoc ''
145145+ If `true`, environment variables other than those
146146 listed in
147147- <citerefentry><refentrytitle>doas</refentrytitle><manvolnum>1</manvolnum></citerefentry>
147147+ {manpage}`doas(1)`
148148 are kept when creating the environment for the new process.
149149 '';
150150 };
···152152 setEnv = mkOption {
153153 type = with types; listOf str;
154154 default = [];
155155- description = ''
155155+ description = lib.mdDoc ''
156156 Keep or set the specified variables. Variables may also be
157157 removed with a leading '-' or set using
158158- <code>variable=value</code>. If the first character of
159159- <code>value</code> is a '$', the value to be set is taken from
158158+ `variable=value`. If the first character of
159159+ `value` is a '$', the value to be set is taken from
160160 the existing environment variable of the indicated name. This
161161 option is processed after the default environment has been
162162 created.
163163164164- NOTE: All rules have <code>setenv { SSH_AUTH_SOCK }</code> by
165165- default. To prevent <code>SSH_AUTH_SOCK</code> from being
166166- inherited, add <code>"-SSH_AUTH_SOCK"</code> anywhere in this
164164+ NOTE: All rules have `setenv { SSH_AUTH_SOCK }` by
165165+ default. To prevent `SSH_AUTH_SOCK` from being
166166+ inherited, add `"-SSH_AUTH_SOCK"` anywhere in this
167167 list.
168168 '';
169169 };
···183183 runAs = mkOption {
184184 type = with types; nullOr str;
185185 default = null;
186186- description = ''
186186+ description = lib.mdDoc ''
187187 Which user or group the specified command is allowed to run as.
188188- When set to <code>null</code> (the default), all users are
188188+ When set to `null` (the default), all users are
189189 allowed.
190190191191 A user can be specified using just the username:
192192- <code>"foo"</code>. It is also possible to only allow running as
193193- a specific group with <code>":bar"</code>.
192192+ `"foo"`. It is also possible to only allow running as
193193+ a specific group with `":bar"`.
194194 '';
195195 };
196196197197 cmd = mkOption {
198198 type = with types; nullOr str;
199199 default = null;
200200- description = ''
200200+ description = lib.mdDoc ''
201201 The command the user is allowed to run. When set to
202202- <code>null</code> (the default), all commands are allowed.
202202+ `null` (the default), all commands are allowed.
203203204204 NOTE: It is best practice to specify absolute paths. If a
205205 relative path is specified, only a restricted PATH will be
···210210 args = mkOption {
211211 type = with types; nullOr (listOf str);
212212 default = null;
213213- description = ''
213213+ description = lib.mdDoc ''
214214 Arguments that must be provided to the command. When set to
215215- <code>[]</code>, the command must be run without any arguments.
215215+ `[]`, the command must be run without any arguments.
216216 '';
217217 };
218218 };
+2-2
nixos/modules/security/misc.nix
···5252 security.allowSimultaneousMultithreading = mkOption {
5353 type = types.bool;
5454 default = true;
5555- description = ''
5555+ description = lib.mdDoc ''
5656 Whether to allow SMT/hyperthreading. Disabling SMT means that only
5757 physical CPU cores will be usable at runtime, potentially at
5858 significant performance cost.
···6262 e.g., shared caches). This attack vector is unproven.
63636464 Disabling SMT is a supplement to the L1 data cache flushing mitigation
6565- (see <xref linkend="opt-security.virtualisation.flushL1DataCache"/>)
6565+ (see [](#opt-security.virtualisation.flushL1DataCache))
6666 versus malicious VM guests (SMT could "bring back" previously flushed
6767 data).
6868 '';
+50-61
nixos/modules/security/pam.nix
···807807 default = config.krb5.enable;
808808 defaultText = literalExpression "config.krb5.enable";
809809 type = types.bool;
810810- description = ''
811811- Enables Kerberos PAM modules (<literal>pam-krb5</literal>,
812812- <literal>pam-ccreds</literal>).
810810+ description = lib.mdDoc ''
811811+ Enables Kerberos PAM modules (`pam-krb5`,
812812+ `pam-ccreds`).
813813814814 If set, users can authenticate with their Kerberos password.
815815 This requires a valid Kerberos configuration
816816- (<literal>config.krb5.enable</literal> should be set to
817817- <literal>true</literal>).
816816+ (`config.krb5.enable` should be set to
817817+ `true`).
818818819819 Note that the Kerberos PAM modules are not necessary when using SSS
820820 to handle Kerberos authentication.
···826826 enable = mkOption {
827827 default = false;
828828 type = types.bool;
829829- description = ''
830830- Enables P11 PAM (<literal>pam_p11</literal>) module.
829829+ description = lib.mdDoc ''
830830+ Enables P11 PAM (`pam_p11`) module.
831831832832 If set, users can log in with SSH keys and PKCS#11 tokens.
833833834834- More information can be found <link
835835- xlink:href="https://github.com/OpenSC/pam_p11">here</link>.
834834+ More information can be found [here](https://github.com/OpenSC/pam_p11).
836835 '';
837836 };
838837···859858 enable = mkOption {
860859 default = false;
861860 type = types.bool;
862862- description = ''
863863- Enables U2F PAM (<literal>pam-u2f</literal>) module.
861861+ description = lib.mdDoc ''
862862+ Enables U2F PAM (`pam-u2f`) module.
864863865864 If set, users listed in
866866- <filename>$XDG_CONFIG_HOME/Yubico/u2f_keys</filename> (or
867867- <filename>$HOME/.config/Yubico/u2f_keys</filename> if XDG variable is
865865+ {file}`$XDG_CONFIG_HOME/Yubico/u2f_keys` (or
866866+ {file}`$HOME/.config/Yubico/u2f_keys` if XDG variable is
868867 not set) are able to log in with the associated U2F key. The path can
869869- be changed using <option>security.pam.u2f.authFile</option> option.
868868+ be changed using {option}`security.pam.u2f.authFile` option.
870869871870 File format is:
872872- <literal>username:first_keyHandle,first_public_key: second_keyHandle,second_public_key</literal>
873873- This file can be generated using <command>pamu2fcfg</command> command.
871871+ `username:first_keyHandle,first_public_key: second_keyHandle,second_public_key`
872872+ This file can be generated using {command}`pamu2fcfg` command.
874873875875- More information can be found <link
876876- xlink:href="https://developers.yubico.com/pam-u2f/">here</link>.
874874+ More information can be found [here](https://developers.yubico.com/pam-u2f/).
877875 '';
878876 };
879877880878 authFile = mkOption {
881879 default = null;
882880 type = with types; nullOr path;
883883- description = ''
884884- By default <literal>pam-u2f</literal> module reads the keys from
885885- <filename>$XDG_CONFIG_HOME/Yubico/u2f_keys</filename> (or
886886- <filename>$HOME/.config/Yubico/u2f_keys</filename> if XDG variable is
881881+ description = lib.mdDoc ''
882882+ By default `pam-u2f` module reads the keys from
883883+ {file}`$XDG_CONFIG_HOME/Yubico/u2f_keys` (or
884884+ {file}`$HOME/.config/Yubico/u2f_keys` if XDG variable is
887885 not set).
888886889887 If you want to change auth file locations or centralize database (for
890890- example use <filename>/etc/u2f-mappings</filename>) you can set this
888888+ example use {file}`/etc/u2f-mappings`) you can set this
891889 option.
892890893891 File format is:
894894- <literal>username:first_keyHandle,first_public_key: second_keyHandle,second_public_key</literal>
895895- This file can be generated using <command>pamu2fcfg</command> command.
892892+ `username:first_keyHandle,first_public_key: second_keyHandle,second_public_key`
893893+ This file can be generated using {command}`pamu2fcfg` command.
896894897897- More information can be found <link
898898- xlink:href="https://developers.yubico.com/pam-u2f/">here</link>.
895895+ More information can be found [here](https://developers.yubico.com/pam-u2f/).
899896 '';
900897 };
901898902899 appId = mkOption {
903900 default = null;
904901 type = with types; nullOr str;
905905- description = ''
906906- By default <literal>pam-u2f</literal> module sets the application
907907- ID to <literal>pam://$HOSTNAME</literal>.
902902+ description = lib.mdDoc ''
903903+ By default `pam-u2f` module sets the application
904904+ ID to `pam://$HOSTNAME`.
908905909909- When using <command>pamu2fcfg</command>, you can specify your
910910- application ID with the <literal>-i</literal> flag.
906906+ When using {command}`pamu2fcfg`, you can specify your
907907+ application ID with the `-i` flag.
911908912912- More information can be found <link
913913- xlink:href="https://developers.yubico.com/pam-u2f/Manuals/pam_u2f.8.html">
914914- here</link>
909909+ More information can be found [here](https://developers.yubico.com/pam-u2f/Manuals/pam_u2f.8.html)
915910 '';
916911 };
917912918913 origin = mkOption {
919914 default = null;
920915 type = with types; nullOr str;
921921- description = ''
922922- By default <literal>pam-u2f</literal> module sets the origin
923923- to <literal>pam://$HOSTNAME</literal>.
916916+ description = lib.mdDoc ''
917917+ By default `pam-u2f` module sets the origin
918918+ to `pam://$HOSTNAME`.
924919 Setting origin to an host independent value will allow you to
925920 reuse credentials across machines
926921927927- When using <command>pamu2fcfg</command>, you can specify your
928928- application ID with the <literal>-o</literal> flag.
922922+ When using {command}`pamu2fcfg`, you can specify your
923923+ application ID with the `-o` flag.
929924930930- More information can be found <link
931931- xlink:href="https://developers.yubico.com/pam-u2f/Manuals/pam_u2f.8.html">
932932- here</link>
925925+ More information can be found [here](https://developers.yubico.com/pam-u2f/Manuals/pam_u2f.8.html)
933926 '';
934927 };
935928···985978 enable = mkOption {
986979 default = false;
987980 type = types.bool;
988988- description = ''
989989- Enables Uber's USSH PAM (<literal>pam-ussh</literal>) module.
981981+ description = lib.mdDoc ''
982982+ Enables Uber's USSH PAM (`pam-ussh`) module.
990983991991- This is similar to <literal>pam-ssh-agent</literal>, except that
984984+ This is similar to `pam-ssh-agent`, except that
992985 the presence of a CA-signed SSH key with a valid principal is checked
993986 instead.
994987995988 Note that this module must both be enabled using this option and on a
996996- per-PAM-service level as well (using <literal>usshAuth</literal>).
989989+ per-PAM-service level as well (using `usshAuth`).
997990998998- More information can be found <link
999999- xlink:href="https://github.com/uber/pam-ussh">here</link>.
991991+ More information can be found [here](https://github.com/uber/pam-ussh).
1000992 '';
1001993 };
1002994···10751067 enable = mkOption {
10761068 default = false;
10771069 type = types.bool;
10781078- description = ''
10791079- Enables Yubico PAM (<literal>yubico-pam</literal>) module.
10701070+ description = lib.mdDoc ''
10711071+ Enables Yubico PAM (`yubico-pam`) module.
1080107210811073 If set, users listed in
10821082- <filename>~/.yubico/authorized_yubikeys</filename>
10741074+ {file}`~/.yubico/authorized_yubikeys`
10831075 are able to log in with the associated Yubikey tokens.
1084107610851077 The file must have only one line:
10861086- <literal>username:yubikey_token_id1:yubikey_token_id2</literal>
10871087- More information can be found <link
10881088- xlink:href="https://developers.yubico.com/yubico-pam/">here</link>.
10781078+ `username:yubikey_token_id1:yubikey_token_id2`
10791079+ More information can be found [here](https://developers.yubico.com/yubico-pam/).
10891080 '';
10901081 };
10911082 control = mkOption {
···11201111 mode = mkOption {
11211112 default = "client";
11221113 type = types.enum [ "client" "challenge-response" ];
11231123- description = ''
11141114+ description = lib.mdDoc ''
11241115 Mode of operation.
1125111611261117 Use "client" for online validation with a YubiKey validation service such as
···11301121 Challenge-Response configurations. See the man-page ykpamcfg(1) for further
11311122 details on how to configure offline Challenge-Response validation.
1132112311331133- More information can be found <link
11341134- xlink:href="https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html">here</link>.
11241124+ More information can be found [here](https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html).
11351125 '';
11361126 };
11371127 challengeResponsePath = mkOption {
11381128 default = null;
11391129 type = types.nullOr types.path;
11401140- description = ''
11301130+ description = lib.mdDoc ''
11411131 If not null, set the path used by yubico pam module where the challenge expected response is stored.
1142113211431143- More information can be found <link
11441144- xlink:href="https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html">here</link>.
11331133+ More information can be found [here](https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html).
11451134 '';
11461135 };
11471136 };
+6-9
nixos/modules/security/pam_mount.nix
···3131 extraVolumes = mkOption {
3232 type = types.listOf types.str;
3333 default = [];
3434- description = ''
3434+ description = lib.mdDoc ''
3535 List of volume definitions for pam_mount.
3636- For more information, visit <link
3737- xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
3636+ For more information, visit <http://pam-mount.sourceforge.net/pam_mount.conf.5.html>.
3837 '';
3938 };
4039···6463 type = types.int;
6564 default = 0;
6665 example = 1;
6767- description = ''
6666+ description = lib.mdDoc ''
6867 Sets the Debug-Level. 0 disables debugging, 1 enables pam_mount tracing,
6968 and 2 additionally enables tracing in mount.crypt. The default is 0.
7070- For more information, visit <link
7171- xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
6969+ For more information, visit <http://pam-mount.sourceforge.net/pam_mount.conf.5.html>.
7270 '';
7371 };
74727573 logoutWait = mkOption {
7674 type = types.int;
7775 default = 0;
7878- description = ''
7676+ description = lib.mdDoc ''
7977 Amount of microseconds to wait until killing remaining processes after
8078 final logout.
8181- For more information, visit <link
8282- xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
7979+ For more information, visit <http://pam-mount.sourceforge.net/pam_mount.conf.5.html>.
8380 '';
8481 };
8582
+2-3
nixos/modules/security/pam_usb.nix
···1717 enable = mkOption {
1818 type = types.bool;
1919 default = false;
2020- description = ''
2020+ description = lib.mdDoc ''
2121 Enable USB login for all login systems that support it. For
2222- more information, visit <link
2323- xlink:href="https://github.com/aluzzardi/pam_usb/wiki/Getting-Started#setting-up-devices-and-users" />.
2222+ more information, visit <https://github.com/aluzzardi/pam_usb/wiki/Getting-Started#setting-up-devices-and-users>.
2423 '';
2524 };
2625
+11-11
nixos/modules/security/sudo.nix
···5555 type = types.bool;
5656 default = true;
5757 description =
5858- ''
5959- Whether users of the <code>wheel</code> group must
6060- provide a password to run commands as super user via <command>sudo</command>.
5858+ lib.mdDoc ''
5959+ Whether users of the `wheel` group must
6060+ provide a password to run commands as super user via {command}`sudo`.
6161 '';
6262 };
63636464 security.sudo.execWheelOnly = mkOption {
6565 type = types.bool;
6666 default = false;
6767- description = ''
6868- Only allow members of the <code>wheel</code> group to execute sudo by
6767+ description = lib.mdDoc ''
6868+ Only allow members of the `wheel` group to execute sudo by
6969 setting the executable's permissions accordingly.
7070- This prevents users that are not members of <code>wheel</code> from
7070+ This prevents users that are not members of `wheel` from
7171 exploiting vulnerabilities in sudo such as CVE-2021-3156.
7272 '';
7373 };
···139139 runAs = mkOption {
140140 type = with types; str;
141141 default = "ALL:ALL";
142142- description = ''
142142+ description = lib.mdDoc ''
143143 Under which user/group the specified command is allowed to run.
144144145145- A user can be specified using just the username: <code>"foo"</code>.
146146- It is also possible to specify a user/group combination using <code>"foo:bar"</code>
147147- or to only allow running as a specific group with <code>":bar"</code>.
145145+ A user can be specified using just the username: `"foo"`.
146146+ It is also possible to specify a user/group combination using `"foo:bar"`
147147+ or to only allow running as a specific group with `":bar"`.
148148 '';
149149 };
150150···159159 type = with types; str;
160160 description = ''
161161 A command being either just a path to a binary to allow any arguments,
162162- the full command with arguments pre-set or with <code>""</code> used as the argument,
162162+ the full command with arguments pre-set or with <literal>""</literal> used as the argument,
163163 not allowing arguments to the command at all.
164164 '';
165165 };
···113113 configFile = mkOption {
114114 type = types.nullOr types.path;
115115 default = null;
116116- description = ''
116116+ description = lib.mdDoc ''
117117 Configuration file for gitlab-runner.
118118119119- <option>configFile</option> takes precedence over <option>services</option>.
120120- <option>checkInterval</option> and <option>concurrent</option> will be ignored too.
119119+ {option}`configFile` takes precedence over {option}`services`.
120120+ {option}`checkInterval` and {option}`concurrent` will be ignored too.
121121122122- This option is deprecated, please use <option>services</option> instead.
123123- You can use <option>registrationConfigFile</option> and
124124- <option>registrationFlags</option>
122122+ This option is deprecated, please use {option}`services` instead.
123123+ You can use {option}`registrationConfigFile` and
124124+ {option}`registrationFlags`
125125 for settings not covered by this module.
126126 '';
127127 };
···130130 freeformType = (pkgs.formats.json { }).type;
131131 };
132132 default = { };
133133- description = ''
133133+ description = lib.mdDoc ''
134134 Global gitlab-runner configuration. See
135135- <link xlink:href="https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section"/>
135135+ <https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section>
136136 for supported values.
137137 '';
138138 };
139139 gracefulTermination = mkOption {
140140 type = types.bool;
141141 default = false;
142142- description = ''
142142+ description = lib.mdDoc ''
143143 Finish all remaining jobs before stopping.
144144 If not set gitlab-runner will stop immediatly without waiting
145145 for jobs to finish, which will lead to failed builds.
···149149 type = types.str;
150150 default = "infinity";
151151 example = "5min 20s";
152152- description = ''
152152+ description = lib.mdDoc ''
153153 Time to wait until a graceful shutdown is turned into a forceful one.
154154 '';
155155 };
···158158 default = pkgs.gitlab-runner;
159159 defaultText = literalExpression "pkgs.gitlab-runner";
160160 example = literalExpression "pkgs.gitlab-runner_1_11";
161161- description = "Gitlab Runner package to use.";
161161+ description = lib.mdDoc "Gitlab Runner package to use.";
162162 };
163163 extraPackages = mkOption {
164164 type = types.listOf types.package;
165165 default = [ ];
166166- description = ''
166166+ description = lib.mdDoc ''
167167 Extra packages to add to PATH for the gitlab-runner process.
168168 '';
169169 };
170170 services = mkOption {
171171- description = "GitLab Runner services.";
171171+ description = lib.mdDoc "GitLab Runner services.";
172172 default = { };
173173 example = literalExpression ''
174174 {
···250250 options = {
251251 registrationConfigFile = mkOption {
252252 type = types.path;
253253- description = ''
253253+ description = lib.mdDoc ''
254254 Absolute path to a file with environment variables
255255 used for gitlab-runner registration.
256256 A list of all supported environment variables can be found in
257257- <literal>gitlab-runner register --help</literal>.
257257+ `gitlab-runner register --help`.
258258259259 Ones that you probably want to set is
260260261261- <literal>CI_SERVER_URL=<CI server URL></literal>
261261+ `CI_SERVER_URL=<CI server URL>`
262262263263- <literal>REGISTRATION_TOKEN=<registration secret></literal>
263263+ `REGISTRATION_TOKEN=<registration secret>`
264264265265 WARNING: make sure to use quoted absolute path,
266266 or it is going to be copied to Nix Store.
···270270 type = types.listOf types.str;
271271 default = [ ];
272272 example = [ "--docker-helper-image my/gitlab-runner-helper" ];
273273- description = ''
273273+ description = lib.mdDoc ''
274274 Extra command-line flags passed to
275275- <literal>gitlab-runner register</literal>.
276276- Execute <literal>gitlab-runner register --help</literal>
275275+ `gitlab-runner register`.
276276+ Execute `gitlab-runner register --help`
277277 for a list of supported flags.
278278 '';
279279 };
···281281 type = types.attrsOf types.str;
282282 default = { };
283283 example = { NAME = "value"; };
284284- description = ''
284284+ description = lib.mdDoc ''
285285 Custom environment variables injected to build environment.
286286- For secrets you can use <option>registrationConfigFile</option>
287287- with <literal>RUNNER_ENV</literal> variable set.
286286+ For secrets you can use {option}`registrationConfigFile`
287287+ with `RUNNER_ENV` variable set.
288288 '';
289289 };
290290 description = mkOption {
291291 type = types.nullOr types.str;
292292 default = null;
293293- description = ''
293293+ description = lib.mdDoc ''
294294 Name/description of the runner.
295295 '';
296296 };
297297 executor = mkOption {
298298 type = types.str;
299299 default = "docker";
300300- description = ''
300300+ description = lib.mdDoc ''
301301 Select executor, eg. shell, docker, etc.
302302- See <link xlink:href="https://docs.gitlab.com/runner/executors/README.html">runner documentation</link> for more information.
302302+ See [runner documentation](https://docs.gitlab.com/runner/executors/README.html) for more information.
303303 '';
304304 };
305305 buildsDir = mkOption {
306306 type = types.nullOr types.path;
307307 default = null;
308308 example = "/var/lib/gitlab-runner/builds";
309309- description = ''
309309+ description = lib.mdDoc ''
310310 Absolute path to a directory where builds will be stored
311311 in context of selected executor (Locally, Docker, SSH).
312312 '';
···315315 type = types.nullOr types.str;
316316 default = null;
317317 example = "http://gitlab.example.local";
318318- description = ''
318318+ description = lib.mdDoc ''
319319 Overwrite the URL for the GitLab instance. Used if the Runner can’t connect to GitLab on the URL GitLab exposes itself.
320320 '';
321321 };
322322 dockerImage = mkOption {
323323 type = types.nullOr types.str;
324324 default = null;
325325- description = ''
325325+ description = lib.mdDoc ''
326326 Docker image to be used.
327327 '';
328328 };
···330330 type = types.listOf types.str;
331331 default = [ ];
332332 example = [ "/var/run/docker.sock:/var/run/docker.sock" ];
333333- description = ''
333333+ description = lib.mdDoc ''
334334 Bind-mount a volume and create it
335335 if it doesn't exist prior to mounting.
336336 '';
···338338 dockerDisableCache = mkOption {
339339 type = types.bool;
340340 default = false;
341341- description = ''
341341+ description = lib.mdDoc ''
342342 Disable all container caching.
343343 '';
344344 };
345345 dockerPrivileged = mkOption {
346346 type = types.bool;
347347 default = false;
348348- description = ''
348348+ description = lib.mdDoc ''
349349 Give extended privileges to container.
350350 '';
351351 };
···353353 type = types.listOf types.str;
354354 default = [ ];
355355 example = [ "other-host:127.0.0.1" ];
356356- description = ''
356356+ description = lib.mdDoc ''
357357 Add a custom host-to-IP mapping.
358358 '';
359359 };
···361361 type = types.listOf types.str;
362362 default = [ ];
363363 example = [ "ruby:*" "python:*" "php:*" "my.registry.tld:5000/*:*" ];
364364- description = ''
364364+ description = lib.mdDoc ''
365365 Whitelist allowed images.
366366 '';
367367 };
···369369 type = types.listOf types.str;
370370 default = [ ];
371371 example = [ "postgres:9" "redis:*" "mysql:*" ];
372372- description = ''
372372+ description = lib.mdDoc ''
373373 Whitelist allowed services.
374374 '';
375375 };
376376 preCloneScript = mkOption {
377377 type = types.nullOr types.path;
378378 default = null;
379379- description = ''
379379+ description = lib.mdDoc ''
380380 Runner-specific command script executed before code is pulled.
381381 '';
382382 };
383383 preBuildScript = mkOption {
384384 type = types.nullOr types.path;
385385 default = null;
386386- description = ''
386386+ description = lib.mdDoc ''
387387 Runner-specific command script executed after code is pulled,
388388 just before build executes.
389389 '';
···391391 postBuildScript = mkOption {
392392 type = types.nullOr types.path;
393393 default = null;
394394- description = ''
394394+ description = lib.mdDoc ''
395395 Runner-specific command script executed after code is pulled
396396 and just after build executes.
397397 '';
···399399 tagList = mkOption {
400400 type = types.listOf types.str;
401401 default = [ ];
402402- description = ''
402402+ description = lib.mdDoc ''
403403 Tag list.
404404 '';
405405 };
406406 runUntagged = mkOption {
407407 type = types.bool;
408408 default = false;
409409- description = ''
409409+ description = lib.mdDoc ''
410410 Register to run untagged builds; defaults to
411411- <literal>true</literal> when <option>tagList</option> is empty.
411411+ `true` when {option}`tagList` is empty.
412412 '';
413413 };
414414 limit = mkOption {
415415 type = types.int;
416416 default = 0;
417417- description = ''
417417+ description = lib.mdDoc ''
418418 Limit how many jobs can be handled concurrently by this service.
419419 0 (default) simply means don't limit.
420420 '';
···422422 requestConcurrency = mkOption {
423423 type = types.int;
424424 default = 0;
425425- description = ''
425425+ description = lib.mdDoc ''
426426 Limit number of concurrent requests for new jobs from GitLab.
427427 '';
428428 };
429429 maximumTimeout = mkOption {
430430 type = types.int;
431431 default = 0;
432432- description = ''
432432+ description = lib.mdDoc ''
433433 What is the maximum timeout (in seconds) that will be set for
434434 job when using this Runner. 0 (default) simply means don't limit.
435435 '';
···437437 protected = mkOption {
438438 type = types.bool;
439439 default = false;
440440- description = ''
440440+ description = lib.mdDoc ''
441441 When set to true Runner will only run on pipelines
442442 triggered on protected branches.
443443 '';
···445445 debugTraceDisabled = mkOption {
446446 type = types.bool;
447447 default = false;
448448- description = ''
448448+ description = lib.mdDoc ''
449449 When set to true Runner will disable the possibility of
450450- using the <literal>CI_DEBUG_TRACE</literal> feature.
450450+ using the `CI_DEBUG_TRACE` feature.
451451 '';
452452 };
453453 };
+3-3
nixos/modules/services/databases/firebird.nix
···4747 defaultText = literalExpression "pkgs.firebird";
4848 type = types.package;
4949 example = literalExpression "pkgs.firebird_3";
5050- description = ''
5151- Which Firebird package to be installed: <code>pkgs.firebird_3</code>
5252- For SuperServer use override: <code>pkgs.firebird_3.override { superServer = true; };</code>
5050+ description = lib.mdDoc ''
5151+ Which Firebird package to be installed: `pkgs.firebird_3`
5252+ For SuperServer use override: `pkgs.firebird_3.override { superServer = true; };`
5353 '';
5454 };
5555
+3-3
nixos/modules/services/databases/mysql.nix
···201201 ensurePermissions = mkOption {
202202 type = types.attrsOf types.str;
203203 default = {};
204204- description = ''
204204+ description = lib.mdDoc ''
205205 Permissions to ensure for the user, specified as attribute set.
206206 The attribute names specify the database and tables to grant the permissions for,
207207 separated by a dot. You may use wildcards here.
···210210211211 For more information on how to specify the target
212212 and on which privileges exist, see the
213213- <link xlink:href="https://mariadb.com/kb/en/library/grant/">GRANT syntax</link>.
214214- The attributes are used as <code>GRANT ''${attrName} ON ''${attrValue}</code>.
213213+ [GRANT syntax](https://mariadb.com/kb/en/library/grant/).
214214+ The attributes are used as `GRANT ''${attrName} ON ''${attrValue}`.
215215 '';
216216 example = literalExpression ''
217217 {
+58-73
nixos/modules/services/databases/neo4j.nix
···139139 constrainLoadCsv = mkOption {
140140 type = types.bool;
141141 default = true;
142142- description = ''
142142+ description = lib.mdDoc ''
143143 Sets the root directory for file URLs used with the Cypher
144144- <literal>LOAD CSV</literal> clause to be that defined by
145145- <option>directories.imports</option>. It restricts
144144+ `LOAD CSV` clause to be that defined by
145145+ {option}`directories.imports`. It restricts
146146 access to only those files within that directory and its
147147 subdirectories.
148148- </para>
149149- <para>
150150- Setting this option to <literal>false</literal> introduces
148148+149149+ Setting this option to `false` introduces
151150 possible security problems.
152151 '';
153152 };
···155154 defaultListenAddress = mkOption {
156155 type = types.str;
157156 default = "127.0.0.1";
158158- description = ''
157157+ description = lib.mdDoc ''
159158 Default network interface to listen for incoming connections. To
160159 listen for connections on all interfaces, use "0.0.0.0".
161161- </para>
162162- <para>
160160+163161 Specifies the default IP address and address part of connector
164164- specific <option>listenAddress</option> options. To bind specific
162162+ specific {option}`listenAddress` options. To bind specific
165163 connectors to a specific network interfaces, specify the entire
166166- <option>listenAddress</option> option for that connector.
164164+ {option}`listenAddress` option for that connector.
167165 '';
168166 };
169167···227225 sslPolicy = mkOption {
228226 type = types.str;
229227 default = "legacy";
230230- description = ''
228228+ description = lib.mdDoc ''
231229 Neo4j SSL policy for BOLT traffic.
232232- </para>
233233- <para>
230230+234231 The legacy policy is a special policy which is not defined in
235232 the policy configuration section, but rather derives from
236236- <option>directories.certificates</option> and
237237- associated files (by default: <filename>neo4j.key</filename> and
238238- <filename>neo4j.cert</filename>). Its use will be deprecated.
239239- </para>
240240- <para>
233233+ {option}`directories.certificates` and
234234+ associated files (by default: {file}`neo4j.key` and
235235+ {file}`neo4j.cert`). Its use will be deprecated.
236236+241237 Note: This connector must be configured to support/require
242238 SSL/TLS for the legacy policy to actually be utilized. See
243243- <option>bolt.tlsLevel</option>.
239239+ {option}`bolt.tlsLevel`.
244240 '';
245241 };
246242···258254 type = types.path;
259255 default = "${cfg.directories.home}/certificates";
260256 defaultText = literalExpression ''"''${config.${opt.directories.home}}/certificates"'';
261261- description = ''
257257+ description = lib.mdDoc ''
262258 Directory for storing certificates to be used by Neo4j for
263259 TLS connections.
264264- </para>
265265- <para>
260260+266261 When setting this directory to something other than its default,
267262 ensure the directory's existence, and that read/write permissions are
268268- given to the Neo4j daemon user <literal>neo4j</literal>.
269269- </para>
270270- <para>
263263+ given to the Neo4j daemon user `neo4j`.
264264+271265 Note that changing this directory from its default will prevent
272266 the directory structure required for each SSL policy from being
273267 automatically generated. A policy's directory structure as defined by
274274- its <option>baseDirectory</option>,<option>revokedDir</option> and
275275- <option>trustedDir</option> must then be setup manually. The
268268+ its {option}`baseDirectory`,{option}`revokedDir` and
269269+ {option}`trustedDir` must then be setup manually. The
276270 existence of these directories is mandatory, as well as the presence
277271 of the certificate file and the private key. Ensure the correct
278272 permissions are set on these directories and files.
···283277 type = types.path;
284278 default = "${cfg.directories.home}/data";
285279 defaultText = literalExpression ''"''${config.${opt.directories.home}}/data"'';
286286- description = ''
280280+ description = lib.mdDoc ''
287281 Path of the data directory. You must not configure more than one
288282 Neo4j installation to use the same data directory.
289289- </para>
290290- <para>
283283+291284 When setting this directory to something other than its default,
292285 ensure the directory's existence, and that read/write permissions are
293293- given to the Neo4j daemon user <literal>neo4j</literal>.
286286+ given to the Neo4j daemon user `neo4j`.
294287 '';
295288 };
296289···309302 type = types.path;
310303 default = "${cfg.directories.home}/import";
311304 defaultText = literalExpression ''"''${config.${opt.directories.home}}/import"'';
312312- description = ''
305305+ description = lib.mdDoc ''
313306 The root directory for file URLs used with the Cypher
314314- <literal>LOAD CSV</literal> clause. Only meaningful when
315315- <option>constrainLoadCvs</option> is set to
316316- <literal>true</literal>.
317317- </para>
318318- <para>
307307+ `LOAD CSV` clause. Only meaningful when
308308+ {option}`constrainLoadCvs` is set to
309309+ `true`.
310310+319311 When setting this directory to something other than its default,
320312 ensure the directory's existence, and that read permission is
321321- given to the Neo4j daemon user <literal>neo4j</literal>.
313313+ given to the Neo4j daemon user `neo4j`.
322314 '';
323315 };
324316···326318 type = types.path;
327319 default = "${cfg.directories.home}/plugins";
328320 defaultText = literalExpression ''"''${config.${opt.directories.home}}/plugins"'';
329329- description = ''
321321+ description = lib.mdDoc ''
330322 Path of the database plugin directory. Compiled Java JAR files that
331323 contain database procedures will be loaded if they are placed in
332324 this directory.
333333- </para>
334334- <para>
325325+335326 When setting this directory to something other than its default,
336327 ensure the directory's existence, and that read permission is
337337- given to the Neo4j daemon user <literal>neo4j</literal>.
328328+ given to the Neo4j daemon user `neo4j`.
338329 '';
339330 };
340331 };
···386377 sslPolicy = mkOption {
387378 type = types.str;
388379 default = "legacy";
389389- description = ''
380380+ description = lib.mdDoc ''
390381 Neo4j SSL policy for HTTPS traffic.
391391- </para>
392392- <para>
382382+393383 The legacy policy is a special policy which is not defined in the
394384 policy configuration section, but rather derives from
395395- <option>directories.certificates</option> and
396396- associated files (by default: <filename>neo4j.key</filename> and
397397- <filename>neo4j.cert</filename>). Its use will be deprecated.
385385+ {option}`directories.certificates` and
386386+ associated files (by default: {file}`neo4j.key` and
387387+ {file}`neo4j.cert`). Its use will be deprecated.
398388 '';
399389 };
400390 };
···417407 allowKeyGeneration = mkOption {
418408 type = types.bool;
419409 default = false;
420420- description = ''
410410+ description = lib.mdDoc ''
421411 Allows the generation of a private key and associated self-signed
422412 certificate. Only performed when both objects cannot be found for
423413 this policy. It is recommended to turn this off again after keys
424414 have been generated.
425425- </para>
426426- <para>
415415+427416 The public certificate is required to be duplicated to the
428417 directory holding trusted certificates as defined by the
429429- <option>trustedDir</option> option.
430430- </para>
431431- <para>
418418+ {option}`trustedDir` option.
419419+432420 Keys should in general be generated and distributed offline by a
433421 trusted certificate authority and not by utilizing this mode.
434422 '';
···438426 type = types.path;
439427 default = "${cfg.directories.certificates}/${name}";
440428 defaultText = literalExpression ''"''${config.${opt.directories.certificates}}/''${name}"'';
441441- description = ''
429429+ description = lib.mdDoc ''
442430 The mandatory base directory for cryptographic objects of this
443431 policy. This path is only automatically generated when this
444444- option as well as <option>directories.certificates</option> are
432432+ option as well as {option}`directories.certificates` are
445433 left at their default. Ensure read/write permissions are given
446446- to the Neo4j daemon user <literal>neo4j</literal>.
447447- </para>
448448- <para>
434434+ to the Neo4j daemon user `neo4j`.
435435+449436 It is also possible to override each individual
450437 configuration with absolute paths. See the
451451- <option>privateKey</option> and <option>publicCertificate</option>
438438+ {option}`privateKey` and {option}`publicCertificate`
452439 policy options.
453440 '';
454441 };
···483470 publicCertificate = mkOption {
484471 type = types.str;
485472 default = "public.crt";
486486- description = ''
473473+ description = lib.mdDoc ''
487474 The name of public X.509 certificate (chain) file in PEM format
488488- for this policy to be found in the <option>baseDirectory</option>,
475475+ for this policy to be found in the {option}`baseDirectory`,
489476 or the absolute path to the certificate file. It is mandatory
490477 that a certificate can be found or generated.
491491- </para>
492492- <para>
478478+493479 The public certificate is required to be duplicated to the
494480 directory holding trusted certificates as defined by the
495495- <option>trustedDir</option> option.
481481+ {option}`trustedDir` option.
496482 '';
497483 };
498484···536522 type = types.path;
537523 default = "${config.baseDirectory}/trusted";
538524 defaultText = literalExpression ''"''${config.${options.baseDirectory}}/trusted"'';
539539- description = ''
525525+ description = lib.mdDoc ''
540526 Path to directory of X.509 certificates in PEM format for
541527 trusted parties. Must be an absolute path. The existence of this
542528 directory is mandatory and will need to be created manually when:
543529 setting this option to something other than its default; setting
544544- either this policy's <option>baseDirectory</option> or
545545- <option>directories.certificates</option> to something other than
530530+ either this policy's {option}`baseDirectory` or
531531+ {option}`directories.certificates` to something other than
546532 their default. Ensure read/write permissions are given to the
547547- Neo4j daemon user <literal>neo4j</literal>.
548548- </para>
549549- <para>
533533+ Neo4j daemon user `neo4j`.
534534+550535 The public certificate as defined by
551551- <option>publicCertificate</option> is required to be duplicated
536536+ {option}`publicCertificate` is required to be duplicated
552537 to this directory.
553538 '';
554539 };
+5-5
nixos/modules/services/databases/openldap.nix
···8888 enable = mkOption {
8989 type = types.bool;
9090 default = false;
9191- description = "Whether to enable the ldap server.";
9191+ description = lib.mdDoc "Whether to enable the ldap server.";
9292 };
93939494 package = mkOption {
···173173 configDir = mkOption {
174174 type = types.nullOr types.path;
175175 default = null;
176176- description = ''
176176+ description = lib.mdDoc ''
177177 Use this config directory instead of generating one from the
178178- <literal>settings</literal> option. Overrides all NixOS settings.
178178+ `settings` option. Overrides all NixOS settings.
179179 '';
180180 example = "/var/lib/openldap/slapd.d";
181181 };
···183183 mutableConfig = mkOption {
184184 type = types.bool;
185185 default = false;
186186- description = ''
186186+ description = lib.mdDoc ''
187187 Whether to allow writable on-line configuration. If
188188- <literal>true</literal>, the NixOS settings will only be used to
188188+ `true`, the NixOS settings will only be used to
189189 initialize the OpenLDAP configuration if it does not exist, and are
190190 subsequently ignored.
191191 '';
+4-4
nixos/modules/services/databases/pgmanage.nix
···6262 nuc-server = "hostaddr=192.168.0.100 port=5432 dbname=postgres";
6363 mini-server = "hostaddr=127.0.0.1 port=5432 dbname=postgres sslmode=require";
6464 };
6565- description = ''
6565+ description = lib.mdDoc ''
6666 pgmanage requires at least one PostgreSQL server be defined.
6767- </para><para>
6767+6868 Detailed information about PostgreSQL connection strings is available at:
6969- <link xlink:href="http://www.postgresql.org/docs/current/static/libpq-connect.html"/>
7070- </para><para>
6969+ <http://www.postgresql.org/docs/current/static/libpq-connect.html>
7070+7171 Note that you should not specify your user name or password. That
7272 information will be entered on the login screen. If you specify a
7373 username or password, it will be removed by pgmanage before attempting to
+4-5
nixos/modules/services/databases/postgresql.nix
···8181 default = "";
8282 description = ''
8383 Defines how users authenticate themselves to the server. See the
8484- <link xlink:href="https://www.postgresql.org/docs/current/auth-pg-hba-conf.html">
8585- PostgreSQL documentation for pg_hba.conf</link>
8484+ <link xlink:href="https://www.postgresql.org/docs/current/auth-pg-hba-conf.html">PostgreSQL documentation for pg_hba.conf</link>
8685 for details on the expected format of this option. By default,
8786 peer based authentication will be used for users connecting
8887 via the Unix socket, and md5 password authentication will be
···150149 ensurePermissions = mkOption {
151150 type = types.attrsOf types.str;
152151 default = {};
153153- description = ''
152152+ description = lib.mdDoc ''
154153 Permissions to ensure for the user, specified as an attribute set.
155154 The attribute names specify the database and tables to grant the permissions for.
156155 The attribute values specify the permissions to grant. You may specify one or
···158157159158 For more information on how to specify the target
160159 and on which privileges exist, see the
161161- <link xlink:href="https://www.postgresql.org/docs/current/sql-grant.html">GRANT syntax</link>.
162162- The attributes are used as <code>GRANT ''${attrValue} ON ''${attrName}</code>.
160160+ [GRANT syntax](https://www.postgresql.org/docs/current/sql-grant.html).
161161+ The attributes are used as `GRANT ''${attrValue} ON ''${attrName}`.
163162 '';
164163 example = literalExpression ''
165164 {
···2828 extraOptions = mkOption {
2929 type = types.listOf types.str;
3030 default = [];
3131- description = ''
3232- Extra options to pass to VictoriaMetrics. See the README: <link
3333- xlink:href="https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/README.md" />
3434- or <command>victoriametrics -help</command> for more
3131+ description = lib.mdDoc ''
3232+ Extra options to pass to VictoriaMetrics. See the README:
3333+ <https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/README.md>
3434+ or {command}`victoriametrics -help` for more
3535 information.
3636 '';
3737 };
+1-1
nixos/modules/services/development/zammad.nix
···139139 '';
140140 description = ''
141141 The <filename>database.yml</filename> configuration file as key value set.
142142- See <link xlink:href='TODO' />
142142+ See <link xlink:href="TODO"/>
143143 for list of configuration parameters.
144144 '';
145145 };
+3-1
nixos/modules/services/games/asf.nix
···136136 };
137137 settings = mkOption {
138138 type = types.attrs;
139139- description = "Additional settings that are documented <link xlink:href=\"https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#bot-config\">here</link>.";
139139+ description = lib.mdDoc ''
140140+ Additional settings that are documented [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#bot-config).
141141+ '';
140142 default = { };
141143 };
142144 };
+7-7
nixos/modules/services/hardware/kanata.nix
···1010 device = mkOption {
1111 type = types.str;
1212 example = "/dev/input/by-id/usb-0000_0000-event-kbd";
1313- description = "Path to the keyboard device.";
1313+ description = lib.mdDoc "Path to the keyboard device.";
1414 };
1515 config = mkOption {
1616 type = types.lines;
···3333 ;; tap within 100ms for capslk, hold more than 100ms for lctl
3434 cap (tap-hold 100 100 caps lctl))
3535 '';
3636- description = ''
3636+ description = lib.mdDoc ''
3737 Configuration other than defcfg.
3838- See <link xlink:href="https://github.com/jtroo/kanata"/> for more information.
3838+ See <https://github.com/jtroo/kanata> for more information.
3939 '';
4040 };
4141 extraDefCfg = mkOption {
4242 type = types.lines;
4343 default = "";
4444 example = "danger-enable-cmd yes";
4545- description = ''
4545+ description = lib.mdDoc ''
4646 Configuration of defcfg other than linux-dev.
4747- See <link xlink:href="https://github.com/jtroo/kanata"/> for more information.
4747+ See <https://github.com/jtroo/kanata> for more information.
4848 '';
4949 };
5050 };
···131131 default = pkgs.kanata;
132132 defaultText = lib.literalExpression "pkgs.kanata";
133133 example = lib.literalExpression "pkgs.kanata-with-cmd";
134134- description = ''
134134+ description = lib.mdDoc ''
135135 kanata package to use.
136136 If you enable danger-enable-cmd, pkgs.kanata-with-cmd should be used.
137137 '';
···139139 keyboards = mkOption {
140140 type = types.attrsOf (types.submodule keyboard);
141141 default = { };
142142- description = "Keyboard configurations.";
142142+ description = lib.mdDoc "Keyboard configurations.";
143143 };
144144 };
145145
+3-6
nixos/modules/services/hardware/lcd.nix
···6363 default = false;
6464 description = ''
6565 Set group-write permissions on a USB device.
6666- </para>
6767- <para>
6666+6867 A USB connected LCD panel will most likely require having its
6968 permissions modified for lcdd to write to it. Enabling this option
7069 sets group-write permissions on the device identified by
···7271 <option>services.hardware.lcd.usbPid</option>. In order to find the
7372 values, you can run the <command>lsusb</command> command. Example
7473 output:
7575- </para>
7676- <para>
7474+7775 <literal>
7876 Bus 005 Device 002: ID 0403:c630 Future Technology Devices International, Ltd lcd2usb interface
7977 </literal>
8080- </para>
8181- <para>
7878+8279 In this case the vendor id is 0403 and the product id is c630.
8380 '';
8481 };
+11-12
nixos/modules/services/hardware/udev.nix
···209209 packages = mkOption {
210210 type = types.listOf types.path;
211211 default = [];
212212- description = ''
213213- List of packages containing <command>udev</command> rules.
212212+ description = lib.mdDoc ''
213213+ List of packages containing {command}`udev` rules.
214214 All files found in
215215- <filename><replaceable>pkg</replaceable>/etc/udev/rules.d</filename> and
216216- <filename><replaceable>pkg</replaceable>/lib/udev/rules.d</filename>
215215+ {file}`«pkg»/etc/udev/rules.d` and
216216+ {file}`«pkg»/lib/udev/rules.d`
217217 will be included.
218218 '';
219219 apply = map getBin;
···281281 networking.usePredictableInterfaceNames = mkOption {
282282 default = true;
283283 type = types.bool;
284284- description = ''
285285- Whether to assign <link
286286- xlink:href='http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames'>predictable
287287- names to network interfaces</link>. If enabled, interfaces
284284+ description = lib.mdDoc ''
285285+ Whether to assign [predictable names to network interfaces](http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames).
286286+ If enabled, interfaces
288287 are assigned names that contain topology information
289289- (e.g. <literal>wlp3s0</literal>) and thus should be stable
288288+ (e.g. `wlp3s0`) and thus should be stable
290289 across reboots. If disabled, names depend on the order in
291290 which interfaces are discovered by the kernel, which may
292291 change randomly across reboots; for instance, you may find
293293- <literal>eth0</literal> and <literal>eth1</literal> flipping
292292+ `eth0` and `eth1` flipping
294293 unpredictably.
295294 '';
296295 };
···306305307306 List of packages containing <command>udev</command> rules that will be copied to stage 1.
308307 All files found in
309309- <filename><replaceable>pkg</replaceable>/etc/udev/rules.d</filename> and
310310- <filename><replaceable>pkg</replaceable>/lib/udev/rules.d</filename>
308308+ <filename>«pkg»/etc/udev/rules.d</filename> and
309309+ <filename>«pkg»/lib/udev/rules.d</filename>
311310 will be included.
312311 '';
313312 };
+11-12
nixos/modules/services/logging/filebeat.nix
···3131 };
32323333 inputs = mkOption {
3434- description = ''
3434+ description = lib.mdDoc ''
3535 Inputs specify how Filebeat locates and processes input data.
36363737- This is like <literal>services.filebeat.settings.filebeat.inputs</literal>,
3737+ This is like `services.filebeat.settings.filebeat.inputs`,
3838 but structured as an attribute set. This has the benefit
3939 that multiple NixOS modules can contribute settings to a
4040 single filebeat input.
41414242 An input type can be specified multiple times by choosing a
4343- different <literal><name></literal> for each, but setting
4444- <xref linkend="opt-services.filebeat.inputs._name_.type"/>
4343+ different `<name>` for each, but setting
4444+ [](#opt-services.filebeat.inputs._name_.type)
4545 to the same value.
46464747- See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
4747+ See <https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html>.
4848 '';
4949 default = {};
5050 type = types.attrsOf (types.submodule ({ name, ... }: {
···7777 };
78787979 modules = mkOption {
8080- description = ''
8080+ description = lib.mdDoc ''
8181 Filebeat modules provide a quick way to get started
8282 processing common log formats. They contain default
8383 configurations, Elasticsearch ingest pipeline definitions,
8484 and Kibana dashboards to help you implement and deploy a log
8585 monitoring solution.
86868787- This is like <literal>services.filebeat.settings.filebeat.modules</literal>,
8787+ This is like `services.filebeat.settings.filebeat.modules`,
8888 but structured as an attribute set. This has the benefit
8989 that multiple NixOS modules can contribute settings to a
9090 single filebeat module.
91919292 A module can be specified multiple times by choosing a
9393- different <literal><name></literal> for each, but setting
9494- <xref linkend="opt-services.filebeat.modules._name_.module"/>
9393+ different `<name>` for each, but setting
9494+ [](#opt-services.filebeat.modules._name_.module)
9595 to the same value.
96969797- See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
9797+ See <https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html>.
9898 '';
9999 default = {};
100100 type = types.attrsOf (types.submodule ({ name, ... }: {
···161161 internal = true;
162162 description = ''
163163 Inputs specify how Filebeat locates and processes
164164- input data. Use <xref
165165- linkend="opt-services.filebeat.inputs"/> instead.
164164+ input data. Use <xref linkend="opt-services.filebeat.inputs"/> instead.
166165167166 See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
168167 '';
+5-5
nixos/modules/services/logging/logrotate.nix
···276276 defaultText = ''
277277 A configuration file automatically generated by NixOS.
278278 '';
279279- description = ''
279279+ description = lib.mdDoc ''
280280 Override the configuration file used by MySQL. By default,
281281- NixOS generates one automatically from <xref linkend="opt-services.logrotate.settings"/>.
281281+ NixOS generates one automatically from [](#opt-services.logrotate.settings).
282282 '';
283283 example = literalExpression ''
284284 pkgs.writeText "logrotate.conf" '''
···346346 extraConfig = mkOption {
347347 default = "";
348348 type = types.lines;
349349- description = ''
349349+ description = lib.mdDoc ''
350350 Extra contents to append to the logrotate configuration file. Refer to
351351- <link xlink:href="https://linux.die.net/man/8/logrotate"/> for details.
351351+ <https://linux.die.net/man/8/logrotate> for details.
352352 This setting has been deprecated in favor of
353353- <link linkend="opt-services.logrotate.settings">logrotate settings</link>.
353353+ [logrotate settings](#opt-services.logrotate.settings).
354354 '';
355355 };
356356 };
+2-2
nixos/modules/services/mail/mailman.nix
···112112 bindPasswordFile = mkOption {
113113 type = types.str;
114114 example = "/run/secrets/ldap-bind";
115115- description = ''
115115+ description = lib.mdDoc ''
116116 Path to the file containing the bind password of the servie account
117117- defined by <xref linkend="opt-services.mailman.ldap.bindDn" />.
117117+ defined by [](#opt-services.mailman.ldap.bindDn).
118118 '';
119119 };
120120 superUserGroup = mkOption {
+6-6
nixos/modules/services/mail/nullmailer.nix
···3838 remotesFile = mkOption {
3939 type = types.nullOr types.str;
4040 default = null;
4141- description = ''
4242- Path to the <code>remotes</code> control file. This file contains a
4141+ description = lib.mdDoc ''
4242+ Path to the `remotes` control file. This file contains a
4343 list of remote servers to which to send each message.
44444545- See <code>man 8 nullmailer-send</code> for syntax and available
4545+ See `man 8 nullmailer-send` for syntax and available
4646 options.
4747 '';
4848 };
···153153 remotes = mkOption {
154154 type = types.nullOr types.str;
155155 default = null;
156156- description = ''
156156+ description = lib.mdDoc ''
157157 A list of remote servers to which to send each message. Each line
158158 contains a remote host name or address followed by an optional
159159 protocol string, separated by white space.
160160161161- See <code>man 8 nullmailer-send</code> for syntax and available
161161+ See `man 8 nullmailer-send` for syntax and available
162162 options.
163163164164 WARNING: This is stored world-readable in the nix store. If you need
165165 to specify any secret credentials here, consider using the
166166- <code>remotesFile</code> option instead.
166166+ `remotesFile` option instead.
167167 '';
168168 };
169169
+3-3
nixos/modules/services/mail/postfixadmin.nix
···1313 enable = mkOption {
1414 type = types.bool;
1515 default = false;
1616- description = ''
1616+ description = lib.mdDoc ''
1717 Whether to enable postfixadmin.
18181919 Also enables nginx virtual host management.
2020- Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.<name></literal>.
2121- See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
2020+ Further nginx configuration can be done by adapting `services.nginx.virtualHosts.<name>`.
2121+ See [](#opt-services.nginx.virtualHosts) for further information.
2222 '';
2323 };
2424
+5-5
nixos/modules/services/mail/public-inbox.nix
···2323 port = mkOption {
2424 type = with types; nullOr (either str port);
2525 default = defaultPort;
2626- description = ''
2626+ description = lib.mdDoc ''
2727 Listening port.
2828 Beware that public-inbox uses well-known ports number to decide whether to enable TLS or not.
2929- Set to null and use <code>systemd.sockets.public-inbox-${proto}d.listenStreams</code>
2929+ Set to null and use `systemd.sockets.public-inbox-${proto}d.listenStreams`
3030 if you need a more advanced listening.
3131 '';
3232 };
···239239 type = with types; nullOr (either str port);
240240 default = 80;
241241 example = "/run/public-inbox-httpd.sock";
242242- description = ''
242242+ description = lib.mdDoc ''
243243 Listening port or systemd's ListenStream= entry
244244 to be used as a reverse proxy, eg. in nginx:
245245- <code>locations."/inbox".proxyPass = "http://unix:''${config.services.public-inbox.http.port}:/inbox";</code>
246246- Set to null and use <code>systemd.sockets.public-inbox-httpd.listenStreams</code>
245245+ `locations."/inbox".proxyPass = "http://unix:''${config.services.public-inbox.http.port}:/inbox";`
246246+ Set to null and use `systemd.sockets.public-inbox-httpd.listenStreams`
247247 if you need a more advanced listening.
248248 '';
249249 };
+5-5
nixos/modules/services/mail/roundcube.nix
···1414 enable = mkOption {
1515 type = types.bool;
1616 default = false;
1717- description = ''
1717+ description = lib.mdDoc ''
1818 Whether to enable roundcube.
19192020 Also enables nginx virtual host management.
2121- Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.<name></literal>.
2222- See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
2121+ Further nginx configuration can be done by adapting `services.nginx.virtualHosts.<name>`.
2222+ See [](#opt-services.nginx.virtualHosts) for further information.
2323 '';
2424 };
2525···9999 maxAttachmentSize = mkOption {
100100 type = types.int;
101101 default = 18;
102102- description = ''
102102+ description = lib.mdDoc ''
103103 The maximum attachment size in MB.
104104105105 Note: Since roundcube only uses 70% of max upload values configured in php
106106- 30% is added automatically to <xref linkend="opt-services.roundcube.maxAttachmentSize"/>.
106106+ 30% is added automatically to [](#opt-services.roundcube.maxAttachmentSize).
107107 '';
108108 apply = configuredMaxAttachmentSize: "${toString (configuredMaxAttachmentSize * 1.3)}M";
109109 };
+9-9
nixos/modules/services/mail/sympa.nix
···8686 type = str;
8787 default = "en_US";
8888 example = "cs";
8989- description = ''
8989+ description = lib.mdDoc ''
9090 Default Sympa language.
9191- See <link xlink:href='https://github.com/sympa-community/sympa/tree/sympa-6.2/po/sympa' />
9191+ See <https://github.com/sympa-community/sympa/tree/sympa-6.2/po/sympa>
9292 for available options.
9393 '';
9494 };
···136136 example = {
137137 default_max_list_members = 3;
138138 };
139139- description = ''
140140- The <filename>robot.conf</filename> configuration file as key value set.
141141- See <link xlink:href='https://sympa-community.github.io/gpldoc/man/sympa.conf.5.html' />
139139+ description = lib.mdDoc ''
140140+ The {file}`robot.conf` configuration file as key value set.
141141+ See <https://sympa-community.github.io/gpldoc/man/sympa.conf.5.html>
142142 for list of configuration parameters.
143143 '';
144144 };
···242242 description = ''
243243 The webserver used for the Sympa web interface. Set it to `none` if you want to configure it yourself.
244244 Further nginx configuration can be done by adapting
245245- <option>services.nginx.virtualHosts.<replaceable>name</replaceable></option>.
245245+ <option>services.nginx.virtualHosts.«name»</option>.
246246 '';
247247 };
248248···285285 viewlogs_page_size = 50;
286286 }
287287 '';
288288- description = ''
289289- The <filename>sympa.conf</filename> configuration file as key value set.
290290- See <link xlink:href='https://sympa-community.github.io/gpldoc/man/sympa.conf.5.html' />
288288+ description = lib.mdDoc ''
289289+ The {file}`sympa.conf` configuration file as key value set.
290290+ See <https://sympa-community.github.io/gpldoc/man/sympa.conf.5.html>
291291 for list of configuration parameters.
292292 '';
293293 };
···4040 };
4141 }
4242 '';
4343- description = ''
4444- <filename>config.yaml</filename> configuration as a Nix attribute set.
4545- </para>
4343+ description = lib.mdDoc ''
4444+ {file}`config.yaml` configuration as a Nix attribute set.
46454747- <para>
4846 Configuration options should match those described in
4949- <link xlink:href="https://github.com/Half-Shot/matrix-appservice-discord/blob/master/config/config.sample.yaml">
5050- config.sample.yaml</link>.
5151- </para>
4747+ [config.sample.yaml](https://github.com/Half-Shot/matrix-appservice-discord/blob/master/config/config.sample.yaml).
52485353- <para>
5454- <option>config.bridge.domain</option> and <option>config.bridge.homeserverUrl</option>
4949+ {option}`config.bridge.domain` and {option}`config.bridge.homeserverUrl`
5550 should be set to match the public host name of the Matrix homeserver for webhooks and avatars to work.
5656- </para>
57515858- <para>
5959- Secret tokens should be specified using <option>environmentFile</option>
5252+ Secret tokens should be specified using {option}`environmentFile`
6053 instead of this world-readable attribute set.
6154 '';
6255 };
···7575 };
7676 }
7777 '';
7878- description = ''
7979- <filename>config.yaml</filename> configuration as a Nix attribute set.
7878+ description = lib.mdDoc ''
7979+ {file}`config.yaml` configuration as a Nix attribute set.
8080 Configuration options should match those described in
8181- <link xlink:href="https://github.com/mautrix/facebook/blob/master/mautrix_facebook/example-config.yaml">
8282- example-config.yaml</link>.
8383- </para>
8181+ [example-config.yaml](https://github.com/mautrix/facebook/blob/master/mautrix_facebook/example-config.yaml).
84828585- <para>
8686- Secret tokens should be specified using <option>environmentFile</option>
8383+ Secret tokens should be specified using {option}`environmentFile`
8784 instead of this world-readable attribute set.
8885 '';
8986 };
···7878 };
7979 }
8080 '';
8181- description = ''
8282- <filename>config.yaml</filename> configuration as a Nix attribute set.
8181+ description = lib.mdDoc ''
8282+ {file}`config.yaml` configuration as a Nix attribute set.
8383 Configuration options should match those described in
8484- <link xlink:href="https://github.com/tulir/mautrix-telegram/blob/master/example-config.yaml">
8585- example-config.yaml</link>.
8686- </para>
8484+ [example-config.yaml](https://github.com/tulir/mautrix-telegram/blob/master/example-config.yaml).
87858888- <para>
8989- Secret tokens should be specified using <option>environmentFile</option>
8686+ Secret tokens should be specified using {option}`environmentFile`
9087 instead of this world-readable attribute set.
9188 '';
9289 };
+4-4
nixos/modules/services/misc/autorandr.nix
···2727 options = {
2828 fingerprint = mkOption {
2929 type = types.attrsOf types.str;
3030- description = ''
3030+ description = lib.mdDoc ''
3131 Output name to EDID mapping.
3232- Use <code>autorandr --fingerprint</code> to get current setup values.
3232+ Use `autorandr --fingerprint` to get current setup values.
3333 '';
3434 default = { };
3535 };
···154154 });
155155 description = ''
156156 Output scale configuration.
157157- </para><para>
157157+158158 Either configure by pixels or a scaling factor. When using pixel method the
159159 <citerefentry>
160160 <refentrytitle>xrandr</refentrytitle>
···165165 will be used; when using factor method the option
166166 <parameter class="command">--scale</parameter>
167167 will be used.
168168- </para><para>
168168+169169 This option is a shortcut version of the transform option and they are mutually
170170 exclusive.
171171 '';
+5-8
nixos/modules/services/misc/bees.nix
···1111 fsOptions = with types; {
1212 options.spec = mkOption {
1313 type = str;
1414- description = ''
1414+ description = lib.mdDoc ''
1515 Description of how to identify the filesystem to be duplicated by this
1616 instance of bees. Note that deduplication crosses subvolumes; one must
1717 not configure multiple instances for subvolumes of the same filesystem
1818 (or block devices which are part of the same filesystem), but only for
1919 completely independent btrfs filesystems.
2020- </para>
2121- <para>
2020+2221 This must be in a format usable by findmnt; that could be a key=value
2322 pair, or a bare path to a mount point.
2423 Using bare paths will allow systemd to start the beesd service only
···2928 options.hashTableSizeMB = mkOption {
3029 type = types.addCheck types.int (n: mod n 16 == 0);
3130 default = 1024; # 1GB; default from upstream beesd script
3232- description = ''
3131+ description = lib.mdDoc ''
3332 Hash table size in MB; must be a multiple of 16.
3434- </para>
3535- <para>
3333+3634 A larger ratio of index size to storage size means smaller blocks of
3735 duplicate content are recognized.
3838- </para>
3939- <para>
3636+4037 If you have 1TB of data, a 4GB hash table (which is to say, a value of
4138 4096) will permit 4KB extents (the smallest possible size) to be
4239 recognized, whereas a value of 1024 -- creating a 1GB hash table --
···135135 default = {};
136136 description = ''
137137 Configuration for <package>etebase-server</package>. Refer to
138138- <link xlink:href="https://github.com/etesync/server/blob/master/etebase-server.ini.example" />
139139- and <link xlink:href="https://github.com/etesync/server/wiki" />
138138+ <link xlink:href="https://github.com/etesync/server/blob/master/etebase-server.ini.example"/>
139139+ and <link xlink:href="https://github.com/etesync/server/wiki"/>
140140 for details on supported values.
141141 '';
142142 example = {
+2-3
nixos/modules/services/misc/geoipupdate.nix
···4040 description = ''
4141 <productname>geoipupdate</productname> configuration
4242 options. See
4343- <link xlink:href="https://github.com/maxmind/geoipupdate/blob/main/doc/GeoIP.conf.md" />
4343+ <link xlink:href="https://github.com/maxmind/geoipupdate/blob/main/doc/GeoIP.conf.md"/>
4444 for a full list of available options.
45454646 Settings containing secret data should be set to an
···92929393 Always handled as a secret whether the value is
9494 wrapped in a <literal>{ _secret = ...; }</literal>
9595- attrset or not (refer to <xref
9696- linkend="opt-services.geoipupdate.settings" /> for
9595+ attrset or not (refer to <xref linkend="opt-services.geoipupdate.settings"/> for
9796 details).
9897 '';
9998 apply = x: if isAttrs x then x else { _secret = x; };
+1-1
nixos/modules/services/misc/klipper.nix
···7171 };
72727373 firmwares = mkOption {
7474- description = "Firmwares klipper should manage";
7474+ description = lib.mdDoc "Firmwares klipper should manage";
7575 default = { };
7676 type = with types; attrsOf
7777 (submodule {
+2-4
nixos/modules/services/misc/nix-daemon.nix
···636636 <manvolnum>5</manvolnum>
637637 </citerefentry> for avalaible options.
638638 The value declared here will be translated directly to the key-value pairs Nix expects.
639639- </para>
640640- <para>
639639+641640 You can use <command>nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.nix.settings</command>
642641 to view the current value. By default it is empty.
643643- </para>
644644- <para>
642642+645643 Nix configurations defined under <option>nix.*</option> will be translated and applied to this
646644 option. In addition, configuration specified in <option>nix.extraOptions</option> which will be appended
647645 verbatim to the resulting config file.
+2-2
nixos/modules/services/misc/persistent-evdev.nix
···2222 Physical devices should already exist in <filename class="devicefile">/dev/input/by-id/</filename>.
2323 Proxy devices will be automatically given a <literal>uinput-</literal> prefix.
24242525- See the <link xlink:href="https://github.com/aiberia/persistent-evdev#example-usage-with-libvirt">
2626- project page</link> for example configuration of virtual devices with libvirt
2525+ See the <link xlink:href="https://github.com/aiberia/persistent-evdev#example-usage-with-libvirt">project page</link>
2626+ for example configuration of virtual devices with libvirt
2727 and remember to add <literal>uinput-*</literal> devices to the qemu
2828 <literal>cgroup_device_acl</literal> list (see <xref linkend="opt-virtualisation.libvirtd.qemu.verbatimConfig"/>).
2929 '';
+5-5
nixos/modules/services/misc/sourcehut/default.nix
···180180 network-key = mkOption {
181181 description = ''
182182 An absolute file path (which should be outside the Nix-store)
183183- to a secret key to encrypt internal messages with. Use <code>srht-keygen network</code> to
183183+ to a secret key to encrypt internal messages with. Use <literal>srht-keygen network</literal> to
184184 generate this key. It must be consistent between all services and nodes.
185185 '';
186186 type = types.path;
···209209 service-key = mkOption {
210210 description = ''
211211 An absolute file path (which should be outside the Nix-store)
212212- to a key used for encrypting session cookies. Use <code>srht-keygen service</code> to
212212+ to a key used for encrypting session cookies. Use <literal>srht-keygen service</literal> to
213213 generate the service key. This must be shared between each node of the same
214214 service (e.g. git1.sr.ht and git2.sr.ht), but different services may use
215215 different keys. If you configure all of your services with the same
···252252253253 Your PGP key information (DO NOT mix up pub and priv here)
254254 You must remove the password from your secret key, if present.
255255- You can do this with <code>gpg --edit-key [key-id]</code>,
256256- then use the <code>passwd</code> command and do not enter a new password.
255255+ You can do this with <literal>gpg --edit-key [key-id]</literal>,
256256+ then use the <literal>passwd</literal> command and do not enter a new password.
257257 '';
258258 };
259259 pgp-pubkey = mkOption {
···294294 This should be consistent for all *.sr.ht sites,
295295 as this key will be used to verify signatures
296296 from other sites in your network.
297297- Use the <code>srht-keygen webhook</code> command to generate a key.
297297+ Use the <literal>srht-keygen webhook</literal> command to generate a key.
298298 '';
299299 type = types.path;
300300 apply = s: "<" + toString s;
+1-1
nixos/modules/services/misc/sssd.nix
···4242 kcm = mkOption {
4343 type = types.bool;
4444 default = false;
4545- description = ''
4545+ description = lib.mdDoc ''
4646 Whether to use SSS as a Kerberos Cache Manager (KCM).
4747 Kerberos will be configured to cache credentials in SSS.
4848 '';
+1-3
nixos/modules/services/misc/zoneminder.nix
···6868 services.zoneminder = with lib; {
6969 enable = lib.mkEnableOption ''
7070 ZoneMinder
7171- </para><para>
7171+7272 If you intend to run the database locally, you should set
7373 `config.services.zoneminder.database.createLocally` to true. Otherwise,
7474 when set to `false` (the default), you will have to create the database
···8282 default = "nginx";
8383 description = ''
8484 The webserver to configure for the PHP frontend.
8585- </para>
8686- <para>
87858886 Set it to `none` if you want to configure it yourself. PRs are welcome
8987 for support for other web servers.
+7-7
nixos/modules/services/monitoring/cadvisor.nix
···66666767 storageDriverPasswordFile = mkOption {
6868 type = types.str;
6969- description = ''
6969+ description = lib.mdDoc ''
7070 File that contains the cadvisor storage driver password.
71717272- <option>storageDriverPasswordFile</option> takes precedence over <option>storageDriverPassword</option>
7272+ {option}`storageDriverPasswordFile` takes precedence over {option}`storageDriverPassword`
73737474- Warning: when <option>storageDriverPassword</option> is non-empty this defaults to a file in the
7575- world-readable Nix store that contains the value of <option>storageDriverPassword</option>.
7474+ Warning: when {option}`storageDriverPassword` is non-empty this defaults to a file in the
7575+ world-readable Nix store that contains the value of {option}`storageDriverPassword`.
76767777 It's recommended to override this with a path not in the Nix store.
7878- Tip: use <link xlink:href='https://nixos.org/nixops/manual/#idm140737318306400'>nixops key management</link>
7878+ Tip: use [nixops key management](https://nixos.org/nixops/manual/#idm140737318306400)
7979 '';
8080 };
8181···8888 extraOptions = mkOption {
8989 type = types.listOf types.str;
9090 default = [];
9191- description = ''
9191+ description = lib.mdDoc ''
9292 Additional cadvisor options.
93939494- See <link xlink:href='https://github.com/google/cadvisor/blob/master/docs/runtime_options.md'/> for available options.
9494+ See <https://github.com/google/cadvisor/blob/master/docs/runtime_options.md> for available options.
9595 '';
9696 };
9797 };
···3232 };
33333434 modules = mkOption {
3535- description = ''
3535+ description = lib.mdDoc ''
3636 Metricbeat modules are responsible for reading metrics from the various sources.
37373838- This is like <literal>services.metricbeat.settings.metricbeat.modules</literal>,
3838+ This is like `services.metricbeat.settings.metricbeat.modules`,
3939 but structured as an attribute set. This has the benefit that multiple
4040 NixOS modules can contribute settings to a single metricbeat module.
41414242- A module can be specified multiple times by choosing a different <literal><name></literal>
4343- for each, but setting <xref linkend="opt-services.metricbeat.modules._name_.module"/> to the same value.
4242+ A module can be specified multiple times by choosing a different `<name>`
4343+ for each, but setting [](#opt-services.metricbeat.modules._name_.module) to the same value.
44444545- See <link xlink:href="https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html"/>.
4545+ See <https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html>.
4646 '';
4747 default = {};
4848 type = types.attrsOf (types.submodule ({ name, ... }: {
+14-14
nixos/modules/services/monitoring/munin.nix
···138138 enable = mkOption {
139139 default = false;
140140 type = types.bool;
141141- description = ''
141141+ description = lib.mdDoc ''
142142 Enable Munin Node agent. Munin node listens on 0.0.0.0 and
143143 by default accepts connections only from 127.0.0.1 for security reasons.
144144145145- See <link xlink:href='http://guide.munin-monitoring.org/en/latest/architecture/index.html' />.
145145+ See <http://guide.munin-monitoring.org/en/latest/architecture/index.html>.
146146 '';
147147 };
148148149149 extraConfig = mkOption {
150150 default = "";
151151 type = types.lines;
152152- description = ''
153153- <filename>munin-node.conf</filename> extra configuration. See
154154- <link xlink:href='http://guide.munin-monitoring.org/en/latest/reference/munin-node.conf.html' />
152152+ description = lib.mdDoc ''
153153+ {file}`munin-node.conf` extra configuration. See
154154+ <http://guide.munin-monitoring.org/en/latest/reference/munin-node.conf.html>
155155 '';
156156 };
157157158158 extraPluginConfig = mkOption {
159159 default = "";
160160 type = types.lines;
161161- description = ''
162162- <filename>plugin-conf.d</filename> extra plugin configuration. See
163163- <link xlink:href='http://guide.munin-monitoring.org/en/latest/plugin/use.html' />
161161+ description = lib.mdDoc ''
162162+ {file}`plugin-conf.d` extra plugin configuration. See
163163+ <http://guide.munin-monitoring.org/en/latest/plugin/use.html>
164164 '';
165165 example = ''
166166 [fail2ban_*]
···266266 extraGlobalConfig = mkOption {
267267 default = "";
268268 type = types.lines;
269269- description = ''
270270- <filename>munin.conf</filename> extra global configuration.
271271- See <link xlink:href='http://guide.munin-monitoring.org/en/latest/reference/munin.conf.html' />.
269269+ description = lib.mdDoc ''
270270+ {file}`munin.conf` extra global configuration.
271271+ See <http://guide.munin-monitoring.org/en/latest/reference/munin.conf.html>.
272272 Useful to setup notifications, see
273273- <link xlink:href='http://guide.munin-monitoring.org/en/latest/tutorial/alert.html' />
273273+ <http://guide.munin-monitoring.org/en/latest/tutorial/alert.html>
274274 '';
275275 example = ''
276276 contact.email.command mail -s "Munin notification for ''${var:host}" someone@example.com
···280280 hosts = mkOption {
281281 default = "";
282282 type = types.lines;
283283- description = ''
283283+ description = lib.mdDoc ''
284284 Definitions of hosts of nodes to collect data from. Needs at least one
285285 host for cron to succeed. See
286286- <link xlink:href='http://guide.munin-monitoring.org/en/latest/reference/munin.conf.html' />
286286+ <http://guide.munin-monitoring.org/en/latest/reference/munin.conf.html>
287287 '';
288288 example = literalExpression ''
289289 '''
+1-1
nixos/modules/services/monitoring/nagios.nix
···88888989 options = {
9090 services.nagios = {
9191- enable = mkEnableOption "<link xlink:href='http://www.nagios.org/'>Nagios</link> to monitor your system or network.";
9191+ enable = mkEnableOption ''<link xlink:href="http://www.nagios.org/">Nagios</link> to monitor your system or network.'';
92929393 objectDefs = mkOption {
9494 description = "
+4-4
nixos/modules/services/monitoring/netdata.nix
···114114 example = literalExpression ''
115115 [ "/path/to/plugins.d" ]
116116 '';
117117- description = ''
117117+ description = lib.mdDoc ''
118118 Extra paths to add to the netdata global "plugins directory"
119119 option. Useful for when you want to include your own
120120 collection scripts.
121121- </para><para>
121121+122122 Details about writing a custom netdata plugin are available at:
123123- <link xlink:href="https://docs.netdata.cloud/collectors/plugins.d/"/>
124124- </para><para>
123123+ <https://docs.netdata.cloud/collectors/plugins.d/>
124124+125125 Cannot be combined with configText.
126126 '';
127127 };
+17-22
nixos/modules/services/monitoring/parsedmarc.nix
···2929 enable = lib.mkOption {
3030 type = lib.types.bool;
3131 default = false;
3232- description = ''
3232+ description = lib.mdDoc ''
3333 Whether Postfix and Dovecot should be set up to receive
3434 mail locally. parsedmarc will be configured to watch the
3535 local inbox as the automatically created user specified in
3636- <xref linkend="opt-services.parsedmarc.provision.localMail.recipientName" />
3636+ [](#opt-services.parsedmarc.provision.localMail.recipientName)
3737 '';
3838 };
3939···6868 geoIp = lib.mkOption {
6969 type = lib.types.bool;
7070 default = true;
7171- description = ''
7272- Whether to enable and configure the <link
7373- linkend="opt-services.geoipupdate.enable">geoipupdate</link>
7171+ description = lib.mdDoc ''
7272+ Whether to enable and configure the [geoipupdate](#opt-services.geoipupdate.enable)
7473 service to automatically fetch GeoIP databases. Not crucial,
7574 but recommended for full functionality.
76757777- To finish the setup, you need to manually set the <xref
7878- linkend="opt-services.geoipupdate.settings.AccountID" /> and
7979- <xref linkend="opt-services.geoipupdate.settings.LicenseKey" />
7676+ To finish the setup, you need to manually set the [](#opt-services.geoipupdate.settings.AccountID) and
7777+ [](#opt-services.geoipupdate.settings.LicenseKey)
8078 options.
8179 '';
8280 };
···9795 config.${opt.provision.elasticsearch} && config.${options.services.grafana.enable}
9896 '';
9997 apply = x: x && cfg.provision.elasticsearch;
100100- description = ''
9898+ description = lib.mdDoc ''
10199 Whether the automatically provisioned Elasticsearch
102100 instance should be added as a grafana datasource. Has no
103101 effect unless
104104- <xref linkend="opt-services.parsedmarc.provision.elasticsearch" />
102102+ [](#opt-services.parsedmarc.provision.elasticsearch)
105103 is also enabled.
106104 '';
107105 };
···208206 password = lib.mkOption {
209207 type = with lib.types; nullOr (either path (attrsOf path));
210208 default = null;
211211- description = ''
209209+ description = lib.mdDoc ''
212210 The IMAP server password.
213211214212 Always handled as a secret whether the value is
215215- wrapped in a <literal>{ _secret = ...; }</literal>
216216- attrset or not (refer to <xref
217217- linkend="opt-services.parsedmarc.settings" /> for
213213+ wrapped in a `{ _secret = ...; }`
214214+ attrset or not (refer to [](#opt-services.parsedmarc.settings) for
218215 details).
219216 '';
220217 apply = x: if isAttrs x || x == null then x else { _secret = x; };
···273270 password = lib.mkOption {
274271 type = with lib.types; nullOr (either path (attrsOf path));
275272 default = null;
276276- description = ''
273273+ description = lib.mdDoc ''
277274 The SMTP server password.
278275279276 Always handled as a secret whether the value is
280280- wrapped in a <literal>{ _secret = ...; }</literal>
281281- attrset or not (refer to <xref
282282- linkend="opt-services.parsedmarc.settings" /> for
277277+ wrapped in a `{ _secret = ...; }`
278278+ attrset or not (refer to [](#opt-services.parsedmarc.settings) for
283279 details).
284280 '';
285281 apply = x: if isAttrs x || x == null then x else { _secret = x; };
···326322 password = lib.mkOption {
327323 type = with lib.types; nullOr (either path (attrsOf path));
328324 default = null;
329329- description = ''
325325+ description = lib.mdDoc ''
330326 The password to use when connecting to Elasticsearch,
331327 if required.
332328333329 Always handled as a secret whether the value is
334334- wrapped in a <literal>{ _secret = ...; }</literal>
335335- attrset or not (refer to <xref
336336- linkend="opt-services.parsedmarc.settings" /> for
330330+ wrapped in a `{ _secret = ...; }`
331331+ attrset or not (refer to [](#opt-services.parsedmarc.settings) for
337332 details).
338333 '';
339334 apply = x: if isAttrs x || x == null then x else { _secret = x; };
···379379 gce_sd_configs = mkOpt (types.listOf promTypes.gce_sd_config) ''
380380 List of Google Compute Engine service discovery configurations.
381381382382- See <link
383383- xlink:href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config">the
384384- relevant Prometheus configuration docs</link> for more detail.
382382+ See <link xlink:href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config">the relevant Prometheus configuration docs</link>
383383+ for more detail.
385384 '';
386385387386 hetzner_sd_configs = mkOpt (types.listOf promTypes.hetzner_sd_config) ''
···807806 filter = mkOpt types.str ''
808807 Filter can be used optionally to filter the instance list by other
809808 criteria Syntax of this filter string is described here in the filter
810810- query parameter section: <link
811811- xlink:href="https://cloud.google.com/compute/docs/reference/latest/instances/list"
812812- />.
809809+ query parameter section: <link xlink:href="https://cloud.google.com/compute/docs/reference/latest/instances/list"/>.
813810 '';
814811815812 refresh_interval = mkDefOpt types.str "60s" ''
···825822 The tag separator used to separate concatenated GCE instance network tags.
826823827824 See the GCP documentation on network tags for more information:
828828- <link xlink:href="https://cloud.google.com/vpc/docs/add-remove-network-tags" />
825825+ <link xlink:href="https://cloud.google.com/vpc/docs/add-remove-network-tags"/>
829826 '';
830827 };
831828 };
···1033103010341031 auth_token = mkOpt types.str ''
10351032 Optional authentication information for token-based authentication:
10361036- <link xlink:href="https://docs.mesosphere.com/1.11/security/ent/iam-api/#passing-an-authentication-token" />
10331033+ <link xlink:href="https://docs.mesosphere.com/1.11/security/ent/iam-api/#passing-an-authentication-token"/>
10371034 It is mutually exclusive with <literal>auth_token_file</literal> and other authentication mechanisms.
10381035 '';
1039103610401037 auth_token_file = mkOpt types.str ''
10411038 Optional authentication information for token-based authentication:
10421042- <link xlink:href="https://docs.mesosphere.com/1.11/security/ent/iam-api/#passing-an-authentication-token" />
10391039+ <link xlink:href="https://docs.mesosphere.com/1.11/security/ent/iam-api/#passing-an-authentication-token"/>
10431040 It is mutually exclusive with <literal>auth_token</literal> and other authentication mechanisms.
10441041 '';
10451042 };
···2222 All settings expressed as an Nix attrset.
23232424 Check the official documentation for the corresponding YAML
2525- settings that can all be used here: <link xlink:href="https://github.com/ncabatoff/process-exporter" />
2525+ settings that can all be used here: <link xlink:href="https://github.com/ncabatoff/process-exporter"/>
2626 '';
2727 };
2828 };
···4141 All settings expressed as an Nix attrset.
42424343 Check the official documentation for the corresponding YAML
4444- settings that can all be used here: <link xlink:href="https://github.com/adhocteam/script_exporter#sample-configuration" />
4444+ settings that can all be used here: <link xlink:href="https://github.com/adhocteam/script_exporter#sample-configuration"/>
4545 '';
4646 };
4747 };
+5-5
nixos/modules/services/networking/biboumi.nix
···8383 };
8484 options.password = mkOption {
8585 type = with types; nullOr str;
8686- description = ''
8686+ description = lib.mdDoc ''
8787 The password used to authenticate the XMPP component to your XMPP server.
8888 This password must be configured in the XMPP server,
8989 associated with the external component on
9090- <link linkend="opt-services.biboumi.settings.hostname">hostname</link>.
9090+ [hostname](#opt-services.biboumi.settings.hostname).
91919292- Set it to null and use <link linkend="opt-services.biboumi.credentialsFile">credentialsFile</link>
9292+ Set it to null and use [credentialsFile](#opt-services.biboumi.credentialsFile)
9393 if you do not want this password to go into the Nix store.
9494 '';
9595 };
···155155156156 credentialsFile = mkOption {
157157 type = types.path;
158158- description = ''
158158+ description = lib.mdDoc ''
159159 Path to a configuration file to be merged with the settings.
160160 Beware not to surround "=" with spaces when setting biboumi's options in this file.
161161 Useful to merge a file which is better kept out of the Nix store
162162 because it contains sensible data like
163163- <link linkend="opt-services.biboumi.settings.password">password</link>.
163163+ [password](#opt-services.biboumi.settings.password).
164164 '';
165165 default = "/dev/null";
166166 example = "/run/keys/biboumi.cfg";
···1313 enable = mkEnableOption "BIRD Internet Routing Daemon";
1414 config = mkOption {
1515 type = types.lines;
1616- description = ''
1616+ description = lib.mdDoc ''
1717 BIRD Internet Routing Daemon configuration file.
1818- <link xlink:href='http://bird.network.cz/'/>
1818+ <http://bird.network.cz/>
1919 '';
2020 };
2121 checkConfig = mkOption {
2222 type = types.bool;
2323 default = true;
2424- description = ''
2424+ description = lib.mdDoc ''
2525 Whether the config should be checked at build time.
2626 When the config can't be checked during build time, for example when it includes
2727- other files, either disable this option or use <code>preCheckConfig</code> to create
2727+ other files, either disable this option or use `preCheckConfig` to create
2828 the included files before checking.
2929 '';
3030 };
···3434 example = ''
3535 echo "cost 100;" > include.conf
3636 '';
3737- description = ''
3737+ description = lib.mdDoc ''
3838 Commands to execute before the config file check. The file to be checked will be
3939- available as <code>bird2.conf</code> in the current directory.
3939+ available as `bird2.conf` in the current directory.
40404141 Files created with this option will not be available at service runtime, only during
4242 build time checking.
+4-1
nixos/modules/services/networking/coredns.nix
···1717 }
1818 '';
1919 type = types.lines;
2020- description = "Verbatim Corefile to use. See <link xlink:href=\"https://coredns.io/manual/toc/#configuration\"/> for details.";
2020+ description = lib.mdDoc ''
2121+ Verbatim Corefile to use.
2222+ See <https://coredns.io/manual/toc/#configuration> for details.
2323+ '';
2124 };
22252326 package = mkOption {
+9-9
nixos/modules/services/networking/ghostunnel.nix
···4040 description = ''
4141 Path to keystore (combined PEM with cert/key, or PKCS12 keystore).
42424343- NB: storepass is not supported because it would expose credentials via <code>/proc/*/cmdline</code>.
4343+ NB: storepass is not supported because it would expose credentials via <literal>/proc/*/cmdline</literal>.
44444545- Specify this or <code>cert</code> and <code>key</code>.
4545+ Specify this or <literal>cert</literal> and <literal>key</literal>.
4646 '';
4747 type = types.nullOr types.str;
4848 default = null;
4949 };
50505151 cert = mkOption {
5252- description = ''
5252+ description = lib.mdDoc ''
5353 Path to certificate (PEM with certificate chain).
54545555- Not required if <code>keystore</code> is set.
5555+ Not required if `keystore` is set.
5656 '';
5757 type = types.nullOr types.str;
5858 default = null;
5959 };
60606161 key = mkOption {
6262- description = ''
6262+ description = lib.mdDoc ''
6363 Path to certificate private key (PEM with private key).
64646565- Not required if <code>keystore</code> is set.
6565+ Not required if `keystore` is set.
6666 '';
6767 type = types.nullOr types.str;
6868 default = null;
6969 };
70707171 cacert = mkOption {
7272- description = ''
7373- Path to CA bundle file (PEM/X509). Uses system trust store if <code>null</code>.
7272+ description = lib.mdDoc ''
7373+ Path to CA bundle file (PEM/X509). Uses system trust store if `null`.
7474 '';
7575 type = types.nullOr types.str;
7676 };
···124124 };
125125126126 extraArguments = mkOption {
127127- description = "Extra arguments to pass to <code>ghostunnel server</code>";
127127+ description = lib.mdDoc "Extra arguments to pass to `ghostunnel server`";
128128 type = types.separatedString " ";
129129 default = "";
130130 };
+3-3
nixos/modules/services/networking/hans.nix
···1919 services.hans = {
2020 clients = mkOption {
2121 default = {};
2222- description = ''
2222+ description = lib.mdDoc ''
2323 Each attribute of this option defines a systemd service that
2424 runs hans. Many or none may be defined.
2525 The name of each service is
2626- <literal>hans-<replaceable>name</replaceable></literal>
2727- where <replaceable>name</replaceable> is the name of the
2626+ `hans-«name»`
2727+ where «name» is the name of the
2828 corresponding attribute name.
2929 '';
3030 example = literalExpression ''
+3-3
nixos/modules/services/networking/iodine.nix
···2828 services.iodine = {
2929 clients = mkOption {
3030 default = {};
3131- description = ''
3131+ description = lib.mdDoc ''
3232 Each attribute of this option defines a systemd service that
3333 runs iodine. Many or none may be defined.
3434 The name of each service is
3535- <literal>iodine-<replaceable>name</replaceable></literal>
3636- where <replaceable>name</replaceable> is the name of the
3535+ `iodine-«name»`
3636+ where «name» is the name of the
3737 corresponding attribute name.
3838 '';
3939 example = literalExpression ''
+16-16
nixos/modules/services/networking/kea.nix
···5454 configFile = mkOption {
5555 type = nullOr path;
5656 default = null;
5757- description = ''
5858- Kea Control Agent configuration as a path, see <link xlink:href="https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html"/>.
5757+ description = lib.mdDoc ''
5858+ Kea Control Agent configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html>.
59596060- Takes preference over <link linkend="opt-services.kea.ctrl-agent.settings">settings</link>.
6161- Most users should prefer using <link linkend="opt-services.kea.ctrl-agent.settings">settings</link> instead.
6060+ Takes preference over [settings](#opt-services.kea.ctrl-agent.settings).
6161+ Most users should prefer using [settings](#opt-services.kea.ctrl-agent.settings) instead.
6262 '';
6363 };
6464···9393 configFile = mkOption {
9494 type = nullOr path;
9595 default = null;
9696- description = ''
9797- Kea DHCP4 configuration as a path, see <link xlink:href="https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html"/>.
9696+ description = lib.mdDoc ''
9797+ Kea DHCP4 configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html>.
98989999- Takes preference over <link linkend="opt-services.kea.dhcp4.settings">settings</link>.
100100- Most users should prefer using <link linkend="opt-services.kea.dhcp4.settings">settings</link> instead.
9999+ Takes preference over [settings](#opt-services.kea.dhcp4.settings).
100100+ Most users should prefer using [settings](#opt-services.kea.dhcp4.settings) instead.
101101 '';
102102 };
103103···153153 configFile = mkOption {
154154 type = nullOr path;
155155 default = null;
156156- description = ''
157157- Kea DHCP6 configuration as a path, see <link xlink:href="https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html"/>.
156156+ description = lib.mdDoc ''
157157+ Kea DHCP6 configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html>.
158158159159- Takes preference over <link linkend="opt-services.kea.dhcp6.settings">settings</link>.
160160- Most users should prefer using <link linkend="opt-services.kea.dhcp6.settings">settings</link> instead.
159159+ Takes preference over [settings](#opt-services.kea.dhcp6.settings).
160160+ Most users should prefer using [settings](#opt-services.kea.dhcp6.settings) instead.
161161 '';
162162 };
163163···214214 configFile = mkOption {
215215 type = nullOr path;
216216 default = null;
217217- description = ''
218218- Kea DHCP-DDNS configuration as a path, see <link xlink:href="https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html"/>.
217217+ description = lib.mdDoc ''
218218+ Kea DHCP-DDNS configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html>.
219219220220- Takes preference over <link linkend="opt-services.kea.dhcp-ddns.settings">settings</link>.
221221- Most users should prefer using <link linkend="opt-services.kea.dhcp-ddns.settings">settings</link> instead.
220220+ Takes preference over [settings](#opt-services.kea.dhcp-ddns.settings).
221221+ Most users should prefer using [settings](#opt-services.kea.dhcp-ddns.settings) instead.
222222 '';
223223 };
224224
+2-2
nixos/modules/services/networking/ncdns.nix
···176176 certstore.nssdbdir = "../../home/alice/.pki/nssdb";
177177 }
178178 '';
179179- description = ''
179179+ description = lib.mdDoc ''
180180 ncdns settings. Use this option to configure ncds
181181 settings not exposed in a NixOS option or to bypass one.
182182- See the example ncdns.conf file at <link xlink:href="https://github.com/namecoin/ncdns/blob/master/_doc/ncdns.conf.example"/>
182182+ See the example ncdns.conf file at <https://github.com/namecoin/ncdns/blob/master/_doc/ncdns.conf.example>
183183 for the available options.
184184 '';
185185 };
···329329 default = "default";
330330 description = ''
331331 Set the DNS (<literal>resolv.conf</literal>) processing mode.
332332- </para>
333333- <para>
332332+334333 A description of these modes can be found in the main section of
335334 <link xlink:href="https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html">
336335 https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
···388387 enableStrongSwan = mkOption {
389388 type = types.bool;
390389 default = false;
391391- description = ''
390390+ description = lib.mdDoc ''
392391 Enable the StrongSwan plugin.
393393- </para><para>
392392+394393 If you enable this option the
395395- <literal>networkmanager_strongswan</literal> plugin will be added to
396396- the <option>networking.networkmanager.plugins</option> option
394394+ `networkmanager_strongswan` plugin will be added to
395395+ the {option}`networking.networkmanager.plugins` option
397396 so you don't need to to that yourself.
398397 '';
399398 };
···4040 enable = mkOption {
4141 type = types.bool;
4242 default = false;
4343- description = ''
4343+ description = lib.mdDoc ''
4444 Whether to synchronise your machine's time using ntpd, as a peer in
4545 the NTP network.
4646- </para>
4747- <para>
4848- Disables <literal>systemd.timesyncd</literal> if enabled.
4646+4747+ Disables `systemd.timesyncd` if enabled.
4948 '';
5049 };
51505251 restrictDefault = mkOption {
5352 type = types.listOf types.str;
5454- description = ''
5353+ description = lib.mdDoc ''
5554 The restriction flags to be set by default.
5656- </para>
5757- <para>
5555+5856 The default flags prevent external hosts from using ntpd as a DDoS
5957 reflector, setting system time, and querying OS/ntpd version. As
6058 recommended in section 6.5.1.1.3, answer "No" of
···65636664 restrictSource = mkOption {
6765 type = types.listOf types.str;
6868- description = ''
6666+ description = lib.mdDoc ''
6967 The restriction flags to be set on source.
7070- </para>
7171- <para>
6868+7269 The default flags allow peers to be added by ntpd from configured
7370 pool(s), but not by other means.
7471 '';
+7-7
nixos/modules/services/networking/openconnect.nix
···3838 # set an authentication cookie, because they have to be requested
3939 # for every new connection and would only work once.
4040 passwordFile = mkOption {
4141- description = ''
4141+ description = lib.mdDoc ''
4242 File containing the password to authenticate with. This
4343- is passed to <code>openconnect</code> via the
4444- <code>--passwd-on-stdin</code> option.
4343+ is passed to `openconnect` via the
4444+ `--passwd-on-stdin` option.
4545 '';
4646 default = null;
4747 example = "/var/lib/secrets/openconnect-passwd";
···6363 };
64646565 extraOptions = mkOption {
6666- description = ''
6666+ description = lib.mdDoc ''
6767 Extra config to be appended to the interface config. It should
6868 contain long-format options as would be accepted on the command
6969- line by <code>openconnect</code>
6969+ line by `openconnect`
7070 (see https://www.infradead.org/openconnect/manual.html).
7171- Non-key-value options like <code>deflate</code> can be used by
7272- declaring them as booleans, i. e. <code>deflate = true;</code>.
7171+ Non-key-value options like `deflate` can be used by
7272+ declaring them as booleans, i. e. `deflate = true;`.
7373 '';
7474 default = { };
7575 example = {
+3-3
nixos/modules/services/networking/openvpn.nix
···115115 }
116116 '';
117117118118- description = ''
118118+ description = lib.mdDoc ''
119119 Each attribute of this option defines a systemd service that
120120 runs an OpenVPN instance. These can be OpenVPN servers or
121121 clients. The name of each systemd service is
122122- <literal>openvpn-<replaceable>name</replaceable>.service</literal>,
123123- where <replaceable>name</replaceable> is the corresponding
122122+ `openvpn-«name».service`,
123123+ where «name» is the corresponding
124124 attribute name.
125125 '';
126126
+4-4
nixos/modules/services/networking/pleroma.nix
···34343535 configs = mkOption {
3636 type = with types; listOf str;
3737- description = ''
3737+ description = lib.mdDoc ''
3838 Pleroma public configuration.
39394040 This list gets appended from left to
···4242 configuration imperatively, meaning you can override a
4343 setting by appending a new str to this NixOS option list.
44444545- <emphasis>DO NOT STORE ANY PLEROMA SECRET
4646- HERE</emphasis>, use
4747- <link linkend="opt-services.pleroma.secretConfigFile">services.pleroma.secretConfigFile</link>
4545+ *DO NOT STORE ANY PLEROMA SECRET
4646+ HERE*, use
4747+ [services.pleroma.secretConfigFile](#opt-services.pleroma.secretConfigFile)
4848 instead.
49495050 This setting is going to be stored in a file part of
+1-1
nixos/modules/services/networking/seafile.nix
···133133 type = types.lines;
134134 description = ''
135135 Extra config to append to `seahub_settings.py` file.
136136- Refer to <link xlink:href="https://manual.seafile.com/config/seahub_settings_py/" />
136136+ Refer to <link xlink:href="https://manual.seafile.com/config/seahub_settings_py/"/>
137137 for all available options.
138138 '';
139139 };
+15-18
nixos/modules/services/networking/ssh/sshd.nix
···257257 authorizedKeysFiles = mkOption {
258258 type = types.listOf types.str;
259259 default = [];
260260- description = ''
260260+ description = lib.mdDoc ''
261261 Specify the rules for which files to read on the host.
262262263263 This is an advanced option. If you're looking to configure user
264264- keys, you can generally use <xref linkend="opt-users.users._name_.openssh.authorizedKeys.keys"/>
265265- or <xref linkend="opt-users.users._name_.openssh.authorizedKeys.keyFiles"/>.
264264+ keys, you can generally use [](#opt-users.users._name_.openssh.authorizedKeys.keys)
265265+ or [](#opt-users.users._name_.openssh.authorizedKeys.keyFiles).
266266267267 These are paths relative to the host root file system or home
268268 directories and they are subject to certain token expansion rules.
···298298 "curve25519-sha256@libssh.org"
299299 "diffie-hellman-group-exchange-sha256"
300300 ];
301301- description = ''
301301+ description = lib.mdDoc ''
302302 Allowed key exchange algorithms
303303- </para>
304304- <para>
303303+305304 Uses the lower bound recommended in both
306306- <link xlink:href="https://stribika.github.io/2015/01/04/secure-secure-shell.html" />
305305+ <https://stribika.github.io/2015/01/04/secure-secure-shell.html>
307306 and
308308- <link xlink:href="https://infosec.mozilla.org/guidelines/openssh#modern-openssh-67" />
307307+ <https://infosec.mozilla.org/guidelines/openssh#modern-openssh-67>
309308 '';
310309 };
311310···319318 "aes192-ctr"
320319 "aes128-ctr"
321320 ];
322322- description = ''
321321+ description = lib.mdDoc ''
323322 Allowed ciphers
324324- </para>
325325- <para>
323323+326324 Defaults to recommended settings from both
327327- <link xlink:href="https://stribika.github.io/2015/01/04/secure-secure-shell.html" />
325325+ <https://stribika.github.io/2015/01/04/secure-secure-shell.html>
328326 and
329329- <link xlink:href="https://infosec.mozilla.org/guidelines/openssh#modern-openssh-67" />
327327+ <https://infosec.mozilla.org/guidelines/openssh#modern-openssh-67>
330328 '';
331329 };
332330···340338 "hmac-sha2-256"
341339 "umac-128@openssh.com"
342340 ];
343343- description = ''
341341+ description = lib.mdDoc ''
344342 Allowed MACs
345345- </para>
346346- <para>
343343+347344 Defaults to recommended settings from both
348348- <link xlink:href="https://stribika.github.io/2015/01/04/secure-secure-shell.html" />
345345+ <https://stribika.github.io/2015/01/04/secure-secure-shell.html>
349346 and
350350- <link xlink:href="https://infosec.mozilla.org/guidelines/openssh#modern-openssh-67" />
347347+ <https://infosec.mozilla.org/guidelines/openssh#modern-openssh-67>
351348 '';
352349 };
353350
···1515 file = mkOptionalStrParam ''
1616 Absolute path to the certificate to load. Passed as-is to the daemon, so
1717 it must be readable by it.
1818- </para><para>
1818+1919 Configure either this or <option>handle</option>, but not both, in one section.
2020 '';
21212222 handle = mkOptionalHexParam ''
2323 Hex-encoded CKA_ID or handle of the certificate on a token or TPM,
2424 respectively.
2525- </para><para>
2525+2626 Configure either this or <option>file</option>, but not both, in one section.
2727 '';
2828···4040 cacert = mkOptionalStrParam ''
4141 The certificates may use a relative path from the swanctl
4242 <literal>x509ca</literal> directory or an absolute path.
4343- </para><para>
4343+4444 Configure one of <option>cacert</option>,
4545 <option>file</option>, or
4646 <option>handle</option> per section.
···8282 local_addrs = mkCommaSepListParam [] ''
8383 Local address(es) to use for IKE communication. Takes
8484 single IPv4/IPv6 addresses, DNS names, CIDR subnets or IP address ranges.
8585- </para><para>
8585+8686 As initiator, the first non-range/non-subnet is used to initiate the
8787 connection from. As responder, the local destination address must match at
8888 least to one of the specified addresses, subnets or ranges.
8989- </para><para>
8989+9090 If FQDNs are assigned they are resolved every time a configuration lookup
9191 is done. If DNS resolution times out, the lookup is delayed for that time.
9292 '';
···9494 remote_addrs = mkCommaSepListParam [] ''
9595 Remote address(es) to use for IKE communication. Takes
9696 single IPv4/IPv6 addresses, DNS names, CIDR subnets or IP address ranges.
9797- </para><para>
9797+9898 As initiator, the first non-range/non-subnet is used to initiate the
9999 connection to. As responder, the initiator source address must match at
100100 least to one of the specified addresses, subnets or ranges.
101101- </para><para>
101101+102102 If FQDNs are assigned they are resolved every time a configuration lookup
103103 is done. If DNS resolution times out, the lookup is delayed for that time.
104104 To initiate a connection, at least one specific address or DNS name must
···110110 backend is used, which is usually <literal>500</literal>. If port
111111 <literal>500</literal> is used, automatic IKE port floating to port
112112 <literal>4500</literal> is used to work around NAT issues.
113113- </para><para>
113113+114114 Using a non-default local IKE port requires support from the socket
115115 backend in use (socket-dynamic).
116116 '';
···126126 for IKE an encryption algorithm, an integrity algorithm, a pseudo random
127127 function and a Diffie-Hellman group. For AEAD algorithms, instead of
128128 encryption and integrity algorithms, a combined algorithm is used.
129129- </para><para>
129129+130130 In IKEv2, multiple algorithms of the same kind can be specified in a
131131 single proposal, from which one gets selected. In IKEv1, only one
132132 algorithm per kind is allowed per proposal, more algorithms get implicitly
133133 stripped. Use multiple proposals to offer different algorithms
134134 combinations in IKEv1.
135135- </para><para>
135135+136136 Algorithm keywords get separated using dashes. Multiple proposals may be
137137 specified in a list. The special value <literal>default</literal> forms a
138138 default proposal of supported algorithms considered safe, and is usually a
···159159 If the default of yes is used, Mode Config works in pull mode, where the
160160 initiator actively requests a virtual IP. With no, push mode is used,
161161 where the responder pushes down a virtual IP to the initiating peer.
162162- </para><para>
162162+163163 Push mode is currently supported for IKEv1, but not in IKEv2. It is used
164164 by a few implementations only, pull mode is recommended.
165165 '';
···174174 To enforce UDP encapsulation of ESP packets, the IKE daemon can fake the
175175 NAT detection payloads. This makes the peer believe that NAT takes place
176176 on the path, forcing it to encapsulate ESP packets in UDP.
177177- </para><para>
177177+178178 Usually this is not required, but it can help to work around connectivity
179179 issues with too restrictive intermediary firewalls.
180180 '';
···183183 Enables MOBIKE on IKEv2 connections. MOBIKE is enabled by default on IKEv2
184184 connections, and allows mobility of clients and multi-homing on servers by
185185 migrating active IPsec tunnels.
186186- </para><para>
186186+187187 Usually keeping MOBIKE enabled is unproblematic, as it is not used if the
188188 peer does not indicate support for it. However, due to the design of
189189 MOBIKE, IKEv2 always floats to port 4500 starting from the second
···222222 <listitem><para>Finally, setting the option to <literal>no</literal> will disable announcing
223223 support for this feature.</para></listitem>
224224 </itemizedlist>
225225- </para><para>
225225+226226 Note that fragmented IKE messages sent by a peer are always processed
227227 irrespective of the value of this option (even when set to no).
228228 '';
···284284 unique = mkEnumParam ["no" "never" "keep" "replace"] "no" ''
285285 Connection uniqueness policy to enforce. To avoid multiple connections
286286 from the same user, a uniqueness policy can be enforced.
287287- </para><para>
287287+288288 <itemizedlist>
289289 <listitem><para>
290290 The value <literal>never</literal> does never enforce such a policy, even
···306306 To compare connections for uniqueness, the remote IKE identity is used. If
307307 EAP or XAuth authentication is involved, the EAP-Identity or XAuth
308308 username is used to enforce the uniqueness policy instead.
309309- </para><para>
309309+310310 On initiators this setting specifies whether an INITIAL_CONTACT notify is
311311 sent during IKE_AUTH if no existing connection is found with the remote
312312 peer (determined by the identities of the first authentication
···320320 possible to actively reauthenticate as responder. The IKEv2
321321 reauthentication lifetime negotiation can instruct the client to perform
322322 reauthentication.
323323- </para><para>
323323+324324 Reauthentication is disabled by default. Enabling it usually may lead to
325325 small connection interruptions, as strongSwan uses a break-before-make
326326 policy with IKEv2 to avoid any conflicts with associated tunnel resources.
···330330 IKE rekeying refreshes key material using a Diffie-Hellman exchange, but
331331 does not re-check associated credentials. It is supported in IKEv2 only,
332332 IKEv1 performs a reauthentication procedure instead.
333333- </para><para>
333333+334334 With the default value IKE rekeying is scheduled every 4 hours, minus the
335335 configured rand_time. If a reauth_time is configured, rekey_time defaults
336336 to zero, disabling rekeying; explicitly set both to enforce rekeying and
···343343 perpetually, a maximum hard lifetime may be specified. If the IKE_SA fails
344344 to rekey or reauthenticate within the specified time, the IKE_SA gets
345345 closed.
346346- </para><para>
346346+347347 In contrast to CHILD_SA rekeying, over_time is relative in time to the
348348 rekey_time and reauth_time values, as it applies to both.
349349- </para><para>
349349+350350 The default is 10% of the longer of <option>rekey_time</option> and
351351 <option>reauth_time</option>.
352352 '';
···356356 rekey/reauth times. To avoid having both peers initiating the rekey/reauth
357357 procedure simultaneously, a random time gets subtracted from the
358358 rekey/reauth times.
359359- </para><para>
359359+360360 The default is equal to the configured <option>over_time</option>.
361361 '';
362362···410410 List of certificate candidates to use for
411411 authentication. The certificates may use a relative path from the
412412 swanctl <literal>x509</literal> directory or an absolute path.
413413- </para><para>
413413+414414 The certificate used for authentication is selected based on the
415415 received certificate request payloads. If no appropriate CA can be
416416 located, the first certificate is used.
···426426 List of raw public key candidates to use for
427427 authentication. The public keys may use a relative path from the swanctl
428428 <literal>pubkey</literal> directory or an absolute path.
429429- </para><para>
429429+430430 Even though multiple local public keys could be defined in principle,
431431 only the first public key in the list is used for authentication.
432432 '';
···504504 authentication. This identity may differ from the IKE identity,
505505 especially when EAP authentication is delegated from the IKE responder
506506 to an AAA backend.
507507- </para><para>
507507+508508 For EAP-(T)TLS, this defines the identity for which the server must
509509 provide a certificate in the TLS exchange.
510510 '';
···518518 defines the rules how authentication is performed for the local
519519 peer. Multiple rounds may be defined to use IKEv2 RFC 4739 Multiple
520520 Authentication or IKEv1 XAuth.
521521- </para><para>
521521+522522 Each round is defined in a section having <literal>local</literal> as
523523 prefix, and an optional unique suffix. To define a single authentication
524524 round, the suffix may be omitted.
···620620 Authentication to expect from remote. See the <option>local</option>
621621 section's <option>auth</option> keyword description about the details of
622622 supported mechanisms.
623623- </para><para>
623623+624624 Since 5.4.0, to require a trustchain public key strength for the remote
625625 side, specify the key type followed by the minimum strength in bits (for
626626 example <literal>ecdsa-384</literal> or
···641641 <literal>pubkey</literal> or <literal>rsa</literal> constraints are
642642 configured RSASSA-PSS signatures will only be accepted if enabled in
643643 <literal>strongswan.conf</literal>(5).
644644- </para><para>
644644+645645 To specify trust chain constraints for EAP-(T)TLS, append a colon to the
646646 EAP method, followed by the key type/size and hash algorithm as
647647 discussed above (e.g. <literal>eap-tls:ecdsa-384-sha384</literal>).
···652652 defines the constraints how the peers must authenticate to use this
653653 connection. Multiple rounds may be defined to use IKEv2 RFC 4739 Multiple
654654 Authentication or IKEv1 XAuth.
655655- </para><para>
655655+656656 Each round is defined in a section having <literal>remote</literal> as
657657 prefix, and an optional unique suffix. To define a single authentication
658658 round, the suffix may be omitted.
···665665 Diffie-Hellman group. If a DH group is specified, CHILD_SA/Quick Mode
666666 rekeying and initial negotiation uses a separate Diffie-Hellman exchange
667667 using the specified group (refer to esp_proposals for details).
668668- </para><para>
668668+669669 In IKEv2, multiple algorithms of the same kind can be specified in a
670670 single proposal, from which one gets selected. In IKEv1, only one
671671 algorithm per kind is allowed per proposal, more algorithms get
672672 implicitly stripped. Use multiple proposals to offer different algorithms
673673 combinations in IKEv1.
674674- </para><para>
674674+675675 Algorithm keywords get separated using dashes. Multiple proposals may be
676676 specified in a list. The special value <literal>default</literal> forms
677677 a default proposal of supported algorithms considered safe, and is
···686686 an optional Extended Sequence Number Mode indicator. For AEAD proposals,
687687 a combined mode algorithm is used instead of the separate
688688 encryption/integrity algorithms.
689689- </para><para>
689689+690690 If a DH group is specified, CHILD_SA/Quick Mode rekeying and initial
691691 negotiation use a separate Diffie-Hellman exchange using the specified
692692 group. However, for IKEv2, the keys of the CHILD_SA created implicitly
···695695 rekeyed or is created with a separate CREATE_CHILD_SA exchange. A
696696 proposal mismatch might, therefore, not immediately be noticed when the
697697 SA is established, but may later cause rekeying to fail.
698698- </para><para>
698698+699699 Extended Sequence Number support may be indicated with the
700700 <literal>esn</literal> and <literal>noesn</literal> values, both may be
701701 included to indicate support for both modes. If omitted,
702702 <literal>noesn</literal> is assumed.
703703- </para><para>
703703+704704 In IKEv2, multiple algorithms of the same kind can be specified in a
705705 single proposal, from which one gets selected. In IKEv1, only one
706706 algorithm per kind is allowed per proposal, more algorithms get
707707 implicitly stripped. Use multiple proposals to offer different algorithms
708708 combinations in IKEv1.
709709- </para><para>
709709+710710 Algorithm keywords get separated using dashes. Multiple proposals may be
711711 specified as a list. The special value <literal>default</literal> forms
712712 a default proposal of supported algorithms considered safe, and is
···729729 selector. The special value <literal>dynamic</literal> may be used
730730 instead of a subnet definition, which gets replaced by the tunnel outer
731731 address or the virtual IP, if negotiated. This is the default.
732732- </para><para>
732732+733733 A protocol/port selector is surrounded by opening and closing square
734734 brackets. Between these brackets, a numeric or getservent(3) protocol
735735 name may be specified. After the optional protocol restriction, an
···738738 special value <literal>opaque</literal> for RFC 4301 OPAQUE
739739 selectors. Port ranges may be specified as well, none of the kernel
740740 backends currently support port ranges, though.
741741- </para><para>
741741+742742 When IKEv1 is used only the first selector is interpreted, except if the
743743 Cisco Unity extension plugin is used. This is due to a limitation of the
744744 IKEv1 protocol, which only allows a single pair of selectors per
···761761 specified in the proposal. To avoid rekey collisions initiated by both
762762 ends simultaneously, a value in the range of <option>rand_time</option>
763763 gets subtracted to form the effective soft lifetime.
764764- </para><para>
764764+765765 By default CHILD_SA rekeying is scheduled every hour, minus
766766 <option>rand_time</option>.
767767 '';
···783783 Number of bytes processed before initiating CHILD_SA rekeying. CHILD_SA
784784 rekeying refreshes key material, optionally using a Diffie-Hellman
785785 exchange if a group is specified in the proposal.
786786- </para><para>
786786+787787 To avoid rekey collisions initiated by both ends simultaneously, a value
788788 in the range of <option>rand_bytes</option> gets subtracted to form the
789789 effective soft volume limit.
790790- </para><para>
790790+791791 Volume based CHILD_SA rekeying is disabled by default.
792792 '';
793793···808808 Number of packets processed before initiating CHILD_SA rekeying. CHILD_SA
809809 rekeying refreshes key material, optionally using a Diffie-Hellman
810810 exchange if a group is specified in the proposal.
811811- </para><para>
811811+812812 To avoid rekey collisions initiated by both ends simultaneously, a value
813813 in the range of <option>rand_packets</option> gets subtracted to form
814814 the effective soft packet count limit.
815815- </para><para>
815815+816816 Packet count based CHILD_SA rekeying is disabled by default.
817817 '';
818818···821821 this hard packets limit is never reached, because the CHILD_SA gets
822822 rekeyed before. If that fails for whatever reason, this limit closes the
823823 CHILD_SA.
824824- </para><para>
824824+825825 The default is 10% more than <option>rekey_bytes</option>.
826826 '';
827827···936936 <literal>%unique</literal> sets a unique mark on each CHILD_SA instance,
937937 beyond that the value <literal>%unique-dir</literal> assigns a different
938938 unique mark for each
939939- </para><para>
939939+940940 An additional mask may be appended to the mark, separated by
941941 <literal>/</literal>. The default mask if omitted is
942942 <literal>0xffffffff</literal>.
···960960 value <literal>%unique</literal> sets a unique mark on each CHILD_SA
961961 instance, beyond that the value <literal>%unique-dir</literal> assigns a
962962 different unique mark for each CHILD_SA direction (in/out).
963963- </para><para>
963963+964964 An additional mask may be appended to the mark, separated by
965965 <literal>/</literal>. The default mask if omitted is
966966 <literal>0xffffffff</literal>.
···11021102 <literal>start</literal> tries to re-create the CHILD_SA.
11031103 </para></listitem>
11041104 </itemizedlist>
11051105- </para><para>
11051105+11061106 <option>close_action</option> does not provide any guarantee that the
11071107 CHILD_SA is kept alive. It acts on explicit close messages only, but not
11081108 on negotiation failures. Use trap policies to reliably re-create failed
+8-10
nixos/modules/services/networking/wireguard.nix
···118118 default = null;
119119 type = with types; nullOr str;
120120 example = "container";
121121- description = ''The pre-existing network namespace in which the
121121+ description = lib.mdDoc ''The pre-existing network namespace in which the
122122 WireGuard interface is created, and which retains the socket even if the
123123- interface is moved via <option>interfaceNamespace</option>. When
124124- <literal>null</literal>, the interface is created in the init namespace.
125125- See <link
126126- xlink:href="https://www.wireguard.com/netns/">documentation</link>.
123123+ interface is moved via {option}`interfaceNamespace`. When
124124+ `null`, the interface is created in the init namespace.
125125+ See [documentation](https://www.wireguard.com/netns/).
127126 '';
128127 };
129128···131130 default = null;
132131 type = with types; nullOr str;
133132 example = "init";
134134- description = ''The pre-existing network namespace the WireGuard
135135- interface is moved to. The special value <literal>init</literal> means
136136- the init namespace. When <literal>null</literal>, the interface is not
133133+ description = lib.mdDoc ''The pre-existing network namespace the WireGuard
134134+ interface is moved to. The special value `init` means
135135+ the init namespace. When `null`, the interface is not
137136 moved.
138138- See <link
139139- xlink:href="https://www.wireguard.com/netns/">documentation</link>.
137137+ See [documentation](https://www.wireguard.com/netns/).
140138 '';
141139 };
142140 };
···190190 description = ''
191191 Whether to allow configuring networks "imperatively" (e.g. via
192192 <package>wpa_supplicant_gui</package>) and declaratively via
193193- <xref linkend="opt-networking.wireless.networks" />.
193193+ <xref linkend="opt-networking.wireless.networks"/>.
194194195195 Please note that this adds a custom patch to <package>wpa_supplicant</package>.
196196 '';
+8-8
nixos/modules/services/networking/yggdrasil.nix
···4444 are supplied, they will be combined, with values from
4545 <option>configFile</option> taking precedence.
46464747- You can use the command <code>nix-shell -p yggdrasil --run
4848- "yggdrasil -genconf"</code> to generate default
4747+ You can use the command <literal>nix-shell -p yggdrasil --run
4848+ "yggdrasil -genconf"</literal> to generate default
4949 configuration values with documentation.
5050 '';
5151 };
···6464 type = types.nullOr types.str;
6565 default = null;
6666 example = "wheel";
6767- description = "Group to grant access to the Yggdrasil control socket. If <code>null</code>, only root can access the socket.";
6767+ description = lib.mdDoc "Group to grant access to the Yggdrasil control socket. If `null`, only root can access the socket.";
6868 };
69697070 openMulticastPort = mkOption {
7171 type = bool;
7272 default = false;
7373- description = ''
7373+ description = lib.mdDoc ''
7474 Whether to open the UDP port used for multicast peer
7575 discovery. The NixOS firewall blocks link-local
7676 communication, so in order to make local peering work you
7777- will also need to set <code>LinkLocalTCPPort</code> in your
7878- yggdrasil configuration (<option>config</option> or
7979- <option>configFile</option>) to a port number other than 0,
7777+ will also need to set `LinkLocalTCPPort` in your
7878+ yggdrasil configuration ({option}`config` or
7979+ {option}`configFile`) to a port number other than 0,
8080 and then add that port to
8181- <option>networking.firewall.allowedTCPPorts</option>.
8181+ {option}`networking.firewall.allowedTCPPorts`.
8282 '';
8383 };
8484
+7-14
nixos/modules/services/networking/znc/default.nix
···156156 format ZNC expects. This is much more flexible than the legacy options
157157 under <option>services.znc.confOptions.*</option>, but also can't do
158158 any type checking.
159159- </para>
160160- <para>
159159+161160 You can use <command>nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.services.znc.config</command>
162161 to view the current value. By default it contains a listener for port
163162 5000 with SSL enabled.
164164- </para>
165165- <para>
163163+166164 Nix attributes called <literal>extraConfig</literal> will be inserted
167165 verbatim into the resulting config file.
168168- </para>
169169- <para>
166166+170167 If <option>services.znc.useLegacyConfig</option> is turned on, the
171168 option values in <option>services.znc.confOptions.*</option> will be
172169 gracefully be applied to this option.
173173- </para>
174174- <para>
170170+175171 If you intend to update the configuration through this option, be sure
176172 to enable <option>services.znc.mutable</option>, otherwise none of the
177173 changes here will be applied after the initial deploy.
···184180 description = ''
185181 Configuration file for ZNC. It is recommended to use the
186182 <option>config</option> option instead.
187187- </para>
188188- <para>
183183+189184 Setting this option will override any auto-generated config file
190185 through the <option>confOptions</option> or <option>config</option>
191186 options.
···208203 Indicates whether to allow the contents of the
209204 <literal>dataDir</literal> directory to be changed by the user at
210205 run-time.
211211- </para>
212212- <para>
206206+213207 If enabled, modifications to the ZNC configuration after its initial
214208 creation are not overwritten by a NixOS rebuild. If disabled, the
215209 ZNC configuration is rebuilt on every NixOS rebuild.
216216- </para>
217217- <para>
210210+218211 If the user wants to manage the ZNC service using the web admin
219212 interface, this option should be enabled.
220213 '';
+1-2
nixos/modules/services/networking/znc/options.nix
···106106 <option>services.znc.confOptions.*</option> options.
107107 You can use <command>nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.services.znc.config</command>
108108 to view the current value of the config.
109109- </para>
110110- <para>
109109+111110 In any case, if you need more flexibility,
112111 <option>services.znc.config</option> can be used to override/add to
113112 all of the legacy options.
+4-4
nixos/modules/services/security/privacyidea.nix
···7878 using <package>envsubst</package> which is helpful for specifying
7979 secrets:
8080 <programlisting>
8181- { <xref linkend="opt-services.privacyidea.secretKey" /> = "$SECRET"; }
8181+ { <xref linkend="opt-services.privacyidea.secretKey"/> = "$SECRET"; }
8282 </programlisting>
83838484 The environment-file can now specify the actual secret key:
···207207 description = ''
208208 Attribute-set containing the settings for <package>privacyidea-ldap-proxy</package>.
209209 It's possible to pass secrets using env-vars as substitutes and
210210- use the option <xref linkend="opt-services.privacyidea.ldap-proxy.environmentFile" />
210210+ use the option <xref linkend="opt-services.privacyidea.ldap-proxy.environmentFile"/>
211211 to inject them via <package>envsubst</package>.
212212 '';
213213 };
···215215 environmentFile = mkOption {
216216 default = null;
217217 type = types.nullOr types.str;
218218- description = ''
218218+ description = lib.mdDoc ''
219219 Environment file containing secrets to be substituted into
220220- <xref linkend="opt-services.privacyidea.ldap-proxy.settings" />.
220220+ [](#opt-services.privacyidea.ldap-proxy.settings).
221221 '';
222222 };
223223 };
+2-2
nixos/modules/services/security/step-ca.nix
···3636 type = with lib.types; attrsOf anything;
3737 description = ''
3838 Settings that go into <filename>ca.json</filename>. See
3939- <link xlink:href="https://smallstep.com/docs/step-ca/configuration">
4040- the step-ca manual</link> for more information. The easiest way to
3939+ <link xlink:href="https://smallstep.com/docs/step-ca/configuration">the step-ca manual</link>
4040+ for more information. The easiest way to
4141 configure this module would be to run <literal>step ca init</literal>
4242 to generate <filename>ca.json</filename> and then import it using
4343 <literal>builtins.fromJSON</literal>.
+8-8
nixos/modules/services/security/tor.nix
···287287 relay = {
288288 enable = mkEnableOption ''relaying of Tor traffic for others.
289289290290- See <link xlink:href="https://www.torproject.org/docs/tor-doc-relay" />
290290+ See <link xlink:href="https://www.torproject.org/docs/tor-doc-relay"/>
291291 for details.
292292293293 Setting this to true requires setting
···348348349349 <para>
350350 See
351351- <link xlink:href="https://www.torproject.org/docs/tor-doc-relay.html.en" />
351351+ <link xlink:href="https://www.torproject.org/docs/tor-doc-relay.html.en"/>
352352 for more info.
353353 </para>
354354 </listitem>
···366366 <para>
367367 Using this option will make Tor advertise your bridge
368368 to users through various mechanisms like
369369- <link xlink:href="https://bridges.torproject.org/" />, though.
369369+ <link xlink:href="https://bridges.torproject.org/"/>, though.
370370 </para>
371371372372 <important>
···384384 </important>
385385386386 <para>
387387- See <link xlink:href="https://www.torproject.org/docs/bridges.html.en" />
387387+ See <link xlink:href="https://www.torproject.org/docs/bridges.html.en"/>
388388 for more info.
389389 </para>
390390 </listitem>
···419419 </para>
420420421421 <para>
422422- See <link xlink:href="https://www.torproject.org/docs/bridges.html.en" />
422422+ See <link xlink:href="https://www.torproject.org/docs/bridges.html.en"/>
423423 for more info.
424424 </para>
425425 </listitem>
···476476 };
477477 clientNames = mkOption {
478478 type = with types; nonEmptyListOf (strMatching "[A-Za-z0-9+-_]+");
479479- description = ''
479479+ description = lib.mdDoc ''
480480 Only clients that are listed here are authorized to access the hidden service.
481481- Generated authorization data can be found in <filename>${stateDir}/onion/$name/hostname</filename>.
481481+ Generated authorization data can be found in {file}`${stateDir}/onion/$name/hostname`.
482482 Clients need to put this authorization data in their configuration file using
483483- <xref linkend="opt-services.tor.settings.HidServAuth"/>.
483483+ [](#opt-services.tor.settings.HidServAuth).
484484 '';
485485 };
486486 };
+2-2
nixos/modules/services/security/vault.nix
···116116 storageConfig = mkOption {
117117 type = types.nullOr types.lines;
118118 default = null;
119119- description = ''
119119+ description = lib.mdDoc ''
120120 HCL configuration to insert in the storageBackend section.
121121122122 Confidential values should not be specified here because this option's
123123 value is written to the Nix store, which is publicly readable.
124124 Provide credentials and such in a separate file using
125125- <xref linkend="opt-services.vault.extraSettingsPaths"/>.
125125+ [](#opt-services.vault.extraSettingsPaths).
126126 '';
127127 };
128128
···116116 The available configuration options can be found in
117117 <link xlink:href="https://github.com/dani-garcia/vaultwarden/blob/${vaultwarden.version}/.env.template">the environment template file</link>.
118118119119- See <xref linkend="opt-services.vaultwarden.environmentFile" /> for how
119119+ See <xref linkend="opt-services.vaultwarden.environmentFile"/> for how
120120 to set up access to the Admin UI to invite initial users.
121121 '';
122122 };
+7-7
nixos/modules/services/system/dbus.nix
···3838 packages = mkOption {
3939 type = types.listOf types.path;
4040 default = [ ];
4141- description = ''
4141+ description = lib.mdDoc ''
4242 Packages whose D-Bus configuration files should be included in
4343 the configuration of the D-Bus system-wide or session-wide
4444 message bus. Specifically, files in the following directories
4545 will be included into their respective DBus configuration paths:
4646- <filename><replaceable>pkg</replaceable>/etc/dbus-1/system.d</filename>
4747- <filename><replaceable>pkg</replaceable>/share/dbus-1/system.d</filename>
4848- <filename><replaceable>pkg</replaceable>/share/dbus-1/system-services</filename>
4949- <filename><replaceable>pkg</replaceable>/etc/dbus-1/session.d</filename>
5050- <filename><replaceable>pkg</replaceable>/share/dbus-1/session.d</filename>
5151- <filename><replaceable>pkg</replaceable>/share/dbus-1/services</filename>
4646+ {file}`«pkg»/etc/dbus-1/system.d`
4747+ {file}`«pkg»/share/dbus-1/system.d`
4848+ {file}`«pkg»/share/dbus-1/system-services`
4949+ {file}`«pkg»/etc/dbus-1/session.d`
5050+ {file}`«pkg»/share/dbus-1/session.d`
5151+ {file}`«pkg»/share/dbus-1/services`
5252 '';
5353 };
5454
+8-8
nixos/modules/services/system/earlyoom.nix
···3232 freeMemKillThreshold = mkOption {
3333 type = types.nullOr (types.ints.between 1 100);
3434 default = null;
3535- description = ''
3535+ description = lib.mdDoc ''
3636 Minimum available memory (in percent) before sending SIGKILL.
3737- If unset, this defaults to half of <option>freeMemThreshold</option>.
3737+ If unset, this defaults to half of {option}`freeMemThreshold`.
38383939- See the description of <xref linkend="opt-services.earlyoom.freeMemThreshold"/>.
3939+ See the description of [](#opt-services.earlyoom.freeMemThreshold).
4040 '';
4141 };
42424343 freeSwapThreshold = mkOption {
4444 type = types.ints.between 1 100;
4545 default = 10;
4646- description = ''
4646+ description = lib.mdDoc ''
4747 Minimum free swap space (in percent) before sending SIGTERM.
48484949- See the description of <xref linkend="opt-services.earlyoom.freeMemThreshold"/>.
4949+ See the description of [](#opt-services.earlyoom.freeMemThreshold).
5050 '';
5151 };
52525353 freeSwapKillThreshold = mkOption {
5454 type = types.nullOr (types.ints.between 1 100);
5555 default = null;
5656- description = ''
5656+ description = lib.mdDoc ''
5757 Minimum free swap space (in percent) before sending SIGKILL.
5858- If unset, this defaults to half of <option>freeSwapThreshold</option>.
5858+ If unset, this defaults to half of {option}`freeSwapThreshold`.
59596060- See the description of <xref linkend="opt-services.earlyoom.freeMemThreshold"/>.
6060+ See the description of [](#opt-services.earlyoom.freeMemThreshold).
6161 '';
6262 };
6363
+29-29
nixos/modules/services/torrent/transmission.nix
···5555 type = types.path;
5656 default = "${cfg.home}/${incompleteDir}";
5757 defaultText = literalExpression ''"''${config.${opt.home}}/${incompleteDir}"'';
5858- description = ''
5858+ description = lib.mdDoc ''
5959 When enabled with
6060 services.transmission.home
6161- <xref linkend="opt-services.transmission.settings.incomplete-dir-enabled"/>,
6161+ [](#opt-services.transmission.settings.incomplete-dir-enabled),
6262 new torrents will download the files to this directory.
6363 When complete, the files will be moved to download-dir
6464- <xref linkend="opt-services.transmission.settings.download-dir"/>.
6464+ [](#opt-services.transmission.settings.download-dir).
6565 '';
6666 };
6767 options.incomplete-dir-enabled = mkOption {
···8282 options.peer-port-random-high = mkOption {
8383 type = types.port;
8484 default = 65535;
8585- description = ''
8585+ description = lib.mdDoc ''
8686 The maximum peer port to listen to for incoming connections
8787- when <xref linkend="opt-services.transmission.settings.peer-port-random-on-start"/> is enabled.
8787+ when [](#opt-services.transmission.settings.peer-port-random-on-start) is enabled.
8888 '';
8989 };
9090 options.peer-port-random-low = mkOption {
9191 type = types.port;
9292 default = 65535;
9393- description = ''
9393+ description = lib.mdDoc ''
9494 The minimal peer port to listen to for incoming connections
9595- when <xref linkend="opt-services.transmission.settings.peer-port-random-on-start"/> is enabled.
9595+ when [](#opt-services.transmission.settings.peer-port-random-on-start) is enabled.
9696 '';
9797 };
9898 options.peer-port-random-on-start = mkOption {
···117117 options.script-torrent-done-enabled = mkOption {
118118 type = types.bool;
119119 default = false;
120120- description = ''
120120+ description = lib.mdDoc ''
121121 Whether to run
122122- <xref linkend="opt-services.transmission.settings.script-torrent-done-filename"/>
122122+ [](#opt-services.transmission.settings.script-torrent-done-filename)
123123 at torrent completion.
124124 '';
125125 };
···156156 options.watch-dir-enabled = mkOption {
157157 type = types.bool;
158158 default = false;
159159- description = ''Whether to enable the
160160- <xref linkend="opt-services.transmission.settings.watch-dir"/>.
159159+ description = lib.mdDoc ''Whether to enable the
160160+ [](#opt-services.transmission.settings.watch-dir).
161161 '';
162162 };
163163 options.trash-original-torrent-files = mkOption {
164164 type = types.bool;
165165 default = false;
166166- description = ''Whether to delete torrents added from the
167167- <xref linkend="opt-services.transmission.settings.watch-dir"/>.
166166+ description = lib.mdDoc ''Whether to delete torrents added from the
167167+ [](#opt-services.transmission.settings.watch-dir).
168168 '';
169169 };
170170 };
···174174 type = with types; nullOr str;
175175 default = null;
176176 example = "770";
177177- description = ''
178178- If not <code>null</code>, is used as the permissions
179179- set by <literal>systemd.activationScripts.transmission-daemon</literal>
180180- on the directories <xref linkend="opt-services.transmission.settings.download-dir"/>,
181181- <xref linkend="opt-services.transmission.settings.incomplete-dir"/>.
182182- and <xref linkend="opt-services.transmission.settings.watch-dir"/>.
177177+ description = lib.mdDoc ''
178178+ If not `null`, is used as the permissions
179179+ set by `systemd.activationScripts.transmission-daemon`
180180+ on the directories [](#opt-services.transmission.settings.download-dir),
181181+ [](#opt-services.transmission.settings.incomplete-dir).
182182+ and [](#opt-services.transmission.settings.watch-dir).
183183 Note that you may also want to change
184184- <xref linkend="opt-services.transmission.settings.umask"/>.
184184+ [](#opt-services.transmission.settings.umask).
185185 '';
186186 };
187187188188 home = mkOption {
189189 type = types.path;
190190 default = "/var/lib/transmission";
191191- description = ''
192192- The directory where Transmission will create <literal>${settingsDir}</literal>.
193193- as well as <literal>${downloadsDir}/</literal> unless
194194- <xref linkend="opt-services.transmission.settings.download-dir"/> is changed,
195195- and <literal>${incompleteDir}/</literal> unless
196196- <xref linkend="opt-services.transmission.settings.incomplete-dir"/> is changed.
191191+ description = lib.mdDoc ''
192192+ The directory where Transmission will create `${settingsDir}`.
193193+ as well as `${downloadsDir}/` unless
194194+ [](#opt-services.transmission.settings.download-dir) is changed,
195195+ and `${incompleteDir}/` unless
196196+ [](#opt-services.transmission.settings.incomplete-dir) is changed.
197197 '';
198198 };
199199···211211212212 credentialsFile = mkOption {
213213 type = types.path;
214214- description = ''
214214+ description = lib.mdDoc ''
215215 Path to a JSON file to be merged with the settings.
216216 Useful to merge a file which is better kept out of the Nix store
217217- to set secret config parameters like <code>rpc-password</code>.
217217+ to set secret config parameters like `rpc-password`.
218218 '';
219219 default = "/dev/null";
220220 example = "/var/lib/secrets/transmission/settings.json";
···237237 to open many more connections at the same time.
238238239239 Note that you may also want to increase
240240- <code>peer-limit-global"</code>.
240240+ <literal>peer-limit-global"</literal>.
241241 And be aware that these settings are quite aggressive
242242 and might not suite your regular desktop use.
243243 For instance, SSH sessions may time out more easily'';
+2-2
nixos/modules/services/web-apps/bookstack.nix
···5252 description = ''
5353 A file containing the Laravel APP_KEY - a 32 character long,
5454 base64 encoded key used for encryption where needed. Can be
5555- generated with <code>head -c 32 /dev/urandom | base64</code>.
5555+ generated with <literal>head -c 32 /dev/urandom | base64</literal>.
5656 '';
5757 example = "/run/keys/bookstack-appkey";
5858 type = types.path;
···7474 appURL = mkOption {
7575 description = ''
7676 The root URL that you want to host BookStack on. All URLs in BookStack will be generated using this value.
7777- If you change this in the future you may need to run a command to update stored URLs in the database. Command example: <code>php artisan bookstack:update-url https://old.example.com https://new.example.com</code>
7777+ If you change this in the future you may need to run a command to update stored URLs in the database. Command example: <literal>php artisan bookstack:update-url https://old.example.com https://new.example.com</literal>
7878 '';
7979 default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostname}";
8080 defaultText = ''http''${lib.optionalString tlsEnabled "s"}://''${cfg.hostname}'';
+5-5
nixos/modules/services/web-apps/dokuwiki.nix
···260260 webserver = mkOption {
261261 type = types.enum [ "nginx" "caddy" ];
262262 default = "nginx";
263263- description = ''
263263+ description = lib.mdDoc ''
264264 Whether to use nginx or caddy for virtual host management.
265265266266- Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.<name></literal>.
267267- See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
266266+ Further nginx configuration can be done by adapting `services.nginx.virtualHosts.<name>`.
267267+ See [](#opt-services.nginx.virtualHosts) for further information.
268268269269- Further apache2 configuration can be done by adapting <literal>services.httpd.virtualHosts.<name></literal>.
270270- See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
269269+ Further apache2 configuration can be done by adapting `services.httpd.virtualHosts.<name>`.
270270+ See [](#opt-services.httpd.virtualHosts) for further information.
271271 '';
272272 };
273273
+2-3
nixos/modules/services/web-apps/hedgedoc.nix
···150150 addDefaults = true;
151151 }
152152 '';
153153- description = ''
153153+ description = lib.mdDoc ''
154154 Specify the Content Security Policy which is passed to Helmet.
155155- For configuration details see <link xlink:href="https://helmetjs.github.io/docs/csp/"
156156- >https://helmetjs.github.io/docs/csp/</link>.
155155+ For configuration details see <https://helmetjs.github.io/docs/csp/>.
157156 '';
158157 };
159158 protocolUseSSL = mkOption {
+16-23
nixos/modules/services/web-apps/keycloak.nix
···210210 name = mkOption {
211211 type = str;
212212 default = "keycloak";
213213- description = ''
213213+ description = lib.mdDoc ''
214214 Database name to use when connecting to an external or
215215 manually provisioned database; has no effect when a local
216216 database is automatically provisioned.
217217218218- To use this with a local database, set <xref
219219- linkend="opt-services.keycloak.database.createLocally" /> to
220220- <literal>false</literal> and create the database and user
218218+ To use this with a local database, set [](#opt-services.keycloak.database.createLocally) to
219219+ `false` and create the database and user
221220 manually.
222221 '';
223222 };
···225224 username = mkOption {
226225 type = str;
227226 default = "keycloak";
228228- description = ''
227227+ description = lib.mdDoc ''
229228 Username to use when connecting to an external or manually
230229 provisioned database; has no effect when a local database is
231230 automatically provisioned.
232231233233- To use this with a local database, set <xref
234234- linkend="opt-services.keycloak.database.createLocally" /> to
235235- <literal>false</literal> and create the database and user
232232+ To use this with a local database, set [](#opt-services.keycloak.database.createLocally) to
233233+ `false` and create the database and user
236234 manually.
237235 '';
238236 };
···329327 want to set this to <literal>/auth</literal> to
330328 keep compatibility with your clients.
331329332332- See <link
333333- xlink:href="https://www.keycloak.org/migration/migrating-to-quarkus"
334334- /> for more information on migrating from Wildfly
335335- to Quarkus.
330330+ See <link xlink:href="https://www.keycloak.org/migration/migrating-to-quarkus"/>
331331+ for more information on migrating from Wildfly to Quarkus.
336332 </para>
337333 </note>
338334 '';
···404400 </varlistentry>
405401 </variablelist>
406402407407- See <link
408408- xlink:href="https://www.keycloak.org/server/reverseproxy"
409409- /> for more information.
403403+ See <link xlink:href="https://www.keycloak.org/server/reverseproxy"/> for more information.
410404 '';
411405 };
412406 };
···421415 }
422416 '';
423417424424- description = ''
418418+ description = lib.mdDoc ''
425419 Configuration options corresponding to parameters set in
426426- <filename>conf/keycloak.conf</filename>.
420420+ {file}`conf/keycloak.conf`.
427421428428- Most available options are documented at <link
429429- xlink:href="https://www.keycloak.org/server/all-config" />.
422422+ Most available options are documented at <https://www.keycloak.org/server/all-config>.
430423431424 Options containing secret data should be set to an attribute
432432- set containing the attribute <literal>_secret</literal> - a
425425+ set containing the attribute `_secret` - a
433426 string pointing to a file containing the value the option
434427 should be set to. See the example to get a better picture of
435428 this: in the resulting
436436- <filename>conf/keycloak.conf</filename> file, the
437437- <literal>https-key-store-password</literal> key will be set
429429+ {file}`conf/keycloak.conf` file, the
430430+ `https-key-store-password` key will be set
438431 to the contents of the
439439- <filename>/run/keys/store_password</filename> file.
432432+ {file}`/run/keys/store_password` file.
440433 '';
441434 };
442435 };
+18-18
nixos/modules/services/web-apps/mastodon.nix
···113113 affect other virtualHosts running on your nginx instance, if any.
114114 Alternatively you can configure a reverse-proxy of your choice to serve these paths:
115115116116- <code>/ -> $(nix-instantiate --eval '<nixpkgs>' -A mastodon.outPath)/public</code>
116116+ <literal>/ -> $(nix-instantiate --eval '<nixpkgs>' -A mastodon.outPath)/public</literal>
117117118118- <code>/ -> 127.0.0.1:{{ webPort }} </code>(If there was no file in the directory above.)
118118+ <literal>/ -> 127.0.0.1:{{ webPort }} </literal>(If there was no file in the directory above.)
119119120120- <code>/system/ -> /var/lib/mastodon/public-system/</code>
120120+ <literal>/system/ -> /var/lib/mastodon/public-system/</literal>
121121122122- <code>/api/v1/streaming/ -> 127.0.0.1:{{ streamingPort }}</code>
122122+ <literal>/api/v1/streaming/ -> 127.0.0.1:{{ streamingPort }}</literal>
123123124124 Make sure that websockets are forwarded properly. You might want to set up caching
125125 of some requests. Take a look at mastodon's provided nginx configuration at
126126- <code>https://github.com/mastodon/mastodon/blob/master/dist/nginx.conf</code>.
126126+ <literal>https://github.com/mastodon/mastodon/blob/master/dist/nginx.conf</literal>.
127127 '';
128128 type = lib.types.bool;
129129 default = false;
···135135 that user will be created, otherwise it should be set to the
136136 name of a user created elsewhere. In both cases,
137137 <package>mastodon</package> and a package containing only
138138- the shell script <code>mastodon-env</code> will be added to
138138+ the shell script <literal>mastodon-env</literal> will be added to
139139 the user's package set. To run a command from
140140- <package>mastodon</package> such as <code>tootctl</code>
140140+ <package>mastodon</package> such as <literal>tootctl</literal>
141141 with the environment configured by this module use
142142- <code>mastodon-env</code>, as in:
142142+ <literal>mastodon-env</literal>, as in:
143143144144- <code>mastodon-env tootctl accounts create newuser --email newuser@example.com</code>
144144+ <literal>mastodon-env tootctl accounts create newuser --email newuser@example.com</literal>
145145 '';
146146 type = lib.types.str;
147147 default = "mastodon";
···197197 };
198198199199 vapidPublicKeyFile = lib.mkOption {
200200- description = ''
200200+ description = lib.mdDoc ''
201201 Path to file containing the public key used for Web Push
202202 Voluntary Application Server Identification. A new keypair can
203203 be generated by running:
204204205205- <code>nix build -f '<nixpkgs>' mastodon; cd result; bin/rake webpush:generate_keys</code>
205205+ `nix build -f '<nixpkgs>' mastodon; cd result; bin/rake webpush:generate_keys`
206206207207- If <option>mastodon.vapidPrivateKeyFile</option>does not
207207+ If {option}`mastodon.vapidPrivateKeyFile`does not
208208 exist, it and this file will be created with a new keypair.
209209 '';
210210 default = "/var/lib/mastodon/secrets/vapid-public-key";
···218218 };
219219220220 secretKeyBaseFile = lib.mkOption {
221221- description = ''
221221+ description = lib.mdDoc ''
222222 Path to file containing the secret key base.
223223 A new secret key base can be generated by running:
224224225225- <code>nix build -f '<nixpkgs>' mastodon; cd result; bin/rake secret</code>
225225+ `nix build -f '<nixpkgs>' mastodon; cd result; bin/rake secret`
226226227227 If this file does not exist, it will be created with a new secret key base.
228228 '';
···231231 };
232232233233 otpSecretFile = lib.mkOption {
234234- description = ''
234234+ description = lib.mdDoc ''
235235 Path to file containing the OTP secret.
236236 A new OTP secret can be generated by running:
237237238238- <code>nix build -f '<nixpkgs>' mastodon; cd result; bin/rake secret</code>
238238+ `nix build -f '<nixpkgs>' mastodon; cd result; bin/rake secret`
239239240240 If this file does not exist, it will be created with a new OTP secret.
241241 '';
···244244 };
245245246246 vapidPrivateKeyFile = lib.mkOption {
247247- description = ''
247247+ description = lib.mdDoc ''
248248 Path to file containing the private key used for Web Push
249249 Voluntary Application Server Identification. A new keypair can
250250 be generated by running:
251251252252- <code>nix build -f '<nixpkgs>' mastodon; cd result; bin/rake webpush:generate_keys</code>
252252+ `nix build -f '<nixpkgs>' mastodon; cd result; bin/rake webpush:generate_keys`
253253254254 If this file does not exist, it will be created with a new
255255 private key.
+1-1
nixos/modules/services/web-apps/mediawiki.nix
···280280 one version of MediaWiki, or have other applications that also use the
281281 database, you can give the table names a unique prefix to stop any naming
282282 conflicts or confusion.
283283- See <link xlink:href='https://www.mediawiki.org/wiki/Manual:$wgDBprefix'/>.
283283+ See <link xlink:href="https://www.mediawiki.org/wiki/Manual:$wgDBprefix"/>.
284284 '';
285285 };
286286
+13-13
nixos/modules/services/web-apps/nextcloud.nix
···9393 type = types.str;
9494 default = config.services.nextcloud.home;
9595 defaultText = literalExpression "config.services.nextcloud.home";
9696- description = ''
9797- Data storage path of nextcloud. Will be <xref linkend="opt-services.nextcloud.home" /> by default.
9696+ description = lib.mdDoc ''
9797+ Data storage path of nextcloud. Will be [](#opt-services.nextcloud.home) by default.
9898 This folder will be populated with a config.php and data folder which contains the state of the instance (excl the database).";
9999 '';
100100 example = "/mnt/nextcloud-file";
···102102 extraApps = mkOption {
103103 type = types.attrsOf types.package;
104104 default = { };
105105- description = ''
105105+ description = lib.mdDoc ''
106106 Extra apps to install. Should be an attrSet of appid to packages generated by fetchNextcloudApp.
107107 The appid must be identical to the "id" value in the apps appinfo/info.xml.
108108- Using this will disable the appstore to prevent Nextcloud from updating these apps (see <xref linkend="opt-services.nextcloud.appstoreEnable" />).
108108+ Using this will disable the appstore to prevent Nextcloud from updating these apps (see [](#opt-services.nextcloud.appstoreEnable)).
109109 '';
110110 example = literalExpression ''
111111 {
···127127 extraAppsEnable = mkOption {
128128 type = types.bool;
129129 default = true;
130130- description = ''
131131- Automatically enable the apps in <xref linkend="opt-services.nextcloud.extraApps" /> every time nextcloud starts.
130130+ description = lib.mdDoc ''
131131+ Automatically enable the apps in [](#opt-services.nextcloud.extraApps) every time nextcloud starts.
132132 If set to false, apps need to be enabled in the Nextcloud user interface or with nextcloud-occ app:enable.
133133 '';
134134 };
···136136 type = types.nullOr types.bool;
137137 default = null;
138138 example = true;
139139- description = ''
139139+ description = lib.mdDoc ''
140140 Allow the installation of apps and app updates from the store.
141141- Enabled by default unless there are packages in <xref linkend="opt-services.nextcloud.extraApps" />.
142142- Set to true to force enable the store even if <xref linkend="opt-services.nextcloud.extraApps" /> is used.
141141+ Enabled by default unless there are packages in [](#opt-services.nextcloud.extraApps).
142142+ Set to true to force enable the store even if [](#opt-services.nextcloud.extraApps) is used.
143143 Set to false to disable the installation of apps from the global appstore. App management is always enabled regardless of this setting.
144144 '';
145145 };
···467467 This is used by the theming app and for generating previews of certain images (e.g. SVG and HEIF).
468468 You may want to disable it for increased security. In that case, previews will still be available
469469 for some images (e.g. JPEG and PNG).
470470- See <link xlink:href="https://github.com/nextcloud/server/issues/13099" />.
470470+ See <link xlink:href="https://github.com/nextcloud/server/issues/13099"/>.
471471 '' // {
472472 default = true;
473473 };
···585585 hstsMaxAge = mkOption {
586586 type = types.ints.positive;
587587 default = 15552000;
588588- description = ''
589589- Value for the <code>max-age</code> directive of the HTTP
590590- <code>Strict-Transport-Security</code> header.
588588+ description = lib.mdDoc ''
589589+ Value for the `max-age` directive of the HTTP
590590+ `Strict-Transport-Security` header.
591591592592 See section 6.1.1 of IETF RFC 6797 for detailed information on this
593593 directive and header.
+2-3
nixos/modules/services/web-apps/node-red.nix
···4747 type = types.path;
4848 default = "${cfg.package}/lib/node_modules/node-red/settings.js";
4949 defaultText = literalExpression ''"''${package}/lib/node_modules/node-red/settings.js"'';
5050- description = ''
5050+ description = lib.mdDoc ''
5151 Path to the JavaScript configuration file.
5252- See <link
5353- xlink:href="https://github.com/node-red/node-red/blob/master/packages/node_modules/node-red/settings.js"/>
5252+ See <https://github.com/node-red/node-red/blob/master/packages/node_modules/node-red/settings.js>
5453 for a configuration example.
5554 '';
5655 };
+2-2
nixos/modules/services/web-apps/snipe-it.nix
···4646 description = ''
4747 A file containing the Laravel APP_KEY - a 32 character long,
4848 base64 encoded key used for encryption where needed. Can be
4949- generated with <code>head -c 32 /dev/urandom | base64</code>.
4949+ generated with <literal>head -c 32 /dev/urandom | base64</literal>.
5050 '';
5151 example = "/run/keys/snipe-it/appkey";
5252 type = types.path;
···6969 description = ''
7070 The root URL that you want to host Snipe-IT on. All URLs in Snipe-IT will be generated using this value.
7171 If you change this in the future you may need to run a command to update stored URLs in the database.
7272- Command example: <code>snipe-it snipe-it:update-url https://old.example.com https://new.example.com</code>
7272+ Command example: <literal>snipe-it snipe-it:update-url https://old.example.com https://new.example.com</literal>
7373 '';
7474 default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostName}";
7575 defaultText = ''
+1-1
nixos/modules/services/web-apps/trilium.nix
···5353 noAuthentication = mkOption {
5454 type = types.bool;
5555 default = false;
5656- description = ''
5656+ description = lib.mdDoc ''
5757 If set to true, no password is required to access the web frontend.
5858 '';
5959 };
+2-3
nixos/modules/services/web-apps/wiki-js.nix
···9595 };
9696 description = ''
9797 Settings to configure <package>wiki-js</package>. This directly
9898- corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream
9999- configuration options</link>.
9898+ corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream configuration options</link>.
10099101100 Secrets can be injected via the environment by
102101 <itemizedlist>
103103- <listitem><para>specifying <xref linkend="opt-services.wiki-js.environmentFile" />
102102+ <listitem><para>specifying <xref linkend="opt-services.wiki-js.environmentFile"/>
104103 to contain secrets</para></listitem>
105104 <listitem><para>and setting sensitive values to <literal>$(ENVIRONMENT_VAR)</literal>
106105 with this value defined in the environment-file.</para></listitem>
+2-2
nixos/modules/services/web-apps/wordpress.nix
···192192 prefix. Typically this is changed if you are installing multiple WordPress blogs
193193 in the same database.
194194195195- See <link xlink:href='https://codex.wordpress.org/Editing_wp-config.php#table_prefix'/>.
195195+ See <link xlink:href="https://codex.wordpress.org/Editing_wp-config.php#table_prefix"/>.
196196 '';
197197 };
198198···246246 description = ''
247247 Any additional text to be appended to the wp-config.php
248248 configuration file. This is a PHP script. For configuration
249249- settings, see <link xlink:href='https://codex.wordpress.org/Editing_wp-config.php'/>.
249249+ settings, see <link xlink:href="https://codex.wordpress.org/Editing_wp-config.php"/>.
250250 '';
251251 example = ''
252252 define( 'AUTOSAVE_INTERVAL', 60 ); // Seconds
···233233 default = false;
234234 description = ''
235235 Whether to enable serving <filename>~/public_html</filename> as
236236- <literal>/~<replaceable>username</replaceable></literal>.
236236+ <literal>/~«username»</literal>.
237237 '';
238238 };
239239···261261 default = "";
262262 example = "Disallow: /foo/";
263263 description = ''
264264- Specification of pages to be ignored by web crawlers. See <link
265265- xlink:href='http://www.robotstxt.org/'/> for details.
264264+ Specification of pages to be ignored by web crawlers. See <link xlink:href="http://www.robotstxt.org/"/> for details.
266265 '';
267266 };
268267···280279 };
281280 '';
282281 description = ''
283283- Declarative location config. See <link
284284- xlink:href="https://httpd.apache.org/docs/2.4/mod/core.html#location"/> for details.
282282+ Declarative location config. See <link xlink:href="https://httpd.apache.org/docs/2.4/mod/core.html#location"/> for details.
285283 '';
286284 };
287285
···504504 This is mutually exclusive to any other config option for
505505 <filename>nginx.conf</filename> except for
506506 <itemizedlist>
507507- <listitem><para><xref linkend="opt-services.nginx.appendConfig" />
507507+ <listitem><para><xref linkend="opt-services.nginx.appendConfig"/>
508508 </para></listitem>
509509- <listitem><para><xref linkend="opt-services.nginx.httpConfig" />
509509+ <listitem><para><xref linkend="opt-services.nginx.httpConfig"/>
510510 </para></listitem>
511511- <listitem><para><xref linkend="opt-services.nginx.logError" />
511511+ <listitem><para><xref linkend="opt-services.nginx.logError"/>
512512 </para></listitem>
513513 </itemizedlist>
514514515515 If additional verbatim config in addition to other options is needed,
516516- <xref linkend="opt-services.nginx.appendConfig" /> should be used instead.
516516+ <xref linkend="opt-services.nginx.appendConfig"/> should be used instead.
517517 '';
518518 };
519519
+1-2
nixos/modules/services/web-servers/uwsgi.nix
···179179 <para>
180180 When in Emperor mode, any capability to be inherited by a vassal must
181181 be specified again in the vassal configuration using <literal>cap</literal>.
182182- See the uWSGI <link
183183- xlink:href="https://uwsgi-docs.readthedocs.io/en/latest/Capabilities.html">docs</link>
182182+ See the uWSGI <link xlink:href="https://uwsgi-docs.readthedocs.io/en/latest/Capabilities.html">docs</link>
184183 for more information.
185184 </para>
186185 </note>
···170170 supportDDC = mkOption {
171171 type = types.bool;
172172 default = false;
173173- description = ''
173173+ description = lib.mdDoc ''
174174 Support setting monitor brightness via DDC.
175175- </para>
176176- <para>
175175+177176 This is not needed for controlling brightness of the internal monitor
178177 of a laptop and as it is considered experimental by upstream, it is
179178 disabled by default.
···5555 enable = mkOption {
5656 type = types.bool;
5757 default = false;
5858- description = ''
5858+ description = lib.mdDoc ''
5959 Whether to enable lightdm-mini-greeter as the lightdm greeter.
60606161 Note that this greeter starts only the default X session.
6262 You can configure the default X session using
6363- <xref linkend="opt-services.xserver.displayManager.defaultSession"/>.
6363+ [](#opt-services.xserver.displayManager.defaultSession).
6464 '';
6565 };
6666
···1717 enable = mkOption {
1818 type = types.bool;
1919 default = false;
2020- description = ''
2020+ description = lib.mdDoc ''
2121 Whether to enable lightdm-tiny-greeter as the lightdm greeter.
22222323 Note that this greeter starts only the default X session.
2424 You can configure the default X session using
2525- <xref linkend="opt-services.xserver.displayManager.defaultSession"/>.
2525+ [](#opt-services.xserver.displayManager.defaultSession).
2626 '';
2727 };
2828
···2424 gestures = mkOption {
2525 default = false;
2626 type = types.bool;
2727- description = "Whether or not to enable libstroke for gesture support";
2727+ description = lib.mdDoc "Whether or not to enable libstroke for gesture support";
2828 };
2929 };
3030 };
+1-1
nixos/modules/system/activation/top-level.nix
···335335 '';
336336 description = ''
337337 The name of the system used in the <option>system.build.toplevel</option> derivation.
338338- </para><para>
338338+339339 That derivation has the following name:
340340 <literal>"nixos-system-''${config.system.name}-''${config.system.nixos.label}"</literal>
341341 '';
+6-7
nixos/modules/system/boot/initrd-network.nix
···5050 boot.initrd.network.enable = mkOption {
5151 type = types.bool;
5252 default = false;
5353- description = ''
5353+ description = lib.mdDoc ''
5454 Add network connectivity support to initrd. The network may be
5555- configured using the <literal>ip</literal> kernel parameter,
5656- as described in <link
5757- xlink:href="https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt">the
5858- kernel documentation</link>. Otherwise, if
5959- <option>networking.useDHCP</option> is enabled, an IP address
5555+ configured using the `ip` kernel parameter,
5656+ as described in [the kernel documentation](https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt).
5757+ Otherwise, if
5858+ {option}`networking.useDHCP` is enabled, an IP address
6059 is acquired using DHCP.
61606261 You should add the module(s) required for your network card to
6362 boot.initrd.availableKernelModules.
6464- <literal>lspci -v | grep -iA8 'network\|ethernet'</literal>
6363+ `lspci -v | grep -iA8 'network\|ethernet'`
6564 will tell you which.
6665 '';
6766 };
+6-6
nixos/modules/system/boot/loader/grub/grub.nix
···624624 type = types.bool;
625625 description = ''
626626 Whether to invoke <literal>grub-install</literal> with
627627- <literal>--removable</literal>.</para>
627627+ <literal>--removable</literal>.
628628629629- <para>Unless you turn this on, GRUB will install itself somewhere in
629629+ Unless you turn this on, GRUB will install itself somewhere in
630630 <literal>boot.loader.efi.efiSysMountPoint</literal> (exactly where
631631 depends on other config variables). If you've set
632632 <literal>boot.loader.efi.canTouchEfiVariables</literal> *AND* you
···637637 NVRAM will not be modified, and your system will not find GRUB at
638638 boot time. However, GRUB will still return success so you may miss
639639 the warning that gets printed ("<literal>efibootmgr: EFI variables
640640- are not supported on this system.</literal>").</para>
640640+ are not supported on this system.</literal>").
641641642642- <para>If you turn this feature on, GRUB will install itself in a
642642+ If you turn this feature on, GRUB will install itself in a
643643 special location within <literal>efiSysMountPoint</literal> (namely
644644 <literal>EFI/boot/boot$arch.efi</literal>) which the firmwares
645645- are hardcoded to try first, regardless of NVRAM EFI variables.</para>
645645+ are hardcoded to try first, regardless of NVRAM EFI variables.
646646647647- <para>To summarize, turn this on if:
647647+ To summarize, turn this on if:
648648 <itemizedlist>
649649 <listitem><para>You are installing NixOS and want it to boot in UEFI mode,
650650 but you are currently booted in legacy mode</para></listitem>
+2-2
nixos/modules/system/boot/luksroot.nix
···548548 boot.initrd.luks.devices = mkOption {
549549 default = { };
550550 example = { luksroot.device = "/dev/disk/by-uuid/430e9eff-d852-4f68-aa3b-2fa3599ebe08"; };
551551- description = ''
551551+ description = lib.mdDoc ''
552552 The encrypted disk that should be opened before the root
553553 filesystem is mounted. Both LVM-over-LUKS and LUKS-over-LVM
554554 setups are supported. The unencrypted devices can be accessed as
555555- <filename>/dev/mapper/<replaceable>name</replaceable></filename>.
555555+ {file}`/dev/mapper/«name»`.
556556 '';
557557558558 type = with types; attrsOf (submodule (
+4-7
nixos/modules/system/boot/networkd.nix
···11701170 <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
11711171 <manvolnum>5</manvolnum></citerefentry> for details.
11721172 A detailed explanation about how VRFs work can be found in the
11731173- <link xlink:href="https://www.kernel.org/doc/Documentation/networking/vrf.txt">kernel
11741174- docs</link>.
11731173+ <link xlink:href="https://www.kernel.org/doc/Documentation/networking/vrf.txt">kernel docs</link>.
11751174 '';
11761175 };
11771176···19051904 };
1906190519071906 extraArgs = mkOption {
19081908- description = ''
19071907+ description = lib.mdDoc ''
19091908 Extra command-line arguments to pass to systemd-networkd-wait-online.
19101910- These also affect per-interface <literal>systemd-network-wait-online@</literal> services.
19091909+ These also affect per-interface `systemd-network-wait-online@` services.
1911191019121912- See <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html">
19131913- <citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum>
19141914- </citerefentry></link> for all available options.
19111911+ See [{manpage}`systemd-networkd-wait-online.service(8)`](https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html) for all available options.
19151912 '';
19161913 type = with types; listOf str;
19171914 default = [];
+1-1
nixos/modules/system/boot/stage-1.nix
···480480 if you want to resume from file. If left empty, the swap partitions are used.
481481 Specify here the device where the file resides.
482482 You should also use <varname>boot.kernelParams</varname> to specify
483483- <literal><replaceable>resume_offset</replaceable></literal>.
483483+ <literal>«resume_offset»</literal>.
484484 '';
485485 };
486486
+3-6
nixos/modules/system/boot/systemd/logind.nix
···2626 services.logind.killUserProcesses = mkOption {
2727 default = false;
2828 type = types.bool;
2929- description = ''
2929+ description = lib.mdDoc ''
3030 Specifies whether the processes of a user should be killed
3131 when the user logs out. If true, the scope unit corresponding
3232 to the session and all processes inside that scope will be
3333 terminated. If false, the scope is "abandoned" (see
3434- <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd.scope.html#">
3535- systemd.scope(5)</link>), and processes are not killed.
3636- </para>
3434+ [systemd.scope(5)](https://www.freedesktop.org/software/systemd/man/systemd.scope.html#)), and processes are not killed.
37353838- <para>
3939- See <link xlink:href="https://www.freedesktop.org/software/systemd/man/logind.conf.html#KillUserProcesses=">logind.conf(5)</link>
3636+ See [logind.conf(5)](https://www.freedesktop.org/software/systemd/man/logind.conf.html#KillUserProcesses=)
4037 for more details.
4138 '';
4239 };
+5-5
nixos/modules/system/boot/systemd/tmpfiles.nix
···2525 default = [];
2626 example = literalExpression "[ pkgs.lvm2 ]";
2727 apply = map getLib;
2828- description = ''
2929- List of packages containing <command>systemd-tmpfiles</command> rules.
2828+ description = lib.mdDoc ''
2929+ List of packages containing {command}`systemd-tmpfiles` rules.
30303131 All files ending in .conf found in
3232- <filename><replaceable>pkg</replaceable>/lib/tmpfiles.d</filename>
3232+ {file}`«pkg»/lib/tmpfiles.d`
3333 will be included.
3434 If this folder does not exist or does not contain any files an error will be returned instead.
35353636- If a <filename>lib</filename> output is available, rules are searched there and only there.
3737- If there is no <filename>lib</filename> output it will fall back to <filename>out</filename>
3636+ If a {file}`lib` output is available, rules are searched there and only there.
3737+ If there is no {file}`lib` output it will fall back to {file}`out`
3838 and if that does not exist either, the default output will be used.
3939 '';
4040 };
+3-3
nixos/modules/tasks/auto-upgrade.nix
···2525 type = types.enum ["switch" "boot"];
2626 default = "switch";
2727 example = "boot";
2828- description = ''
2828+ description = lib.mdDoc ''
2929 Whether to run
3030- <literal>nixos-rebuild switch --upgrade</literal> or run
3131- <literal>nixos-rebuild boot --upgrade</literal>
3030+ `nixos-rebuild switch --upgrade` or run
3131+ `nixos-rebuild boot --upgrade`
3232 '';
3333 };
3434
+1-1
nixos/modules/tasks/network-interfaces.nix
···12921292 description = ''
12931293 Whether to enable IPv6 Privacy Extensions for interfaces not
12941294 configured explicitly in
12951295- <xref linkend="opt-networking.interfaces._name_.tempAddress" />.
12951295+ <xref linkend="opt-networking.interfaces._name_.tempAddress"/>.
1296129612971297 This sets the ipv6.conf.*.use_tempaddr sysctl for all
12981298 interfaces. Possible values are:
···2525 powerManagement.scsiLinkPolicy = mkOption {
2626 default = null;
2727 type = types.nullOr (types.enum allowedValues);
2828- description = ''
2828+ description = lib.mdDoc ''
2929 SCSI link power management policy. The kernel default is
3030 "max_performance".
3131- </para><para>
3131+3232 "med_power_with_dipm" is supported by kernel versions
3333 4.15 and newer.
3434 '';
+6-6
nixos/modules/virtualisation/nixos-containers.nix
···579579 privateNetwork = mkOption {
580580 type = types.bool;
581581 default = false;
582582- description = ''
582582+ description = lib.mdDoc ''
583583 Whether to give the container its own private virtual
584584 Ethernet interface. The interface is called
585585- <literal>eth0</literal>, and is hooked up to the interface
586586- <literal>ve-<replaceable>container-name</replaceable></literal>
585585+ `eth0`, and is hooked up to the interface
586586+ `ve-«container-name»`
587587 on the host. If this option is not set, then the
588588 container shares the network interfaces of the host,
589589 and can bind to any port on any interface.
···728728 };
729729 }
730730 '';
731731- description = ''
731731+ description = lib.mdDoc ''
732732 A set of NixOS system configurations to be run as lightweight
733733 containers. Each container appears as a service
734734- <literal>container-<replaceable>name</replaceable></literal>
734734+ `container-«name»`
735735 on the host system, allowing it to be started and stopped via
736736- <command>systemctl</command>.
736736+ {command}`systemctl`.
737737 '';
738738 };
739739
+1-1
nixos/modules/virtualisation/podman/default.nix
···74747575 Podman implements the Docker API.
76767777- Users must be in the <code>podman</code> group in order to connect. As
7777+ Users must be in the <literal>podman</literal> group in order to connect. As
7878 with Docker, members of this group can gain root access.
7979 '';
8080 };
···2222 with TLS client certificate authentication.
23232424 This allows Docker clients to connect with the equivalents of the Docker
2525- CLI <code>-H</code> and <code>--tls*</code> family of options.
2525+ CLI <literal>-H</literal> and <literal>--tls*</literal> family of options.
26262727 For certificate setup, see https://docs.docker.com/engine/security/protect-access/
2828
+3-3
nixos/modules/virtualisation/qemu-vm.nix
···516516 description =
517517 ''
518518 Virtual networks to which the VM is connected. Each
519519- number <replaceable>N</replaceable> in this list causes
519519+ number «N» in this list causes
520520 the VM to have a virtual Ethernet interface attached to a
521521 separate virtual network on which it will be assigned IP
522522 address
523523- <literal>192.168.<replaceable>N</replaceable>.<replaceable>M</replaceable></literal>,
524524- where <replaceable>M</replaceable> is the index of this VM
523523+ <literal>192.168.«N».«M»</literal>,
524524+ where «M» is the index of this VM
525525 in the list of VMs.
526526 '';
527527 };