···2626 { "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }
2727 '';
2828 type = types.attrsOf sysctlOption;
2929- description = ''
2929+ description = lib.mdDoc ''
3030 Runtime parameters of the Linux kernel, as set by
3131- <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Note that sysctl
3131+ {manpage}`sysctl(8)`. Note that sysctl
3232 parameters names must be enclosed in quotes
3333- (e.g. <literal>"vm.swappiness"</literal> instead of
3434- <literal>vm.swappiness</literal>). The value of each
3333+ (e.g. `"vm.swappiness"` instead of
3434+ `vm.swappiness`). The value of each
3535 parameter may be a string, integer, boolean, or null
3636 (signifying the option will not appear at all).
3737 '';
+5-5
nixos/modules/config/system-environment.nix
···3939 environment.profileRelativeSessionVariables = mkOption {
4040 type = types.attrsOf (types.listOf types.str);
4141 example = { PATH = [ "/bin" ]; MANPATH = [ "/man" "/share/man" ]; };
4242- description = ''
4242+ description = lib.mdDoc ''
4343 Attribute set of environment variable used in the global
4444 environment. These variables will be set by PAM early in the
4545 login process.
46464747 Variable substitution is available as described in
4848- <citerefentry><refentrytitle>pam_env.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
4848+ {manpage}`pam_env.conf(5)`.
49495050 Each attribute maps to a list of relative paths. Each relative
5151 path is appended to the each profile of
5252- <option>environment.profiles</option> to form the content of
5252+ {option}`environment.profiles` to form the content of
5353 the corresponding environment variable.
54545555 Also, these variables are merged into
5656- <xref linkend="opt-environment.profileRelativeEnvVars"/> and it is
5656+ [](#opt-environment.profileRelativeEnvVars) and it is
5757 therefore not possible to use PAM style variables such as
5858- <literal>@{HOME}</literal>.
5858+ `@{HOME}`.
5959 '';
6060 };
6161
+19-19
nixos/modules/installer/cd-dvd/iso-image.nix
···454454455455 isoImage.isoName = mkOption {
456456 default = "${config.isoImage.isoBaseName}.iso";
457457- description = ''
457457+ description = lib.mdDoc ''
458458 Name of the generated ISO image file.
459459 '';
460460 };
461461462462 isoImage.isoBaseName = mkOption {
463463 default = "nixos";
464464- description = ''
464464+ description = lib.mdDoc ''
465465 Prefix of the name of the generated ISO image file.
466466 '';
467467 };
468468469469 isoImage.compressImage = mkOption {
470470 default = false;
471471- description = ''
471471+ description = lib.mdDoc ''
472472 Whether the ISO image should be compressed using
473473- <command>zstd</command>.
473473+ {command}`zstd`.
474474 '';
475475 };
476476···481481 + lib.optionalString isAarch "-Xbcj arm"
482482 + lib.optionalString (isPower && is32bit && isBigEndian) "-Xbcj powerpc"
483483 + lib.optionalString (isSparc) "-Xbcj sparc";
484484- description = ''
484484+ description = lib.mdDoc ''
485485 Compression settings to use for the squashfs nix store.
486486 '';
487487 example = "zstd -Xcompression-level 6";
···489489490490 isoImage.edition = mkOption {
491491 default = "";
492492- description = ''
492492+ description = lib.mdDoc ''
493493 Specifies which edition string to use in the volume ID of the generated
494494 ISO image.
495495 '';
···498498 isoImage.volumeID = mkOption {
499499 # nixos-$EDITION-$RELEASE-$ARCH
500500 default = "nixos${optionalString (config.isoImage.edition != "") "-${config.isoImage.edition}"}-${config.system.nixos.release}-${pkgs.stdenv.hostPlatform.uname.processor}";
501501- description = ''
501501+ description = lib.mdDoc ''
502502 Specifies the label or volume ID of the generated ISO image.
503503 Note that the label is used by stage 1 of the boot process to
504504 mount the CD, so it should be reasonably distinctive.
···512512 }
513513 ]
514514 '';
515515- description = ''
515515+ description = lib.mdDoc ''
516516 This option lists files to be copied to fixed locations in the
517517 generated ISO image.
518518 '';
···520520521521 isoImage.storeContents = mkOption {
522522 example = literalExpression "[ pkgs.stdenv ]";
523523- description = ''
523523+ description = lib.mdDoc ''
524524 This option lists additional derivations to be included in the
525525 Nix store in the generated ISO image.
526526 '';
···528528529529 isoImage.includeSystemBuildDependencies = mkOption {
530530 default = false;
531531- description = ''
531531+ description = lib.mdDoc ''
532532 Set this option to include all the needed sources etc in the
533533 image. It significantly increases image size. Use that when
534534 you want to be able to keep all the sources needed to build your
···539539540540 isoImage.makeEfiBootable = mkOption {
541541 default = false;
542542- description = ''
542542+ description = lib.mdDoc ''
543543 Whether the ISO image should be an efi-bootable volume.
544544 '';
545545 };
546546547547 isoImage.makeUsbBootable = mkOption {
548548 default = false;
549549- description = ''
549549+ description = lib.mdDoc ''
550550 Whether the ISO image should be bootable from CD as well as USB.
551551 '';
552552 };
···556556 url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png";
557557 sha256 = "18lfwmp8yq923322nlb9gxrh5qikj1wsk6g5qvdh31c4h5b1538x";
558558 };
559559- description = ''
559559+ description = lib.mdDoc ''
560560 The splash image to use in the EFI bootloader.
561561 '';
562562 };
···566566 url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png";
567567 sha256 = "1wp822zrhbg4fgfbwkr7cbkr4labx477209agzc0hr6k62fr6rxd";
568568 };
569569- description = ''
569569+ description = lib.mdDoc ''
570570 The splash image to use in the legacy-boot bootloader.
571571 '';
572572 };
···574574 isoImage.grubTheme = mkOption {
575575 default = pkgs.nixos-grub2-theme;
576576 type = types.nullOr (types.either types.path types.package);
577577- description = ''
577577+ description = lib.mdDoc ''
578578 The grub2 theme used for UEFI boot.
579579 '';
580580 };
···605605 MENU COLOR SEL 7;37;40 #FFFFFFFF #FF5277C3 std
606606 '';
607607 type = types.str;
608608- description = ''
608608+ description = lib.mdDoc ''
609609 The syslinux theme used for BIOS boot.
610610 '';
611611 };
···613613 isoImage.appendToMenuLabel = mkOption {
614614 default = " Installer";
615615 example = " Live System";
616616- description = ''
616616+ description = lib.mdDoc ''
617617 The string to append after the menu label for the NixOS system.
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>:
619619+ string, like for example if it is set to `XXX`:
620620621621- <literal>NixOS 99.99-pre666XXX</literal>
621621+ `NixOS 99.99-pre666XXX`
622622 '';
623623 };
624624
+1-1
nixos/modules/installer/netboot/netboot.nix
···10101111 netboot.storeContents = mkOption {
1212 example = literalExpression "[ pkgs.stdenv ]";
1313- description = ''
1313+ description = lib.mdDoc ''
1414 This option lists additional derivations to be included in the
1515 Nix store in the generated netboot image.
1616 '';
+14-14
nixos/modules/misc/documentation.nix
···157157 enable = mkOption {
158158 type = types.bool;
159159 default = true;
160160- description = ''
160160+ description = lib.mdDoc ''
161161 Whether to install documentation of packages from
162162- <option>environment.systemPackages</option> into the generated system path.
162162+ {option}`environment.systemPackages` into the generated system path.
163163164164 See "Multiple-output packages" chapter in the nixpkgs manual for more info.
165165 '';
···169169 man.enable = mkOption {
170170 type = types.bool;
171171 default = true;
172172- description = ''
172172+ description = lib.mdDoc ''
173173 Whether to install manual pages.
174174- This also includes <literal>man</literal> outputs.
174174+ This also includes `man` outputs.
175175 '';
176176 };
177177···190190 info.enable = mkOption {
191191 type = types.bool;
192192 default = true;
193193- description = ''
194194- Whether to install info pages and the <command>info</command> command.
193193+ description = lib.mdDoc ''
194194+ Whether to install info pages and the {command}`info` command.
195195 This also includes "info" outputs.
196196 '';
197197 };
···199199 doc.enable = mkOption {
200200 type = types.bool;
201201 default = true;
202202- description = ''
203203- Whether to install documentation distributed in packages' <literal>/share/doc</literal>.
202202+ description = lib.mdDoc ''
203203+ Whether to install documentation distributed in packages' `/share/doc`.
204204 Usually plain text and/or HTML.
205205 This also includes "doc" outputs.
206206 '';
···238238 nixos.options.splitBuild = mkOption {
239239 type = types.bool;
240240 default = true;
241241- description = ''
241241+ description = lib.mdDoc ''
242242 Whether to split the option docs build into a cacheable and an uncacheable part.
243243 Splitting the build can substantially decrease the amount of time needed to build
244244 the manual, but some user modules may be incompatible with this splitting.
···248248 nixos.options.warningsAreErrors = mkOption {
249249 type = types.bool;
250250 default = true;
251251- description = ''
251251+ description = lib.mdDoc ''
252252 Treat warning emitted during the option documentation build (eg for missing option
253253 descriptions) as errors.
254254 '';
···257257 nixos.includeAllModules = mkOption {
258258 type = types.bool;
259259 default = false;
260260- description = ''
260260+ description = lib.mdDoc ''
261261 Whether the generated NixOS's documentation should include documentation for all
262262 the options from all the NixOS modules included in the current
263263- <literal>configuration.nix</literal>. Disabling this will make the manual
264264- generator to ignore options defined outside of <literal>baseModules</literal>.
263263+ `configuration.nix`. Disabling this will make the manual
264264+ generator to ignore options defined outside of `baseModules`.
265265 '';
266266 };
267267268268 nixos.extraModuleSources = mkOption {
269269 type = types.listOf (types.either types.path types.str);
270270 default = [ ];
271271- description = ''
271271+ description = lib.mdDoc ''
272272 Which extra NixOS module paths the generated NixOS's documentation should strip
273273 from options.
274274 '';
+4-4
nixos/modules/misc/locate.nix
···3939 type = str;
4040 default = "02:15";
4141 example = "hourly";
4242- description = ''
4242+ description = lib.mdDoc ''
4343 Update the locate database at this interval. Updates by
4444 default at 2:15 AM every day.
45454646 The format is described in
4747- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
4747+ {manpage}`systemd.time(7)`.
48484949- To disable automatic updates, set to <literal>"never"</literal>
5050- and run <command>updatedb</command> manually.
4949+ To disable automatic updates, set to `"never"`
5050+ and run {command}`updatedb` manually.
5151 '';
5252 };
5353
+25-25
nixos/modules/misc/nixpkgs.nix
···157157 { allowBroken = true; allowUnfree = true; }
158158 '';
159159 type = configType;
160160- description = ''
160160+ description = lib.mdDoc ''
161161 The configuration of the Nix Packages collection. (For
162162 details, see the Nixpkgs documentation.) It allows you to set
163163 package configuration options.
164164165165- Ignored when <literal>nixpkgs.pkgs</literal> is set.
165165+ Ignored when `nixpkgs.pkgs` is set.
166166 '';
167167 };
168168···180180 ]
181181 '';
182182 type = types.listOf overlayType;
183183- description = ''
183183+ description = lib.mdDoc ''
184184 List of overlays to use with the Nix Packages collection.
185185 (For details, see the Nixpkgs documentation.) It allows
186186 you to override packages globally. Each function in the list
187187- takes as an argument the <emphasis>original</emphasis> Nixpkgs.
187187+ takes as an argument the *original* Nixpkgs.
188188 The first argument should be used for finding dependencies, and
189189 the second should be used for overriding recipes.
190190191191- If <literal>nixpkgs.pkgs</literal> is set, overlays specified here
191191+ If `nixpkgs.pkgs` is set, overlays specified here
192192 will be applied after the overlays that were already present
193193- in <literal>nixpkgs.pkgs</literal>.
193193+ in `nixpkgs.pkgs`.
194194 '';
195195 };
196196···202202 apply = lib.systems.elaborate;
203203 defaultText = literalExpression
204204 ''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
205205- description = ''
205205+ description = lib.mdDoc ''
206206 Specifies the platform where the NixOS configuration will run.
207207208208- To cross-compile, set also <literal>nixpkgs.buildPlatform</literal>.
208208+ To cross-compile, set also `nixpkgs.buildPlatform`.
209209210210- Ignored when <literal>nixpkgs.pkgs</literal> is set.
210210+ Ignored when `nixpkgs.pkgs` is set.
211211 '';
212212 };
213213···220220 apply = lib.systems.elaborate;
221221 defaultText = literalExpression
222222 ''config.nixpkgs.hostPlatform'';
223223- description = ''
223223+ description = lib.mdDoc ''
224224 Specifies the platform on which NixOS should be built.
225225 By default, NixOS is built on the system where it runs, but you can
226226 change where it's built. Setting this option will cause NixOS to be
···230230 or if you're building machines, you can set this to match your
231231 development system and/or build farm.
232232233233- Ignored when <literal>nixpkgs.pkgs</literal> is set.
233233+ Ignored when `nixpkgs.pkgs` is set.
234234 '';
235235 };
236236···243243 apply = lib.systems.elaborate;
244244 defaultText = literalExpression
245245 ''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
246246- description = ''
247247- Systems with a recently generated <literal>hardware-configuration.nix</literal>
246246+ description = lib.mdDoc ''
247247+ Systems with a recently generated `hardware-configuration.nix`
248248 do not need to specify this option, unless cross-compiling, in which case
249249- you should set <emphasis>only</emphasis> <option>nixpkgs.buildPlatform</option>.
249249+ you should set *only* {option}`nixpkgs.buildPlatform`.
250250251251 If this is somehow not feasible, you may fall back to removing the
252252- <option>nixpkgs.hostPlatform</option> line from the generated config and
252252+ {option}`nixpkgs.hostPlatform` line from the generated config and
253253 use the old options.
254254255255 Specifies the platform on which NixOS should be built. When
256256- <literal>nixpkgs.crossSystem</literal> is unset, it also specifies
257257- the platform <emphasis>for</emphasis> which NixOS should be
256256+ `nixpkgs.crossSystem` is unset, it also specifies
257257+ the platform *for* 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
260260 option is useful when doing distributed multi-platform
261261 deployment, or when building virtual machines. See its
262262 description in the Nixpkgs manual for more details.
263263264264- Ignored when <literal>nixpkgs.pkgs</literal> or <literal>hostPlatform</literal> is set.
264264+ Ignored when `nixpkgs.pkgs` or `hostPlatform` is set.
265265 '';
266266 };
267267···272272 type = types.nullOr types.attrs; # TODO utilize lib.systems.parsedPlatform
273273 default = null;
274274 example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
275275- description = ''
276276- Systems with a recently generated <literal>hardware-configuration.nix</literal>
277277- may instead specify <emphasis>only</emphasis> <option>nixpkgs.buildPlatform</option>,
278278- or fall back to removing the <option>nixpkgs.hostPlatform</option> line from the generated config.
275275+ description = lib.mdDoc ''
276276+ Systems with a recently generated `hardware-configuration.nix`
277277+ may instead specify *only* {option}`nixpkgs.buildPlatform`,
278278+ or fall back to removing the {option}`nixpkgs.hostPlatform` line from the generated config.
279279280280 Specifies the platform for which NixOS should be
281281 built. Specify this only if it is different from
282282- <literal>nixpkgs.localSystem</literal>, the platform
283283- <emphasis>on</emphasis> which NixOS should be built. In other
282282+ `nixpkgs.localSystem`, the platform
283283+ *on* 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 <literal>nixpkgs.pkgs</literal> or <literal>hostPlatform</literal> is set.
288288+ Ignored when `nixpkgs.pkgs` or `hostPlatform` is set.
289289 '';
290290 };
291291
+3-3
nixos/modules/profiles/clone-config.nix
···61616262 installer.cloneConfig = mkOption {
6363 default = true;
6464- description = ''
6464+ description = lib.mdDoc ''
6565 Try to clone the installation-device configuration by re-using it's
6666 profile from the list of imported modules.
6767 '';
···7070 installer.cloneConfigIncludes = mkOption {
7171 default = [];
7272 example = [ "./nixos/modules/hardware/network/rt73.nix" ];
7373- description = ''
7373+ description = lib.mdDoc ''
7474 List of modules used to re-build this installation device profile.
7575 '';
7676 };
77777878 installer.cloneConfigExtra = mkOption {
7979 default = "";
8080- description = ''
8080+ description = lib.mdDoc ''
8181 Extra text to include in the cloned configuration.nix included in this
8282 installer.
8383 '';
+2-2
nixos/modules/security/acme/default.nix
···451451 renewInterval = mkOption {
452452 type = types.str;
453453 inherit (defaultAndText "renewInterval" "daily") default defaultText;
454454- description = ''
454454+ description = lib.mdDoc ''
455455 Systemd calendar expression when to check for renewal. See
456456- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
456456+ {manpage}`systemd.time(7)`.
457457 '';
458458 };
459459
+5-5
nixos/modules/security/apparmor.nix
···4242 if you want this service to do such killing
4343 by sending a <literal>SIGTERM</literal> to those running processes'';
4444 policies = mkOption {
4545- description = ''
4545+ description = lib.mdDoc ''
4646 AppArmor policies.
4747 '';
4848 type = types.attrsOf (types.submodule ({ name, config, ... }: {
···5050 enable = mkDisableOption "loading of the profile into the kernel";
5151 enforce = mkDisableOption "enforcing of the policy or only complain in the logs";
5252 profile = mkOption {
5353- description = "The policy of the profile.";
5353+ description = lib.mdDoc "The policy of the profile.";
5454 type = types.lines;
5555 apply = pkgs.writeText name;
5656 };
···6161 includes = mkOption {
6262 type = types.attrsOf types.lines;
6363 default = {};
6464- description = ''
6464+ description = lib.mdDoc ''
6565 List of paths to be added to AppArmor's searched paths
6666- when resolving <literal>include</literal> directives.
6666+ when resolving `include` directives.
6767 '';
6868 apply = mapAttrs pkgs.writeText;
6969 };
7070 packages = mkOption {
7171 type = types.listOf types.package;
7272 default = [];
7373- description = "List of packages to be added to AppArmor's include path";
7373+ description = lib.mdDoc "List of packages to be added to AppArmor's include path";
7474 };
7575 enableCache = mkEnableOption ''
7676 caching of AppArmor policies
+8-8
nixos/modules/security/pam.nix
···836836 control = mkOption {
837837 default = "sufficient";
838838 type = types.enum [ "required" "requisite" "sufficient" "optional" ];
839839- description = ''
839839+ description = lib.mdDoc ''
840840 This option sets pam "control".
841841 If you want to have multi factor authentication, use "required".
842842 If you want to use the PKCS#11 device instead of the regular password,
843843 use "sufficient".
844844845845 Read
846846- <citerefentry><refentrytitle>pam.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
846846+ {manpage}`pam.conf(5)`
847847 for better understanding of this option.
848848 '';
849849 };
···924924 control = mkOption {
925925 default = "sufficient";
926926 type = types.enum [ "required" "requisite" "sufficient" "optional" ];
927927- description = ''
927927+ description = lib.mdDoc ''
928928 This option sets pam "control".
929929 If you want to have multi factor authentication, use "required".
930930 If you want to use U2F device instead of regular password, use "sufficient".
931931932932 Read
933933- <citerefentry><refentrytitle>pam.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
933933+ {manpage}`pam.conf(5)`
934934 for better understanding of this option.
935935 '';
936936 };
···10391039 control = mkOption {
10401040 default = "sufficient";
10411041 type = types.enum [ "required" "requisite" "sufficient" "optional" ];
10421042- description = ''
10421042+ description = lib.mdDoc ''
10431043 This option sets pam "control".
10441044 If you want to have multi factor authentication, use "required".
10451045 If you want to use the SSH certificate instead of the regular password,
10461046 use "sufficient".
1047104710481048 Read
10491049- <citerefentry><refentrytitle>pam.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
10491049+ {manpage}`pam.conf(5)`
10501050 for better understanding of this option.
10511051 '';
10521052 };
···10711071 control = mkOption {
10721072 default = "sufficient";
10731073 type = types.enum [ "required" "requisite" "sufficient" "optional" ];
10741074- description = ''
10741074+ description = lib.mdDoc ''
10751075 This option sets pam "control".
10761076 If you want to have multi factor authentication, use "required".
10771077 If you want to use Yubikey instead of regular password, use "sufficient".
1078107810791079 Read
10801080- <citerefentry><refentrytitle>pam.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
10801080+ {manpage}`pam.conf(5)`
10811081 for better understanding of this option.
10821082 '';
10831083 };
+8-8
nixos/modules/security/systemd-confinement.nix
···1010 options.confinement.enable = lib.mkOption {
1111 type = types.bool;
1212 default = false;
1313- description = ''
1313+ description = lib.mdDoc ''
1414 If set, all the required runtime store paths for this service are
1515- bind-mounted into a <literal>tmpfs</literal>-based
1616- <citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
1515+ bind-mounted into a `tmpfs`-based
1616+ {manpage}`chroot(2)`.
1717 '';
1818 };
1919···6161 default = toplevelConfig.environment.binsh;
6262 defaultText = lib.literalExpression "config.environment.binsh";
6363 example = lib.literalExpression ''"''${pkgs.dash}/bin/dash"'';
6464- description = ''
6565- The program to make available as <filename>/bin/sh</filename> inside
6666- the chroot. If this is set to <literal>null</literal>, no
6767- <filename>/bin/sh</filename> is provided at all.
6464+ description = lib.mdDoc ''
6565+ The program to make available as {file}`/bin/sh` inside
6666+ the chroot. If this is set to `null`, no
6767+ {file}`/bin/sh` is provided at all.
68686969 This is useful for some applications, which for example use the
7070- <citerefentry><refentrytitle>system</refentrytitle><manvolnum>3</manvolnum></citerefentry> library function to execute commands.
7070+ {manpage}`system(3)` library function to execute commands.
7171 '';
7272 };
7373
+6-6
nixos/modules/services/backup/borgbackup.nix
···320320 startAt = mkOption {
321321 type = with types; either str (listOf str);
322322 default = "daily";
323323- description = ''
323323+ description = lib.mdDoc ''
324324 When or how often the backup should run.
325325 Must be in the format described in
326326- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
326326+ {manpage}`systemd.time(7)`.
327327 If you do not want the backup to start
328328- automatically, use <literal>[ ]</literal>.
328328+ automatically, use `[ ]`.
329329 It will generate a systemd service borgbackup-job-NAME.
330330 You may trigger it manually via systemctl restart borgbackup-job-NAME.
331331 '';
···335335 default = false;
336336 type = types.bool;
337337 example = true;
338338- description = ''
339339- Set the <literal>persistentTimer</literal> option for the
340340- <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
338338+ description = lib.mdDoc ''
339339+ Set the `persistentTimer` option for the
340340+ {manpage}`systemd.timer(5)`
341341 which triggers the backup immediately if the last trigger
342342 was missed (e.g. if the system was powered down).
343343 '';
+10-10
nixos/modules/services/backup/duplicity.nix
···2727 type = types.listOf types.str;
2828 default = [ ];
2929 example = [ "/home" ];
3030- description = ''
3030+ description = lib.mdDoc ''
3131 List of paths to include into the backups. See the FILE SELECTION
3232- section in <citerefentry><refentrytitle>duplicity</refentrytitle><manvolnum>1</manvolnum></citerefentry> for details on the syntax.
3232+ section in {manpage}`duplicity(1)` for details on the syntax.
3333 '';
3434 };
35353636 exclude = mkOption {
3737 type = types.listOf types.str;
3838 default = [ ];
3939- description = ''
3939+ description = lib.mdDoc ''
4040 List of paths to exclude from backups. See the FILE SELECTION section in
4141- <citerefentry><refentrytitle>duplicity</refentrytitle><manvolnum>1</manvolnum></citerefentry> for details on the syntax.
4141+ {manpage}`duplicity(1)` for details on the syntax.
4242 '';
4343 };
44444545 targetUrl = mkOption {
4646 type = types.str;
4747 example = "s3://host:port/prefix";
4848- description = ''
4848+ description = lib.mdDoc ''
4949 Target url to backup to. See the URL FORMAT section in
5050- <citerefentry><refentrytitle>duplicity</refentrytitle><manvolnum>1</manvolnum></citerefentry> for supported urls.
5050+ {manpage}`duplicity(1)` for supported urls.
5151 '';
5252 };
5353···6969 frequency = mkOption {
7070 type = types.nullOr types.str;
7171 default = "daily";
7272- description = ''
7272+ description = lib.mdDoc ''
7373 Run duplicity with the given frequency (see
7474- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry> for the format).
7474+ {manpage}`systemd.time(7)` for the format).
7575 If null, do not run automatically.
7676 '';
7777 };
···8080 type = types.listOf types.str;
8181 default = [ ];
8282 example = [ "--backend-retry-delay" "100" ];
8383- description = ''
8383+ description = lib.mdDoc ''
8484 Extra command-line flags passed to duplicity. See
8585- <citerefentry><refentrytitle>duplicity</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
8585+ {manpage}`duplicity(1)`.
8686 '';
8787 };
8888
+2-2
nixos/modules/services/backup/sanoid.nix
···118118 type = types.str;
119119 default = "hourly";
120120 example = "daily";
121121- description = ''
121121+ description = lib.mdDoc ''
122122 Run sanoid at this interval. The default is to run hourly.
123123124124 The format is described in
125125- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
125125+ {manpage}`systemd.time(7)`.
126126 '';
127127 };
128128
+2-2
nixos/modules/services/backup/syncoid.nix
···8989 type = types.str;
9090 default = "hourly";
9191 example = "*-*-* *:15:00";
9292- description = ''
9292+ description = lib.mdDoc ''
9393 Run syncoid at this interval. The default is to run hourly.
94949595 The format is described in
9696- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
9696+ {manpage}`systemd.time(7)`.
9797 '';
9898 };
9999
+2-2
nixos/modules/services/backup/tarsnap.nix
···140140 type = types.str;
141141 default = "01:15";
142142 example = "hourly";
143143- description = ''
143143+ description = lib.mdDoc ''
144144 Create archive at this interval.
145145146146 The format is described in
147147- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
147147+ {manpage}`systemd.time(7)`.
148148 '';
149149 };
150150
···2929 ip = mkOption {
3030 type = types.str;
3131 default = "localhost";
3232- description = ''
3232+ description = lib.mdDoc ''
3333 IP address Jupyter will be listening on.
3434 '';
3535 };
···4141 # saving a rebuild.
4242 default = pkgs.python3.pkgs.notebook;
4343 defaultText = literalExpression "pkgs.python3.pkgs.notebook";
4444- description = ''
4444+ description = lib.mdDoc ''
4545 Jupyter package to use.
4646 '';
4747 };
···5050 type = types.str;
5151 default = "jupyter-notebook";
5252 example = "jupyter-lab";
5353- description = ''
5353+ description = lib.mdDoc ''
5454 Which command the service runs. Note that not all jupyter packages
5555 have all commands, e.g. jupyter-lab isn't present in the default package.
5656 '';
···5959 port = mkOption {
6060 type = types.int;
6161 default = 8888;
6262- description = ''
6262+ description = lib.mdDoc ''
6363 Port number Jupyter will be listening on.
6464 '';
6565 };
···6767 notebookDir = mkOption {
6868 type = types.str;
6969 default = "~/";
7070- description = ''
7070+ description = lib.mdDoc ''
7171 Root directory for notebooks.
7272 '';
7373 };
···7575 user = mkOption {
7676 type = types.str;
7777 default = "jupyter";
7878- description = ''
7878+ description = lib.mdDoc ''
7979 Name of the user used to run the jupyter service.
8080 For security reason, jupyter should really not be run as root.
8181 If not set (jupyter), the service will create a jupyter user with appropriate settings.
···8686 group = mkOption {
8787 type = types.str;
8888 default = "jupyter";
8989- description = ''
8989+ description = lib.mdDoc ''
9090 Name of the group used to run the jupyter service.
9191 Use this if you want to create a group of users that are able to view the notebook directory's content.
9292 '';
···95959696 password = mkOption {
9797 type = types.str;
9898- description = ''
9898+ description = lib.mdDoc ''
9999 Password to use with notebook.
100100 Can be generated using:
101101 In [1]: from notebook.auth import passwd
···112112 notebookConfig = mkOption {
113113 type = types.lines;
114114 default = "";
115115- description = ''
115115+ description = lib.mdDoc ''
116116 Raw jupyter config.
117117 '';
118118 };
···3535 authentication = mkOption {
3636 type = types.str;
3737 default = "jupyterhub.auth.PAMAuthenticator";
3838- description = ''
3838+ description = lib.mdDoc ''
3939 Jupyterhub authentication to use
40404141 There are many authenticators available including: oauth, pam,
···4646 spawner = mkOption {
4747 type = types.str;
4848 default = "systemdspawner.SystemdSpawner";
4949- description = ''
4949+ description = lib.mdDoc ''
5050 Jupyterhub spawner to use
51515252 There are many spawners available including: local process,
···5757 extraConfig = mkOption {
5858 type = types.lines;
5959 default = "";
6060- description = ''
6060+ description = lib.mdDoc ''
6161 Extra contents appended to the jupyterhub configuration
62626363 Jupyterhub configuration is a normal python file using
···8484 jupyterhub-systemdspawner
8585 ])
8686 '';
8787- description = ''
8787+ description = lib.mdDoc ''
8888 Python environment to run jupyterhub
89899090 Customizing will affect the packages available in the hub and
···106106 jupyterlab
107107 ])
108108 '';
109109- description = ''
109109+ description = lib.mdDoc ''
110110 Python environment to run jupyterlab
111111112112 Customizing will affect the packages available in the
···146146 };
147147 }
148148 '';
149149- description = ''
149149+ description = lib.mdDoc ''
150150 Declarative kernel config
151151152152 Kernels can be declared in any language that supports and has
···159159 port = mkOption {
160160 type = types.port;
161161 default = 8000;
162162- description = ''
162162+ description = lib.mdDoc ''
163163 Port number Jupyterhub will be listening on
164164 '';
165165 };
···167167 host = mkOption {
168168 type = types.str;
169169 default = "0.0.0.0";
170170- description = ''
170170+ description = lib.mdDoc ''
171171 Bind IP JupyterHub will be listening on
172172 '';
173173 };
···175175 stateDirectory = mkOption {
176176 type = types.str;
177177 default = "jupyterhub";
178178- description = ''
178178+ description = lib.mdDoc ''
179179 Directory for jupyterhub state (token + database)
180180 '';
181181 };
+2-2
nixos/modules/services/hardware/pcscd.nix
···3535 LIBPATH /path/to/serial_reader.so
3636 CHANNELID 1
3737 '';
3838- description = ''
3838+ description = lib.mdDoc ''
3939 Configuration for devices that aren't hotpluggable.
40404141- See <citerefentry><refentrytitle>reader.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> for valid options.
4141+ See {manpage}`reader.conf(5)` for valid options.
4242 '';
4343 };
4444 };
+2-2
nixos/modules/services/logging/awstats.nix
···121121 type = types.nullOr types.str;
122122 default = null;
123123 example = "hourly";
124124- description = ''
124124+ description = lib.mdDoc ''
125125 Specification of the time at which awstats will get updated.
126126- (in the format described by <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>)
126126+ (in the format described by {manpage}`systemd.time(7)`)
127127 '';
128128 };
129129 };
+2-2
nixos/modules/services/mail/mlmmj.nix
···8686 maintInterval = mkOption {
8787 type = types.str;
8888 default = "20min";
8989- description = ''
8989+ description = lib.mdDoc ''
9090 Time interval between mlmmj-maintd runs, see
9191- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry> for format information.
9191+ {manpage}`systemd.time(7)` for format information.
9292 '';
9393 };
9494
+2-2
nixos/modules/services/mail/postfix.nix
···535535 canonical = mkOption {
536536 type = types.lines;
537537 default = "";
538538- description = ''
539539- Entries for the <citerefentry><refentrytitle>canonical</refentrytitle><manvolnum>5</manvolnum></citerefentry> table.
538538+ description = lib.mdDoc ''
539539+ Entries for the {manpage}`canonical(5)` table.
540540 '';
541541 };
542542
+19-19
nixos/modules/services/matrix/mjolnir.nix
···7070 homeserverUrl = mkOption {
7171 type = types.str;
7272 default = "https://matrix.org";
7373- description = ''
7373+ description = lib.mdDoc ''
7474 Where the homeserver is located (client-server URL).
75757676- If <literal>pantalaimon.enable</literal> is <literal>true</literal>, this option will become the homeserver to which <literal>pantalaimon</literal> connects.
7777- The listen address of <literal>pantalaimon</literal> will then become the <literal>homeserverUrl</literal> of <literal>mjolnir</literal>.
7676+ If `pantalaimon.enable` is `true`, this option will become the homeserver to which `pantalaimon` connects.
7777+ The listen address of `pantalaimon` will then become the `homeserverUrl` of `mjolnir`.
7878 '';
7979 };
80808181 accessTokenFile = mkOption {
8282 type = with types; nullOr path;
8383 default = null;
8484- description = ''
8585- File containing the matrix access token for the <literal>mjolnir</literal> user.
8484+ description = lib.mdDoc ''
8585+ File containing the matrix access token for the `mjolnir` user.
8686 '';
8787 };
88888989 pantalaimon = mkOption {
9090- description = ''
9191- <literal>pantalaimon</literal> options (enables E2E Encryption support).
9090+ description = lib.mdDoc ''
9191+ `pantalaimon` options (enables E2E Encryption support).
92929393- This will create a <literal>pantalaimon</literal> instance with the name "mjolnir".
9393+ This will create a `pantalaimon` instance with the name "mjolnir".
9494 '';
9595 default = { };
9696 type = types.submodule {
···102102103103 username = mkOption {
104104 type = types.str;
105105- description = "The username to login with.";
105105+ description = lib.mdDoc "The username to login with.";
106106 };
107107108108 passwordFile = mkOption {
109109 type = with types; nullOr path;
110110 default = null;
111111- description = ''
112112- File containing the matrix password for the <literal>mjolnir</literal> user.
111111+ description = lib.mdDoc ''
112112+ File containing the matrix password for the `mjolnir` user.
113113 '';
114114 };
115115116116 options = mkOption {
117117 type = types.submodule (import ./pantalaimon-options.nix);
118118 default = { };
119119- description = ''
120120- passthrough additional options to the <literal>pantalaimon</literal> service.
119119+ description = lib.mdDoc ''
120120+ passthrough additional options to the `pantalaimon` service.
121121 '';
122122 };
123123 };
···127127 dataPath = mkOption {
128128 type = types.path;
129129 default = "/var/lib/mjolnir";
130130- description = ''
130130+ description = lib.mdDoc ''
131131 The directory the bot should store various bits of information in.
132132 '';
133133 };
···135135 managementRoom = mkOption {
136136 type = types.str;
137137 default = "#moderators:example.org";
138138- description = ''
138138+ description = lib.mdDoc ''
139139 The room ID where people can use the bot. The bot has no access controls, so
140140 anyone in this room can use the bot - secure your room!
141141 This should be a room alias or room ID - not a matrix.to URL.
142142- Note: <literal>mjolnir</literal> is fairly verbose - expect a lot of messages from it.
142142+ Note: `mjolnir` is fairly verbose - expect a lot of messages from it.
143143 '';
144144 };
145145···152152 "https://matrix.to/#/#anotherroom:example.org"
153153 ]
154154 '';
155155- description = ''
155155+ description = lib.mdDoc ''
156156 A list of rooms to protect (matrix.to URLs).
157157 '';
158158 };
···166166 automaticallyRedactForReasons = [ "spam" "advertising" ];
167167 }
168168 '';
169169- description = ''
170170- Additional settings (see <link xlink:href="https://github.com/matrix-org/mjolnir/blob/main/config/default.yaml">mjolnir default config</link> for available settings). These settings will override settings made by the module config.
169169+ description = lib.mdDoc ''
170170+ Additional settings (see [mjolnir default config](https://github.com/matrix-org/mjolnir/blob/main/config/default.yaml) for available settings). These settings will override settings made by the module config.
171171 '';
172172 };
173173 };
···66 dataPath = mkOption {
77 type = types.path;
88 default = "/var/lib/pantalaimon-${name}";
99- description = ''
1010- The directory where <literal>pantalaimon</literal> should store its state such as the database file.
99+ description = lib.mdDoc ''
1010+ The directory where `pantalaimon` should store its state such as the database file.
1111 '';
1212 };
13131414 logLevel = mkOption {
1515 type = types.enum [ "info" "warning" "error" "debug" ];
1616 default = "warning";
1717- description = ''
1717+ description = lib.mdDoc ''
1818 Set the log level of the daemon.
1919 '';
2020 };
···2222 homeserver = mkOption {
2323 type = types.str;
2424 example = "https://matrix.org";
2525- description = ''
2626- The URI of the homeserver that the <literal>pantalaimon</literal> proxy should
2525+ description = lib.mdDoc ''
2626+ The URI of the homeserver that the `pantalaimon` proxy should
2727 forward requests to, without the matrix API path but including
2828 the http(s) schema.
2929 '';
···3232 ssl = mkOption {
3333 type = types.bool;
3434 default = true;
3535- description = ''
3535+ description = lib.mdDoc ''
3636 Whether or not SSL verification should be enabled for outgoing
3737 connections to the homeserver.
3838 '';
···4141 listenAddress = mkOption {
4242 type = types.str;
4343 default = "localhost";
4444- description = ''
4444+ description = lib.mdDoc ''
4545 The address where the daemon will listen to client connections
4646 for this homeserver.
4747 '';
···5050 listenPort = mkOption {
5151 type = types.port;
5252 default = 8009;
5353- description = ''
5353+ description = lib.mdDoc ''
5454 The port where the daemon will listen to client connections for
5555 this homeserver. Note that the listen address/port combination
5656 needs to be unique between different homeservers.
···6060 extraSettings = mkOption {
6161 type = types.attrs;
6262 default = { };
6363- description = ''
6363+ description = lib.mdDoc ''
6464 Extra configuration options. See
6565- <link xlink:href="https://github.com/matrix-org/pantalaimon/blob/master/docs/man/pantalaimon.5.md">pantalaimon(5)</link>
6565+ [pantalaimon(5)](https://github.com/matrix-org/pantalaimon/blob/master/docs/man/pantalaimon.5.md)
6666 for available options.
6767 '';
6868 };
+2-2
nixos/modules/services/matrix/pantalaimon.nix
···5151 options.services.pantalaimon-headless.instances = mkOption {
5252 default = { };
5353 type = types.attrsOf (types.submodule (import ./pantalaimon-options.nix));
5454- description = ''
5454+ description = lib.mdDoc ''
5555 Declarative instance config.
56565757 Note: to use pantalaimon interactively, e.g. for a Matrix client which does not
5858- support End-to-end encryption (like <literal>fractal</literal>), refer to the home-manager module.
5858+ support End-to-end encryption (like `fractal`), refer to the home-manager module.
5959 '';
6060 };
6161
+41-41
nixos/modules/services/matrix/synapse.nix
···143143 configFile = mkOption {
144144 type = types.path;
145145 readOnly = true;
146146- description = ''
146146+ description = lib.mdDoc ''
147147 Path to the configuration file on the target system. Useful to configure e.g. workers
148148 that also need this.
149149 '';
···153153 type = types.package;
154154 default = pkgs.matrix-synapse;
155155 defaultText = literalExpression "pkgs.matrix-synapse";
156156- description = ''
156156+ description = lib.mdDoc ''
157157 Overridable attribute of the matrix synapse server package to use.
158158 '';
159159 };
···167167 matrix-synapse-pam
168168 ];
169169 '';
170170- description = ''
170170+ description = lib.mdDoc ''
171171 List of additional Matrix plugins to make available.
172172 '';
173173 };
···175175 withJemalloc = mkOption {
176176 type = types.bool;
177177 default = false;
178178- description = ''
178178+ description = lib.mdDoc ''
179179 Whether to preload jemalloc to reduce memory fragmentation and overall usage.
180180 '';
181181 };
···183183 dataDir = mkOption {
184184 type = types.str;
185185 default = "/var/lib/matrix-synapse";
186186- description = ''
186186+ description = lib.mdDoc ''
187187 The directory where matrix-synapse stores its stateful data such as
188188 certificates, media and uploads.
189189 '';
···210210 example = "example.com";
211211 default = config.networking.hostName;
212212 defaultText = literalExpression "config.networking.hostName";
213213- description = ''
213213+ description = lib.mdDoc ''
214214 The domain name of the server, with optional explicit port.
215215 This is used by remote servers to look up the server address.
216216 This is also the last part of your UserID.
···222222 enable_registration = mkOption {
223223 type = types.bool;
224224 default = false;
225225- description = ''
225225+ description = lib.mdDoc ''
226226 Enable registration for new users.
227227 '';
228228 };
···253253 enable_metrics = mkOption {
254254 type = types.bool;
255255 default = false;
256256- description = ''
256256+ description = lib.mdDoc ''
257257 Enable collection and rendering of performance metrics
258258 '';
259259 };
···261261 report_stats = mkOption {
262262 type = types.bool;
263263 default = false;
264264- description = ''
264264+ description = lib.mdDoc ''
265265 Whether or not to report anonymized homeserver usage statistics.
266266 '';
267267 };
···269269 signing_key_path = mkOption {
270270 type = types.path;
271271 default = "${cfg.dataDir}/homeserver.signing.key";
272272- description = ''
272272+ description = lib.mdDoc ''
273273 Path to the signing key to sign messages with.
274274 '';
275275 };
···278278 type = types.path;
279279 default = "/run/matrix-synapse.pid";
280280 readOnly = true;
281281- description = ''
281281+ description = lib.mdDoc ''
282282 The file to store the PID in.
283283 '';
284284 };
···286286 log_config = mkOption {
287287 type = types.path;
288288 default = ./synapse-log_config.yaml;
289289- description = ''
289289+ description = lib.mdDoc ''
290290 The file that holds the logging configuration.
291291 '';
292292 };
···297297 then "${cfg.dataDir}/media_store"
298298 else "${cfg.dataDir}/media";
299299 defaultText = "${cfg.dataDir}/media_store for when system.stateVersion is at least 22.05, ${cfg.dataDir}/media when lower than 22.05";
300300- description = ''
300300+ description = lib.mdDoc ''
301301 Directory where uploaded images and attachments are stored.
302302 '';
303303 };
···306306 type = types.nullOr types.str;
307307 default = null;
308308 example = "https://example.com:8448/";
309309- description = ''
309309+ description = lib.mdDoc ''
310310 The public-facing base URL for the client API (not including _matrix/...)
311311 '';
312312 };
···315315 type = types.nullOr types.str;
316316 default = null;
317317 example = "/var/lib/acme/example.com/fullchain.pem";
318318- description = ''
318318+ description = lib.mdDoc ''
319319 PEM encoded X509 certificate for TLS.
320320 You can replace the self-signed certificate that synapse
321321 autogenerates on launch with your own SSL certificate + key pair
···328328 type = types.nullOr types.str;
329329 default = null;
330330 example = "/var/lib/acme/example.com/key.pem";
331331- description = ''
331331+ description = lib.mdDoc ''
332332 PEM encoded private key for TLS. Specify null if synapse is not
333333 speaking TLS directly.
334334 '';
···338338 type = types.bool;
339339 default = true;
340340 example = false;
341341- description = ''
341341+ description = lib.mdDoc ''
342342 Whether to enable presence tracking.
343343344344 Presence tracking allows users to see the state (e.g online/offline)
···352352 port = mkOption {
353353 type = types.port;
354354 example = 8448;
355355- description = ''
355355+ description = lib.mdDoc ''
356356 The port to listen for HTTP(S) requests on.
357357 '';
358358 };
···369369 "0.0.0.0"
370370 ]
371371 '';
372372- description = ''
372372+ description = lib.mdDoc ''
373373 IP addresses to bind the listener to.
374374 '';
375375 };
···383383 ];
384384 default = "http";
385385 example = "metrics";
386386- description = ''
386386+ description = lib.mdDoc ''
387387 The type of the listener, usually http.
388388 '';
389389 };
···392392 type = types.bool;
393393 default = true;
394394 example = false;
395395- description = ''
395395+ description = lib.mdDoc ''
396396 Whether to enable TLS on the listener socket.
397397 '';
398398 };
···401401 type = types.bool;
402402 default = false;
403403 example = true;
404404- description = ''
404404+ description = lib.mdDoc ''
405405 Use the X-Forwarded-For (XFF) header as the client IP and not the
406406 actual client IP.
407407 '';
···422422 "replication"
423423 "static"
424424 ]);
425425- description = ''
425425+ description = lib.mdDoc ''
426426 List of resources to host on this listener.
427427 '';
428428 example = [
···431431 };
432432 compress = mkOption {
433433 type = types.bool;
434434- description = ''
434434+ description = lib.mdDoc ''
435435 Should synapse compress HTTP responses to clients that support it?
436436 This should be disabled if running synapse behind a load balancer
437437 that can do automatic compression.
···439439 };
440440 };
441441 });
442442- description = ''
442442+ description = lib.mdDoc ''
443443 List of HTTP resources to serve on this listener.
444444 '';
445445 };
···459459 compress = false;
460460 } ];
461461 } ];
462462- description = ''
462462+ description = lib.mdDoc ''
463463 List of ports that Synapse should listen on, their purpose and their configuration.
464464 '';
465465 };
···477477 then "psycopg2"
478478 else "sqlite3"
479479 '';
480480- description = ''
480480+ description = lib.mdDoc ''
481481 The database engine name. Can be sqlite3 or psycopg2.
482482 '';
483483 };
···494494 psycopg2 = "matrix-synapse";
495495 }.''${${options.services.matrix-synapse.settings}.database.name};
496496 '';
497497- description = ''
497497+ description = lib.mdDoc ''
498498 Name of the database when using the psycopg2 backend,
499499 path to the database location when using sqlite3.
500500 '';
···506506 sqlite3 = null;
507507 psycopg2 = "matrix-synapse";
508508 }.${cfg.settings.database.name};
509509- description = ''
509509+ description = lib.mdDoc ''
510510 Username to connect with psycopg2, set to null
511511 when using sqlite3.
512512 '';
···546546 "fec0::/10"
547547 "ff00::/8"
548548 ];
549549- description = ''
549549+ description = lib.mdDoc ''
550550 List of IP address CIDR ranges that the URL preview spider is denied
551551 from accessing.
552552 '';
···555555 url_preview_ip_range_whitelist = mkOption {
556556 type = types.listOf types.str;
557557 default = [];
558558- description = ''
558558+ description = lib.mdDoc ''
559559 List of IP address CIDR ranges that the URL preview spider is allowed
560560 to access even if they are specified in url_preview_ip_range_blacklist.
561561 '';
···564564 url_preview_url_blacklist = mkOption {
565565 type = types.listOf types.str;
566566 default = [];
567567- description = ''
567567+ description = lib.mdDoc ''
568568 Optional list of URL matches that the URL preview spider is
569569 denied from accessing.
570570 '';
···574574 type = types.str;
575575 default = "50M";
576576 example = "100M";
577577- description = ''
577577+ description = lib.mdDoc ''
578578 The largest allowed upload size in bytes
579579 '';
580580 };
···583583 type = types.str;
584584 default = "32M";
585585 example = "64M";
586586- description = ''
586586+ description = lib.mdDoc ''
587587 Maximum number of pixels that will be thumbnailed
588588 '';
589589 };
···592592 type = types.bool;
593593 default = false;
594594 example = true;
595595- description = ''
595595+ description = lib.mdDoc ''
596596 Whether to generate new thumbnails on the fly to precisely match
597597 the resolution requested by the client. If true then whenever
598598 a new resolution is requested by the client the server will
···610610 "turns:turn.example.com:5349?transport=udp"
611611 "turns:turn.example.com:5349?transport=tcp"
612612 ];
613613- description = ''
613613+ description = lib.mdDoc ''
614614 The public URIs of the TURN server to give to clients
615615 '';
616616 };
···633633 server_name = mkOption {
634634 type = types.str;
635635 example = "matrix.org";
636636- description = ''
636636+ description = lib.mdDoc ''
637637 Hostname of the trusted server.
638638 '';
639639 };
···646646 "ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
647647 }
648648 '';
649649- description = ''
649649+ description = lib.mdDoc ''
650650 Attribute set from key id to base64 encoded public key.
651651652652 If specified synapse will check that the response is signed
···661661 "ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
662662 };
663663 } ];
664664- description = ''
664664+ description = lib.mdDoc ''
665665 The trusted servers to download signing keys from.
666666 '';
667667 };
···669669 app_service_config_files = mkOption {
670670 type = types.listOf types.path;
671671 default = [ ];
672672- description = ''
672672+ description = lib.mdDoc ''
673673 A list of application service config file to use
674674 '';
675675 };
···681681 extraConfigFiles = mkOption {
682682 type = types.listOf types.path;
683683 default = [];
684684- description = ''
684684+ description = lib.mdDoc ''
685685 Extra config files to include.
686686687687 The configuration files will be included based on the command line
+2-2
nixos/modules/services/misc/autorandr.nix
···114114 [ 0.0 0.0 1.0 ]
115115 ]
116116 '';
117117- description = ''
117117+ description = lib.mdDoc ''
118118 Refer to
119119- <citerefentry><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry>
119119+ {manpage}`xrandr(1)`
120120 for the documentation of the transform matrix.
121121 '';
122122 };
+2-2
nixos/modules/services/misc/docker-registry.nix
···103103 garbageCollectDates = mkOption {
104104 default = "daily";
105105 type = types.str;
106106- description = ''
106106+ description = lib.mdDoc ''
107107 Specification (in the format described by
108108- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>) of the time at
108108+ {manpage}`systemd.time(7)`) of the time at
109109 which the garbage collect will occur.
110110 '';
111111 };
+2-2
nixos/modules/services/misc/fstrim.nix
···1616 interval = mkOption {
1717 type = types.str;
1818 default = "weekly";
1919- description = ''
1919+ description = lib.mdDoc ''
2020 How often we run fstrim. For most desktop and server systems
2121 a sufficient trimming frequency is once a week.
22222323 The format is described in
2424- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
2424+ {manpage}`systemd.time(7)`.
2525 '';
2626 };
2727 };
+2-2
nixos/modules/services/misc/geoipupdate.nix
···1919 interval = lib.mkOption {
2020 type = lib.types.str;
2121 default = "weekly";
2222- description = ''
2222+ description = lib.mdDoc ''
2323 Update the GeoIP databases at this time / interval.
2424 The format is described in
2525- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
2525+ {manpage}`systemd.time(7)`.
2626 '';
2727 };
2828
+2-2
nixos/modules/services/misc/gitea.nix
···162162 type = types.str;
163163 default = "04:31";
164164 example = "hourly";
165165- description = ''
165165+ description = lib.mdDoc ''
166166 Run a gitea dump at this interval. Runs by default at 04:31 every day.
167167168168 The format is described in
169169- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
169169+ {manpage}`systemd.time(7)`.
170170 '';
171171 };
172172
+52-52
nixos/modules/services/misc/gitit.nix
···3131 enable = mkOption {
3232 type = types.bool;
3333 default = false;
3434- description = "Enable the gitit service.";
3434+ description = lib.mdDoc "Enable the gitit service.";
3535 };
36363737 haskellPackages = mkOption {
3838 default = pkgs.haskellPackages;
3939 defaultText = literalExpression "pkgs.haskellPackages";
4040 example = literalExpression "pkgs.haskell.packages.ghc784";
4141- description = "haskellPackages used to build gitit and plugins.";
4141+ description = lib.mdDoc "haskellPackages used to build gitit and plugins.";
4242 };
43434444 extraPackages = mkOption {
···5959 address = mkOption {
6060 type = types.str;
6161 default = "0.0.0.0";
6262- description = "IP address on which the web server will listen.";
6262+ description = lib.mdDoc "IP address on which the web server will listen.";
6363 };
64646565 port = mkOption {
6666 type = types.int;
6767 default = 5001;
6868- description = "Port on which the web server will run.";
6868+ description = lib.mdDoc "Port on which the web server will run.";
6969 };
70707171 wikiTitle = mkOption {
7272 type = types.str;
7373 default = "Gitit!";
7474- description = "The wiki title.";
7474+ description = lib.mdDoc "The wiki title.";
7575 };
76767777 repositoryType = mkOption {
7878 type = types.enum ["git" "darcs" "mercurial"];
7979 default = "git";
8080- description = "Specifies the type of repository used for wiki content.";
8080+ description = lib.mdDoc "Specifies the type of repository used for wiki content.";
8181 };
82828383 repositoryPath = mkOption {
8484 type = types.path;
8585 default = homeDir + "/wiki";
8686- description = ''
8686+ description = lib.mdDoc ''
8787 Specifies the path of the repository directory. If it does not
8888 exist, gitit will create it on startup.
8989 '';
···9292 requireAuthentication = mkOption {
9393 type = types.enum [ "none" "modify" "read" ];
9494 default = "modify";
9595- description = ''
9595+ description = lib.mdDoc ''
9696 If 'none', login is never required, and pages can be edited
9797 anonymously. If 'modify', login is required to modify the wiki
9898 (edit, add, delete pages, upload files). If 'read', login is
···103103 authenticationMethod = mkOption {
104104 type = types.enum [ "form" "http" "generic" "github" ];
105105 default = "form";
106106- description = ''
106106+ description = lib.mdDoc ''
107107 'form' means that users will be logged in and registered using forms
108108 in the gitit web interface. 'http' means that gitit will assume that
109109 HTTP authentication is in place and take the logged in username from
···121121 userFile = mkOption {
122122 type = types.path;
123123 default = homeDir + "/gitit-users";
124124- description = ''
124124+ description = lib.mdDoc ''
125125 Specifies the path of the file containing user login information. If
126126 it does not exist, gitit will create it (with an empty user list).
127127 This file is not used if 'http' is selected for
···132132 sessionTimeout = mkOption {
133133 type = types.int;
134134 default = 60;
135135- description = ''
135135+ description = lib.mdDoc ''
136136 Number of minutes of inactivity before a session expires.
137137 '';
138138 };
···140140 staticDir = mkOption {
141141 type = types.path;
142142 default = gititShared + "/data/static";
143143- description = ''
143143+ description = lib.mdDoc ''
144144 Specifies the path of the static directory (containing javascript,
145145 css, and images). If it does not exist, gitit will create it and
146146 populate it with required scripts, stylesheets, and images.
···150150 defaultPageType = mkOption {
151151 type = types.enum [ "markdown" "rst" "latex" "html" "markdown+lhs" "rst+lhs" "latex+lhs" ];
152152 default = "markdown";
153153- description = ''
153153+ description = lib.mdDoc ''
154154 Specifies the type of markup used to interpret pages in the wiki.
155155 Possible values are markdown, rst, latex, html, markdown+lhs,
156156 rst+lhs, and latex+lhs. (the +lhs variants treat the input as
···166166 math = mkOption {
167167 type = types.enum [ "mathml" "raw" "mathjax" "jsmath" "google" ];
168168 default = "mathml";
169169- description = ''
169169+ description = lib.mdDoc ''
170170 Specifies how LaTeX math is to be displayed. Possible values are
171171 mathml, raw, mathjax, jsmath, and google. If mathml is selected,
172172 gitit will convert LaTeX math to MathML and link in a script,
···186186 mathJaxScript = mkOption {
187187 type = types.str;
188188 default = "https://d3eoax9i5htok0.cloudfront.net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
189189- description = ''
189189+ description = lib.mdDoc ''
190190 Specifies the path to MathJax rendering script. You might want to
191191 use your own MathJax script to render formulas without Internet
192192 connection or if you want to use some special LaTeX packages. Note:
···202202 showLhsBirdTracks = mkOption {
203203 type = types.bool;
204204 default = false;
205205- description = ''
205205+ description = lib.mdDoc ''
206206 Specifies whether to show Haskell code blocks in "bird style", with
207207 "> " at the beginning of each line.
208208 '';
···224224 logFile = mkOption {
225225 type = types.path;
226226 default = homeDir + "/gitit.log";
227227- description = ''
227227+ description = lib.mdDoc ''
228228 Specifies the path of gitit's log file. If it does not exist, gitit
229229 will create it. The log is in Apache combined log format.
230230 '';
···233233 logLevel = mkOption {
234234 type = types.enum [ "DEBUG" "INFO" "NOTICE" "WARNING" "ERROR" "CRITICAL" "ALERT" "EMERGENCY" ];
235235 default = "ERROR";
236236- description = ''
236236+ description = lib.mdDoc ''
237237 Determines how much information is logged. Possible values (from
238238 most to least verbose) are DEBUG, INFO, NOTICE, WARNING, ERROR,
239239 CRITICAL, ALERT, EMERGENCY.
···243243 frontPage = mkOption {
244244 type = types.str;
245245 default = "Front Page";
246246- description = ''
246246+ description = lib.mdDoc ''
247247 Specifies which wiki page is to be used as the wiki's front page.
248248 Gitit creates a default front page on startup, if one does not exist
249249 already.
···253253 noDelete = mkOption {
254254 type = types.str;
255255 default = "Front Page, Help";
256256- description = ''
256256+ description = lib.mdDoc ''
257257 Specifies pages that cannot be deleted through the web interface.
258258 (They can still be deleted directly using git or darcs.) A
259259 comma-separated list of page names. Leave blank to allow every page
···264264 noEdit = mkOption {
265265 type = types.str;
266266 default = "Help";
267267- description = ''
267267+ description = lib.mdDoc ''
268268 Specifies pages that cannot be edited through the web interface.
269269 Leave blank to allow every page to be edited.
270270 '';
···273273 defaultSummary = mkOption {
274274 type = types.str;
275275 default = "";
276276- description = ''
276276+ description = lib.mdDoc ''
277277 Specifies text to be used in the change description if the author
278278 leaves the "description" field blank. If default-summary is blank
279279 (the default), the author will be required to fill in the description
···284284 tableOfContents = mkOption {
285285 type = types.bool;
286286 default = true;
287287- description = ''
287287+ description = lib.mdDoc ''
288288 Specifies whether to print a tables of contents (with links to
289289 sections) on each wiki page.
290290 '';
···293293 plugins = mkOption {
294294 type = with types; listOf str;
295295 default = [ (gititShared + "/plugins/Dot.hs") ];
296296- description = ''
296296+ description = lib.mdDoc ''
297297 Specifies a list of plugins to load. Plugins may be specified either
298298 by their path or by their module name. If the plugin name starts
299299 with Gitit.Plugin., gitit will assume that the plugin is an installed
···304304 useCache = mkOption {
305305 type = types.bool;
306306 default = false;
307307- description = ''
307307+ description = lib.mdDoc ''
308308 Specifies whether to cache rendered pages. Note that if use-feed is
309309 selected, feeds will be cached regardless of the value of use-cache.
310310 '';
···313313 cacheDir = mkOption {
314314 type = types.path;
315315 default = homeDir + "/cache";
316316- description = "Path where rendered pages will be cached.";
316316+ description = lib.mdDoc "Path where rendered pages will be cached.";
317317 };
318318319319 maxUploadSize = mkOption {
320320 type = types.str;
321321 default = "1000K";
322322- description = ''
322322+ description = lib.mdDoc ''
323323 Specifies an upper limit on the size (in bytes) of files uploaded
324324 through the wiki's web interface. To disable uploads, set this to
325325 0K. This will result in the uploads link disappearing and the
···330330 maxPageSize = mkOption {
331331 type = types.str;
332332 default = "1000K";
333333- description = "Specifies an upper limit on the size (in bytes) of pages.";
333333+ description = lib.mdDoc "Specifies an upper limit on the size (in bytes) of pages.";
334334 };
335335336336 debugMode = mkOption {
337337 type = types.bool;
338338 default = false;
339339- description = "Causes debug information to be logged while gitit is running.";
339339+ description = lib.mdDoc "Causes debug information to be logged while gitit is running.";
340340 };
341341342342 compressResponses = mkOption {
343343 type = types.bool;
344344 default = true;
345345- description = "Specifies whether HTTP responses should be compressed.";
345345+ description = lib.mdDoc "Specifies whether HTTP responses should be compressed.";
346346 };
347347348348 mimeTypesFile = mkOption {
···363363 useReCaptcha = mkOption {
364364 type = types.bool;
365365 default = false;
366366- description = ''
366366+ description = lib.mdDoc ''
367367 If true, causes gitit to use the reCAPTCHA service
368368 (http://recaptcha.net) to prevent bots from creating accounts.
369369 '';
···372372 reCaptchaPrivateKey = mkOption {
373373 type = with types; nullOr str;
374374 default = null;
375375- description = ''
375375+ description = lib.mdDoc ''
376376 Specifies the private key for the reCAPTCHA service. To get
377377 these, you need to create an account at http://recaptcha.net.
378378 '';
···381381 reCaptchaPublicKey = mkOption {
382382 type = with types; nullOr str;
383383 default = null;
384384- description = ''
384384+ description = lib.mdDoc ''
385385 Specifies the public key for the reCAPTCHA service. To get
386386 these, you need to create an account at http://recaptcha.net.
387387 '';
···390390 accessQuestion = mkOption {
391391 type = types.str;
392392 default = "What is the code given to you by Ms. X?";
393393- description = ''
393393+ description = lib.mdDoc ''
394394 Specifies a question that users must answer when they attempt to
395395 create an account
396396 '';
···399399 accessQuestionAnswers = mkOption {
400400 type = types.str;
401401 default = "RED DOG, red dog";
402402- description = ''
402402+ description = lib.mdDoc ''
403403 Specifies a question that users must answer when they attempt to
404404 create an account, along with a comma-separated list of acceptable
405405 answers. This can be used to institute a rudimentary password for
···413413 rpxDomain = mkOption {
414414 type = with types; nullOr str;
415415 default = null;
416416- description = ''
416416+ description = lib.mdDoc ''
417417 Specifies the domain and key of your RPX account. The domain is just
418418 the prefix of the complete RPX domain, so if your full domain is
419419 'https://foo.rpxnow.com/', use 'foo' as the value of rpx-domain.
···423423 rpxKey = mkOption {
424424 type = with types; nullOr str;
425425 default = null;
426426- description = "RPX account access key.";
426426+ description = lib.mdDoc "RPX account access key.";
427427 };
428428429429 mailCommand = mkOption {
430430 type = types.str;
431431 default = "sendmail %s";
432432- description = ''
432432+ description = lib.mdDoc ''
433433 Specifies the command to use to send notification emails. '%s' will
434434 be replaced by the destination email address. The body of the
435435 message will be read from stdin. If this field is left blank,
···451451 >
452452 > Regards
453453 '';
454454- description = ''
454454+ description = lib.mdDoc ''
455455 Gives the text of the message that will be sent to the user should
456456 she want to reset her password, or change other registration info.
457457 The lines must be indented, and must begin with '>'. The initial
···471471 useFeed = mkOption {
472472 type = types.bool;
473473 default = false;
474474- description = ''
474474+ description = lib.mdDoc ''
475475 Specifies whether an ATOM feed should be enabled (for the site and
476476 for individual pages).
477477 '';
···480480 baseUrl = mkOption {
481481 type = with types; nullOr str;
482482 default = null;
483483- description = ''
483483+ description = lib.mdDoc ''
484484 The base URL of the wiki, to be used in constructing feed IDs and RPX
485485 token_urls. Set this if useFeed is false or authentication-method
486486 is 'rpx'.
···502502 feedDays = mkOption {
503503 type = types.int;
504504 default = 14;
505505- description = "Number of days to be included in feeds.";
505505+ description = lib.mdDoc "Number of days to be included in feeds.";
506506 };
507507508508 feedRefreshTime = mkOption {
509509 type = types.int;
510510 default = 60;
511511- description = "Number of minutes to cache feeds before refreshing.";
511511+ description = lib.mdDoc "Number of minutes to cache feeds before refreshing.";
512512 };
513513514514 pdfExport = mkOption {
515515 type = types.bool;
516516 default = false;
517517- description = ''
517517+ description = lib.mdDoc ''
518518 If true, PDF will appear in export options. PDF will be created using
519519 pdflatex, which must be installed and in the path. Note that PDF
520520 exports create significant additional server load.
···524524 pandocUserData = mkOption {
525525 type = with types; nullOr path;
526526 default = null;
527527- description = ''
527527+ description = lib.mdDoc ''
528528 If a directory is specified, this will be searched for pandoc
529529 customizations. These can include a templates/ directory for custom
530530 templates for various export formats, an S5 directory for custom S5
···537537 xssSanitize = mkOption {
538538 type = types.bool;
539539 default = true;
540540- description = ''
540540+ description = lib.mdDoc ''
541541 If true, all HTML (including that produced by pandoc) is filtered
542542 through xss-sanitize. Set to no only if you trust all of your users.
543543 '';
···546546 oauthClientId = mkOption {
547547 type = with types; nullOr str;
548548 default = null;
549549- description = "OAuth client ID";
549549+ description = lib.mdDoc "OAuth client ID";
550550 };
551551552552 oauthClientSecret = mkOption {
553553 type = with types; nullOr str;
554554 default = null;
555555- description = "OAuth client secret";
555555+ description = lib.mdDoc "OAuth client secret";
556556 };
557557558558 oauthCallback = mkOption {
559559 type = with types; nullOr str;
560560 default = null;
561561- description = "OAuth callback URL";
561561+ description = lib.mdDoc "OAuth callback URL";
562562 };
563563564564 oauthAuthorizeEndpoint = mkOption {
565565 type = with types; nullOr str;
566566 default = null;
567567- description = "OAuth authorize endpoint";
567567+ description = lib.mdDoc "OAuth authorize endpoint";
568568 };
569569570570 oauthAccessTokenEndpoint = mkOption {
571571 type = with types; nullOr str;
572572 default = null;
573573- description = "OAuth access token endpoint";
573573+ description = lib.mdDoc "OAuth access token endpoint";
574574 };
575575576576 githubOrg = mkOption {
577577 type = with types; nullOr str;
578578 default = null;
579579- description = "Github organization";
579579+ description = lib.mdDoc "Github organization";
580580 };
581581 };
582582
+2-2
nixos/modules/services/misc/gitlab.nix
···319319 type = with types; either str (listOf str);
320320 default = [];
321321 example = "03:00";
322322- description = ''
322322+ description = lib.mdDoc ''
323323 The time(s) to run automatic backup of GitLab
324324 state. Specified in systemd's time format; see
325325- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
325325+ {manpage}`systemd.time(7)`.
326326 '';
327327 };
328328
+11-11
nixos/modules/services/misc/nix-daemon.nix
···155155 type = types.enum [ "other" "batch" "idle" ];
156156 default = "other";
157157 example = "batch";
158158- description = ''
158158+ description = lib.mdDoc ''
159159 Nix daemon process CPU scheduling policy. This policy propagates to
160160- build processes. <literal>other</literal> is the default scheduling
161161- policy for regular tasks. The <literal>batch</literal> policy is
162162- similar to <literal>other</literal>, but optimised for
163163- non-interactive tasks. <literal>idle</literal> is for extremely
160160+ build processes. `other` is the default scheduling
161161+ policy for regular tasks. The `batch` policy is
162162+ similar to `other`, but optimised for
163163+ non-interactive tasks. `idle` is for extremely
164164 low-priority tasks that should only be run when no other task
165165 requires CPU time.
166166167167- Please note that while using the <literal>idle</literal> policy may
167167+ Please note that while using the `idle` policy may
168168 greatly improve responsiveness of a system performing expensive
169169 builds, it may also slow down and potentially starve crucial
170170 configuration updates during load.
171171172172- <literal>idle</literal> may therefore be a sensible policy for
172172+ `idle` may therefore be a sensible policy for
173173 systems that experience only intermittent phases of high CPU load,
174174 such as desktop or portable computers used interactively. Other
175175- systems should use the <literal>other</literal> or
176176- <literal>batch</literal> policy instead.
175175+ systems should use the `other` or
176176+ `batch` policy instead.
177177178178 For more fine-grained resource control, please refer to
179179- <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry> and adjust
180180- <option>systemd.services.nix-daemon</option> directly.
179179+ {manpage}`systemd.resource-control(5)` and adjust
180180+ {option}`systemd.services.nix-daemon` directly.
181181 '';
182182 };
183183
+4-4
nixos/modules/services/misc/nix-gc.nix
···2424 type = types.str;
2525 default = "03:15";
2626 example = "weekly";
2727- description = ''
2727+ description = lib.mdDoc ''
2828 How often or when garbage collection is performed. For most desktop and server systems
2929 a sufficient garbage collection is once a week.
30303131 The format is described in
3232- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
3232+ {manpage}`systemd.time(7)`.
3333 '';
3434 };
3535···3737 default = "0";
3838 type = types.str;
3939 example = "45min";
4040- description = ''
4040+ description = lib.mdDoc ''
4141 Add a randomized delay before each garbage collection.
4242 The delay will be chosen between zero and this value.
4343 This value must be a time span in the format specified by
4444- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
4444+ {manpage}`systemd.time(7)`
4545 '';
4646 };
4747
+2-2
nixos/modules/services/misc/nix-optimise.nix
···2323 dates = mkOption {
2424 default = ["03:45"];
2525 type = types.listOf types.str;
2626- description = ''
2626+ description = lib.mdDoc ''
2727 Specification (in the format described by
2828- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>) of the time at
2828+ {manpage}`systemd.time(7)`) of the time at
2929 which the optimiser will run.
3030 '';
3131 };
+4-4
nixos/modules/services/misc/snapper.nix
···2020 snapshotInterval = mkOption {
2121 type = types.str;
2222 default = "hourly";
2323- description = ''
2323+ description = lib.mdDoc ''
2424 Snapshot interval.
25252626 The format is described in
2727- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
2727+ {manpage}`systemd.time(7)`.
2828 '';
2929 };
30303131 cleanupInterval = mkOption {
3232 type = types.str;
3333 default = "1d";
3434- description = ''
3434+ description = lib.mdDoc ''
3535 Cleanup interval.
36363737 The format is described in
3838- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
3838+ {manpage}`systemd.time(7)`.
3939 '';
4040 };
4141
+89-89
nixos/modules/services/misc/sourcehut/default.nix
···4747 })));
4848 commonServiceSettings = srv: {
4949 origin = mkOption {
5050- description = "URL ${srv}.sr.ht is being served at (protocol://domain)";
5050+ description = lib.mdDoc "URL ${srv}.sr.ht is being served at (protocol://domain)";
5151 type = types.str;
5252 default = "https://${srv}.${domain}";
5353 defaultText = "https://${srv}.example.com";
5454 };
5555 debug-host = mkOption {
5656- description = "Address to bind the debug server to.";
5656+ description = lib.mdDoc "Address to bind the debug server to.";
5757 type = with types; nullOr str;
5858 default = null;
5959 };
6060 debug-port = mkOption {
6161- description = "Port to bind the debug server to.";
6161+ description = lib.mdDoc "Port to bind the debug server to.";
6262 type = with types; nullOr str;
6363 default = null;
6464 };
6565 connection-string = mkOption {
6666- description = "SQLAlchemy connection string for the database.";
6666+ description = lib.mdDoc "SQLAlchemy connection string for the database.";
6767 type = types.str;
6868 default = "postgresql:///localhost?user=${srv}srht&host=/run/postgresql";
6969 };
7070 migrate-on-upgrade = mkEnableOption "automatic migrations on package upgrade" // { default = true; };
7171 oauth-client-id = mkOption {
7272- description = "${srv}.sr.ht's OAuth client id for meta.sr.ht.";
7272+ description = lib.mdDoc "${srv}.sr.ht's OAuth client id for meta.sr.ht.";
7373 type = types.str;
7474 };
7575 oauth-client-secret = mkOption {
7676- description = "${srv}.sr.ht's OAuth client secret for meta.sr.ht.";
7676+ description = lib.mdDoc "${srv}.sr.ht's OAuth client secret for meta.sr.ht.";
7777 type = types.path;
7878 apply = s: "<" + toString s;
7979 };
···117117 type = with types; listOf (enum
118118 [ "builds" "dispatch" "git" "hg" "hub" "lists" "man" "meta" "pages" "paste" "todo" ]);
119119 defaultText = "locally enabled services";
120120- description = ''
120120+ description = lib.mdDoc ''
121121 Services that may be displayed as links in the title bar of the Web interface.
122122 '';
123123 };
···125125 listenAddress = mkOption {
126126 type = types.str;
127127 default = "localhost";
128128- description = "Address to bind to.";
128128+ description = lib.mdDoc "Address to bind to.";
129129 };
130130131131 python = mkOption {
···147147 virtualHost = mkOption {
148148 type = types.attrs;
149149 default = {};
150150- description = "Virtual-host configuration merged with all Sourcehut's virtual-hosts.";
150150+ description = lib.mdDoc "Virtual-host configuration merged with all Sourcehut's virtual-hosts.";
151151 };
152152 };
153153···168168 freeformType = settingsFormat.type;
169169 options."sr.ht" = {
170170 global-domain = mkOption {
171171- description = "Global domain name.";
171171+ description = lib.mdDoc "Global domain name.";
172172 type = types.str;
173173 example = "example.com";
174174 };
175175 environment = mkOption {
176176- description = "Values other than \"production\" adds a banner to each page.";
176176+ description = lib.mdDoc "Values other than \"production\" adds a banner to each page.";
177177 type = types.enum [ "development" "production" ];
178178 default = "development";
179179 };
180180 network-key = mkOption {
181181- description = ''
181181+ description = lib.mdDoc ''
182182 An absolute file path (which should be outside the Nix-store)
183183- to a secret key to encrypt internal messages with. Use <literal>srht-keygen network</literal> to
183183+ to a secret key to encrypt internal messages with. Use `srht-keygen network` to
184184 generate this key. It must be consistent between all services and nodes.
185185 '';
186186 type = types.path;
187187 apply = s: "<" + toString s;
188188 };
189189 owner-email = mkOption {
190190- description = "Owner's email.";
190190+ description = lib.mdDoc "Owner's email.";
191191 type = types.str;
192192 default = "contact@example.com";
193193 };
194194 owner-name = mkOption {
195195- description = "Owner's name.";
195195+ description = lib.mdDoc "Owner's name.";
196196 type = types.str;
197197 default = "John Doe";
198198 };
199199 site-blurb = mkOption {
200200- description = "Blurb for your site.";
200200+ description = lib.mdDoc "Blurb for your site.";
201201 type = types.str;
202202 default = "the hacker's forge";
203203 };
204204 site-info = mkOption {
205205- description = "The top-level info page for your site.";
205205+ description = lib.mdDoc "The top-level info page for your site.";
206206 type = types.str;
207207 default = "https://sourcehut.org";
208208 };
209209 service-key = mkOption {
210210- description = ''
210210+ description = lib.mdDoc ''
211211 An absolute file path (which should be outside the Nix-store)
212212- to a key used for encrypting session cookies. Use <literal>srht-keygen service</literal> to
212212+ to a key used for encrypting session cookies. Use `srht-keygen service` 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
···219219 apply = s: "<" + toString s;
220220 };
221221 site-name = mkOption {
222222- description = "The name of your network of sr.ht-based sites.";
222222+ description = lib.mdDoc "The name of your network of sr.ht-based sites.";
223223 type = types.str;
224224 default = "sourcehut";
225225 };
226226 source-url = mkOption {
227227- description = "The source code for your fork of sr.ht.";
227227+ description = lib.mdDoc "The source code for your fork of sr.ht.";
228228 type = types.str;
229229 default = "https://git.sr.ht/~sircmpwn/srht";
230230 };
···232232 options.mail = {
233233 smtp-host = mkOptionNullOrStr "Outgoing SMTP host.";
234234 smtp-port = mkOption {
235235- description = "Outgoing SMTP port.";
235235+ description = lib.mdDoc "Outgoing SMTP port.";
236236 type = with types; nullOr port;
237237 default = null;
238238 };
···240240 smtp-password = mkOptionNullOrStr "Outgoing SMTP password.";
241241 smtp-from = mkOption {
242242 type = types.str;
243243- description = "Outgoing SMTP FROM.";
243243+ description = lib.mdDoc "Outgoing SMTP FROM.";
244244 };
245245 error-to = mkOptionNullOrStr "Address receiving application exceptions";
246246 error-from = mkOptionNullOrStr "Address sending application exceptions";
247247 pgp-privkey = mkOption {
248248 type = types.str;
249249- description = ''
249249+ description = lib.mdDoc ''
250250 An absolute file path (which should be outside the Nix-store)
251251 to an OpenPGP private key.
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 <literal>gpg --edit-key [key-id]</literal>,
256256- then use the <literal>passwd</literal> command and do not enter a new password.
255255+ You can do this with `gpg --edit-key [key-id]`,
256256+ then use the `passwd` command and do not enter a new password.
257257 '';
258258 };
259259 pgp-pubkey = mkOption {
260260 type = with types; either path str;
261261- description = "OpenPGP public key.";
261261+ description = lib.mdDoc "OpenPGP public key.";
262262 };
263263 pgp-key-id = mkOption {
264264 type = types.str;
265265- description = "OpenPGP key identifier.";
265265+ description = lib.mdDoc "OpenPGP key identifier.";
266266 };
267267 };
268268 options.objects = {
269269 s3-upstream = mkOption {
270270- description = "Configure the S3-compatible object storage service.";
270270+ description = lib.mdDoc "Configure the S3-compatible object storage service.";
271271 type = with types; nullOr str;
272272 default = null;
273273 };
274274 s3-access-key = mkOption {
275275- description = "Access key to the S3-compatible object storage service";
275275+ description = lib.mdDoc "Access key to the S3-compatible object storage service";
276276 type = with types; nullOr str;
277277 default = null;
278278 };
279279 s3-secret-key = mkOption {
280280- description = ''
280280+ description = lib.mdDoc ''
281281 An absolute file path (which should be outside the Nix-store)
282282 to the secret key of the S3-compatible object storage service.
283283 '';
···288288 };
289289 options.webhooks = {
290290 private-key = mkOption {
291291- description = ''
291291+ description = lib.mdDoc ''
292292 An absolute file path (which should be outside the Nix-store)
293293 to a base64-encoded Ed25519 key for signing webhook payloads.
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 <literal>srht-keygen webhook</literal> command to generate a key.
297297+ Use the `srht-keygen webhook` command to generate a key.
298298 '';
299299 type = types.path;
300300 apply = s: "<" + toString s;
···311311 enabled = mkEnableOption "GitLab integration";
312312 canonical-upstream = mkOption {
313313 type = types.str;
314314- description = "Canonical upstream.";
314314+ description = lib.mdDoc "Canonical upstream.";
315315 default = "gitlab.com";
316316 };
317317 repo-cache = mkOption {
318318 type = types.str;
319319- description = "Repository cache directory.";
319319+ description = lib.mdDoc "Repository cache directory.";
320320 default = "./repo-cache";
321321 };
322322 "gitlab.com" = mkOption {
323323 type = with types; nullOr str;
324324- description = "GitLab id and secret.";
324324+ description = lib.mdDoc "GitLab id and secret.";
325325 default = null;
326326 example = "GitLab:application id:secret";
327327 };
···330330 options."builds.sr.ht" = commonServiceSettings "builds" // {
331331 allow-free = mkEnableOption "nonpaying users to submit builds";
332332 redis = mkOption {
333333- description = "The Redis connection used for the Celery worker.";
333333+ description = lib.mdDoc "The Redis connection used for the Celery worker.";
334334 type = types.str;
335335 default = "redis+socket:///run/redis-sourcehut-buildsrht/redis.sock?virtual_host=2";
336336 };
337337 shell = mkOption {
338338- description = ''
338338+ description = lib.mdDoc ''
339339 Scripts used to launch on SSH connection.
340340- <literal>/usr/bin/master-shell</literal> on master,
341341- <literal>/usr/bin/runner-shell</literal> on runner.
340340+ `/usr/bin/master-shell` on master,
341341+ `/usr/bin/runner-shell` on runner.
342342 If master and worker are on the same system
343343- set to <literal>/usr/bin/runner-shell</literal>.
343343+ set to `/usr/bin/runner-shell`.
344344 '';
345345 type = types.enum ["/usr/bin/master-shell" "/usr/bin/runner-shell"];
346346 default = "/usr/bin/master-shell";
···348348 };
349349 options."builds.sr.ht::worker" = {
350350 bind-address = mkOption {
351351- description = ''
351351+ description = lib.mdDoc ''
352352 HTTP bind address for serving local build information/monitoring.
353353 '';
354354 type = types.str;
355355 default = "localhost:8080";
356356 };
357357 buildlogs = mkOption {
358358- description = "Path to write build logs.";
358358+ description = lib.mdDoc "Path to write build logs.";
359359 type = types.str;
360360 default = "/var/log/sourcehut/buildsrht-worker";
361361 };
362362 name = mkOption {
363363- description = ''
363363+ description = lib.mdDoc ''
364364 Listening address and listening port
365365 of the build runner (with HTTP port if not 80).
366366 '';
···368368 default = "localhost:5020";
369369 };
370370 timeout = mkOption {
371371- description = ''
371371+ description = lib.mdDoc ''
372372 Max build duration.
373373- See <link xlink:href="https://golang.org/pkg/time/#ParseDuration"/>.
373373+ See <https://golang.org/pkg/time/#ParseDuration>.
374374 '';
375375 type = types.str;
376376 default = "3m";
···379379380380 options."git.sr.ht" = commonServiceSettings "git" // {
381381 outgoing-domain = mkOption {
382382- description = "Outgoing domain.";
382382+ description = lib.mdDoc "Outgoing domain.";
383383 type = types.str;
384384 default = "https://git.localhost.localdomain";
385385 };
386386 post-update-script = mkOption {
387387- description = ''
387387+ description = lib.mdDoc ''
388388 A post-update script which is installed in every git repo.
389389 This setting is propagated to newer and existing repositories.
390390 '';
···393393 defaultText = "\${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
394394 };
395395 repos = mkOption {
396396- description = ''
396396+ description = lib.mdDoc ''
397397 Path to git repositories on disk.
398398 If changing the default, you must ensure that
399399 the gitsrht's user as read and write access to it.
···402402 default = "/var/lib/sourcehut/gitsrht/repos";
403403 };
404404 webhooks = mkOption {
405405- description = "The Redis connection used for the webhooks worker.";
405405+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
406406 type = types.str;
407407 default = "redis+socket:///run/redis-sourcehut-gitsrht/redis.sock?virtual_host=1";
408408 };
409409 };
410410 options."git.sr.ht::api" = {
411411 internal-ipnet = mkOption {
412412- description = ''
412412+ description = lib.mdDoc ''
413413 Set of IP subnets which are permitted to utilize internal API
414414 authentication. This should be limited to the subnets
415415 from which your *.sr.ht services are running.
416416- See <xref linkend="opt-services.sourcehut.listenAddress"/>.
416416+ See [](#opt-services.sourcehut.listenAddress).
417417 '';
418418 type = with types; listOf str;
419419 default = [ "127.0.0.0/8" "::1/128" ];
···422422423423 options."hg.sr.ht" = commonServiceSettings "hg" // {
424424 changegroup-script = mkOption {
425425- description = ''
425425+ description = lib.mdDoc ''
426426 A changegroup script which is installed in every mercurial repo.
427427 This setting is propagated to newer and existing repositories.
428428 '';
···431431 defaultText = "\${cfg.python}/bin/hgsrht-hook-changegroup";
432432 };
433433 repos = mkOption {
434434- description = ''
434434+ description = lib.mdDoc ''
435435 Path to mercurial repositories on disk.
436436 If changing the default, you must ensure that
437437 the hgsrht's user as read and write access to it.
···444444 (defaults to where the hgsrht code is)
445445 '';
446446 clone_bundle_threshold = mkOption {
447447- description = ".hg/store size (in MB) past which the nightly job generates clone bundles.";
447447+ description = lib.mdDoc ".hg/store size (in MB) past which the nightly job generates clone bundles.";
448448 type = types.ints.unsigned;
449449 default = 50;
450450 };
451451 hg_ssh = mkOption {
452452- description = "Path to hg-ssh (if not in $PATH).";
452452+ description = lib.mdDoc "Path to hg-ssh (if not in $PATH).";
453453 type = types.str;
454454 default = "${pkgs.mercurial}/bin/hg-ssh";
455455 defaultText = "\${pkgs.mercurial}/bin/hg-ssh";
456456 };
457457 webhooks = mkOption {
458458- description = "The Redis connection used for the webhooks worker.";
458458+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
459459 type = types.str;
460460 default = "redis+socket:///run/redis-sourcehut-hgsrht/redis.sock?virtual_host=1";
461461 };
···467467 options."lists.sr.ht" = commonServiceSettings "lists" // {
468468 allow-new-lists = mkEnableOption "Allow creation of new lists.";
469469 notify-from = mkOption {
470470- description = "Outgoing email for notifications generated by users.";
470470+ description = lib.mdDoc "Outgoing email for notifications generated by users.";
471471 type = types.str;
472472 default = "lists-notify@localhost.localdomain";
473473 };
474474 posting-domain = mkOption {
475475- description = "Posting domain.";
475475+ description = lib.mdDoc "Posting domain.";
476476 type = types.str;
477477 default = "lists.localhost.localdomain";
478478 };
479479 redis = mkOption {
480480- description = "The Redis connection used for the Celery worker.";
480480+ description = lib.mdDoc "The Redis connection used for the Celery worker.";
481481 type = types.str;
482482 default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=2";
483483 };
484484 webhooks = mkOption {
485485- description = "The Redis connection used for the webhooks worker.";
485485+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
486486 type = types.str;
487487 default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=1";
488488 };
489489 };
490490 options."lists.sr.ht::worker" = {
491491 reject-mimetypes = mkOption {
492492- description = ''
492492+ description = lib.mdDoc ''
493493 Comma-delimited list of Content-Types to reject. Messages with Content-Types
494494 included in this list are rejected. Multipart messages are always supported,
495495 and each part is checked against this list.
···500500 default = ["text/html"];
501501 };
502502 reject-url = mkOption {
503503- description = "Reject URL.";
503503+ description = lib.mdDoc "Reject URL.";
504504 type = types.str;
505505 default = "https://man.sr.ht/lists.sr.ht/etiquette.md";
506506 };
507507 sock = mkOption {
508508- description = ''
508508+ description = lib.mdDoc ''
509509 Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
510510 Alternatively, specify IP:PORT and an SMTP server will be run instead.
511511 '';
···513513 default = "/tmp/lists.sr.ht-lmtp.sock";
514514 };
515515 sock-group = mkOption {
516516- description = ''
516516+ description = lib.mdDoc ''
517517 The lmtp daemon will make the unix socket group-read/write
518518 for users in this group.
519519 '';
···529529 removeAttrs (commonServiceSettings "meta")
530530 ["oauth-client-id" "oauth-client-secret"] // {
531531 api-origin = mkOption {
532532- description = "Origin URL for API, 100 more than web.";
532532+ description = lib.mdDoc "Origin URL for API, 100 more than web.";
533533 type = types.str;
534534 default = "http://${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
535535 defaultText = ''http://<xref linkend="opt-services.sourcehut.listenAddress"/>:''${toString (<xref linkend="opt-services.sourcehut.meta.port"/> + 100)}'';
536536 };
537537 webhooks = mkOption {
538538- description = "The Redis connection used for the webhooks worker.";
538538+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
539539 type = types.str;
540540 default = "redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1";
541541 };
···543543 };
544544 options."meta.sr.ht::api" = {
545545 internal-ipnet = mkOption {
546546- description = ''
546546+ description = lib.mdDoc ''
547547 Set of IP subnets which are permitted to utilize internal API
548548 authentication. This should be limited to the subnets
549549 from which your *.sr.ht services are running.
550550- See <xref linkend="opt-services.sourcehut.listenAddress"/>.
550550+ See [](#opt-services.sourcehut.listenAddress).
551551 '';
552552 type = with types; listOf str;
553553 default = [ "127.0.0.0/8" "::1/128" ];
554554 };
555555 };
556556 options."meta.sr.ht::aliases" = mkOption {
557557- description = "Aliases for the client IDs of commonly used OAuth clients.";
557557+ description = lib.mdDoc "Aliases for the client IDs of commonly used OAuth clients.";
558558 type = with types; attrsOf int;
559559 default = {};
560560 example = { "git.sr.ht" = 12345; };
···572572 options."meta.sr.ht::settings" = {
573573 registration = mkEnableOption "public registration";
574574 onboarding-redirect = mkOption {
575575- description = "Where to redirect new users upon registration.";
575575+ description = lib.mdDoc "Where to redirect new users upon registration.";
576576 type = types.str;
577577 default = "https://meta.localhost.localdomain";
578578 };
579579 user-invites = mkOption {
580580- description = ''
580580+ description = lib.mdDoc ''
581581 How many invites each user is issued upon registration
582582 (only applicable if open registration is disabled).
583583 '';
···588588589589 options."pages.sr.ht" = commonServiceSettings "pages" // {
590590 gemini-certs = mkOption {
591591- description = ''
591591+ description = lib.mdDoc ''
592592 An absolute file path (which should be outside the Nix-store)
593593 to Gemini certificates.
594594 '';
···596596 default = null;
597597 };
598598 max-site-size = mkOption {
599599- description = "Maximum size of any given site (post-gunzip), in MiB.";
599599+ description = lib.mdDoc "Maximum size of any given site (post-gunzip), in MiB.";
600600 type = types.int;
601601 default = 1024;
602602 };
···611611 };
612612 options."pages.sr.ht::api" = {
613613 internal-ipnet = mkOption {
614614- description = ''
614614+ description = lib.mdDoc ''
615615 Set of IP subnets which are permitted to utilize internal API
616616 authentication. This should be limited to the subnets
617617 from which your *.sr.ht services are running.
618618- See <xref linkend="opt-services.sourcehut.listenAddress"/>.
618618+ See [](#opt-services.sourcehut.listenAddress).
619619 '';
620620 type = with types; listOf str;
621621 default = [ "127.0.0.0/8" "::1/128" ];
···627627628628 options."todo.sr.ht" = commonServiceSettings "todo" // {
629629 notify-from = mkOption {
630630- description = "Outgoing email for notifications generated by users.";
630630+ description = lib.mdDoc "Outgoing email for notifications generated by users.";
631631 type = types.str;
632632 default = "todo-notify@localhost.localdomain";
633633 };
634634 webhooks = mkOption {
635635- description = "The Redis connection used for the webhooks worker.";
635635+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
636636 type = types.str;
637637 default = "redis+socket:///run/redis-sourcehut-todosrht/redis.sock?virtual_host=1";
638638 };
639639 };
640640 options."todo.sr.ht::mail" = {
641641 posting-domain = mkOption {
642642- description = "Posting domain.";
642642+ description = lib.mdDoc "Posting domain.";
643643 type = types.str;
644644 default = "todo.localhost.localdomain";
645645 };
646646 sock = mkOption {
647647- description = ''
647647+ description = lib.mdDoc ''
648648 Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
649649 Alternatively, specify IP:PORT and an SMTP server will be run instead.
650650 '';
···652652 default = "/tmp/todo.sr.ht-lmtp.sock";
653653 };
654654 sock-group = mkOption {
655655- description = ''
655655+ description = lib.mdDoc ''
656656 The lmtp daemon will make the unix socket group-read/write
657657 for users in this group.
658658 '';
···662662 };
663663 };
664664 default = { };
665665- description = ''
665665+ description = lib.mdDoc ''
666666 The configuration for the sourcehut network.
667667 '';
668668 };
···698698 nixos.unstable.x86_64 = image_from_nixpkgs;
699699 }
700700 )'';
701701- description = ''
701701+ description = lib.mdDoc ''
702702 Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2.
703703 '';
704704 };
···710710 default = pkgs.git;
711711 defaultText = literalExpression "pkgs.git";
712712 example = literalExpression "pkgs.gitFull";
713713- description = ''
713713+ description = lib.mdDoc ''
714714 Git package for git.sr.ht. This can help silence collisions.
715715 '';
716716 };
717717 fcgiwrap.preforkProcess = mkOption {
718718- description = "Number of fcgiwrap processes to prefork.";
718718+ description = lib.mdDoc "Number of fcgiwrap processes to prefork.";
719719 type = types.int;
720720 default = 4;
721721 };
···726726 type = types.package;
727727 default = pkgs.mercurial;
728728 defaultText = literalExpression "pkgs.mercurial";
729729- description = ''
729729+ description = lib.mdDoc ''
730730 Mercurial package for hg.sr.ht. This can help silence collisions.
731731 '';
732732 };
733733 cloneBundles = mkOption {
734734 type = types.bool;
735735 default = false;
736736- description = ''
736736+ description = lib.mdDoc ''
737737 Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories).
738738 '';
739739 };
···744744 extraArgs = mkOption {
745745 type = with types; listOf str;
746746 default = [ "--loglevel DEBUG" "--pool eventlet" "--without-heartbeat" ];
747747- description = "Extra arguments passed to the Celery responsible for processing mails.";
747747+ description = lib.mdDoc "Extra arguments passed to the Celery responsible for processing mails.";
748748 };
749749 celeryConfig = mkOption {
750750 type = types.lines;
751751 default = "";
752752- description = "Content of the <literal>celeryconfig.py</literal> used by the Celery of <literal>listssrht-process</literal>.";
752752+ description = lib.mdDoc "Content of the `celeryconfig.py` used by the Celery of `listssrht-process`.";
753753 };
754754 };
755755 };
+9-9
nixos/modules/services/misc/sourcehut/service.nix
···122122 user = mkOption {
123123 type = types.str;
124124 default = srvsrht;
125125- description = ''
125125+ description = lib.mdDoc ''
126126 User for ${srv}.sr.ht.
127127 '';
128128 };
···130130 group = mkOption {
131131 type = types.str;
132132 default = srvsrht;
133133- description = ''
133133+ description = lib.mdDoc ''
134134 Group for ${srv}.sr.ht.
135135 Membership grants access to the Git/Mercurial repositories by default,
136136 but not to the config.ini file (where secrets are).
···140140 port = mkOption {
141141 type = types.port;
142142 default = port;
143143- description = ''
143143+ description = lib.mdDoc ''
144144 Port on which the "${srv}" backend should listen.
145145 '';
146146 };
···150150 type = types.str;
151151 default = "unix:///run/redis-sourcehut-${srvsrht}/redis.sock?db=0";
152152 example = "redis://shared.wireguard:6379/0";
153153- description = ''
153153+ description = lib.mdDoc ''
154154 The redis host URL. This is used for caching and temporary storage, and must
155155 be shared between nodes (e.g. git1.sr.ht and git2.sr.ht), but need not be
156156 shared between services. It may be shared between services, however, with no
···163163 database = mkOption {
164164 type = types.str;
165165 default = "${srv}.sr.ht";
166166- description = ''
166166+ description = lib.mdDoc ''
167167 PostgreSQL database name for the ${srv}.sr.ht service,
168168- used if <xref linkend="opt-services.sourcehut.postgresql.enable"/> is <literal>true</literal>.
168168+ used if [](#opt-services.sourcehut.postgresql.enable) is `true`.
169169 '';
170170 };
171171 };
···174174 extraArgs = mkOption {
175175 type = with types; listOf str;
176176 default = ["--timeout 120" "--workers 1" "--log-level=info"];
177177- description = "Extra arguments passed to Gunicorn.";
177177+ description = lib.mdDoc "Extra arguments passed to Gunicorn.";
178178 };
179179 };
180180 } // optionalAttrs webhooks {
···182182 extraArgs = mkOption {
183183 type = with types; listOf str;
184184 default = ["--loglevel DEBUG" "--pool eventlet" "--without-heartbeat"];
185185- description = "Extra arguments passed to the Celery responsible for webhooks.";
185185+ description = lib.mdDoc "Extra arguments passed to the Celery responsible for webhooks.";
186186 };
187187 celeryConfig = mkOption {
188188 type = types.lines;
189189 default = "";
190190- description = "Content of the <literal>celeryconfig.py</literal> used by the Celery responsible for webhooks.";
190190+ description = lib.mdDoc "Content of the `celeryconfig.py` used by the Celery responsible for webhooks.";
191191 };
192192 };
193193 };
···227227 queueSize = mkOption {
228228 type = types.int;
229229 default = 10;
230230- description = ''
231231- Size of the connection backlog, see <citerefentry><refentrytitle>listen</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
230230+ description = lib.mdDoc ''
231231+ Size of the connection backlog, see {manpage}`listen(2)`.
232232 '';
233233 };
234234···321321 config = mkOption {
322322 type = types.attrs;
323323 example.client.cert = "/tmp/debugging.cert";
324324- description = ''
324324+ description = lib.mdDoc ''
325325 Configuration options to pass to Taskserver.
326326327327 The options here are the same as described in
328328- <citerefentry><refentrytitle>taskdrc</refentrytitle><manvolnum>5</manvolnum></citerefentry>, but with one difference:
328328+ {manpage}`taskdrc(5)`, but with one difference:
329329330330- The <literal>server</literal> option is
331331- <literal>server.listen</literal> here, because the
332332- <literal>server</literal> option would collide with other options
333333- like <literal>server.cert</literal> and we would run in a type error
330330+ The `server` option is
331331+ `server.listen` here, because the
332332+ `server` option would collide with other options
333333+ like `server.cert` and we would run in a type error
334334 (attribute set versus string).
335335336336 Nix types like integers or booleans are automatically converted to
+5-5
nixos/modules/services/monitoring/nagios.nix
···125125 debug_file = "/var/log/nagios/debug.log";
126126 };
127127 default = {};
128128- description = "Configuration to add to /etc/nagios.cfg";
128128+ description = lib.mdDoc "Configuration to add to /etc/nagios.cfg";
129129 };
130130131131 validateConfig = mkOption {
132132 type = types.bool;
133133 default = pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform;
134134 defaultText = literalExpression "pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform";
135135- description = "if true, the syntax of the nagios configuration file is checked at build time";
135135+ description = lib.mdDoc "if true, the syntax of the nagios configuration file is checked at build time";
136136 };
137137138138 cgiConfigFile = mkOption {
···164164 sslServerKey = "/var/lib/acme/example.org/key.pem";
165165 }
166166 '';
167167- description = ''
168168- Apache configuration can be done by adapting <option>services.httpd.virtualHosts</option>.
169169- See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
167167+ description = lib.mdDoc ''
168168+ Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
169169+ See [](#opt-services.httpd.virtualHosts) for further information.
170170 '';
171171 };
172172 };
···3535 extraOpts = {
3636 configFile = mkOption {
3737 type = types.path;
3838- description = ''
3838+ description = lib.mdDoc ''
3939 Path to configuration file.
4040 '';
4141 };
4242 enableConfigCheck = mkOption {
4343 type = types.bool;
4444 default = true;
4545- description = ''
4545+ description = lib.mdDoc ''
4646 Whether to run a correctness check for the configuration file. This depends
4747 on the configuration file residing in the nix-store. Paths passed as string will
4848 be copied to the store.
···1212 configFile = mkOption {
1313 type = types.nullOr types.path;
1414 default = null;
1515- description = ''
1515+ description = lib.mdDoc ''
1616 Path to a fastly-exporter configuration file.
1717- Example one can be generated with <literal>fastly-exporter --config-file-example</literal>.
1717+ Example one can be generated with `fastly-exporter --config-file-example`.
1818 '';
1919 example = "./fastly-exporter-config.txt";
2020 };
···2222 tokenPath = mkOption {
2323 type = types.nullOr types.path;
2424 apply = final: if final == null then null else toString final;
2525- description = ''
2525+ description = lib.mdDoc ''
2626 A run-time path to the token file, which is supposed to be provisioned
2727 outside of Nix store.
2828 '';
···1212 type = types.str;
1313 default = "5m";
1414 example = "10m";
1515- description = "How long a sample is valid for";
1515+ description = lib.mdDoc "How long a sample is valid for";
1616 };
1717 udpBindAddress = mkOption {
1818 type = types.str;
1919 default = ":9122";
2020 example = "192.0.2.1:9122";
2121- description = "Address on which to listen for udp packets";
2121+ description = lib.mdDoc "Address on which to listen for udp packets";
2222 };
2323 };
2424 serviceOpts = {
···1111 url = mkOption {
1212 type = types.str;
1313 default = "http://localhost:8080/colibri/stats";
1414- description = ''
1414+ description = lib.mdDoc ''
1515 Jitsi Videobridge metrics URL to monitor.
1616 This is usually /colibri/stats on port 8080 of the jitsi videobridge host.
1717 '';
···2020 type = types.str;
2121 default = "30s";
2222 example = "1min";
2323- description = ''
2323+ description = lib.mdDoc ''
2424 How often to scrape new data
2525 '';
2626 };
···1111 minioAddress = mkOption {
1212 type = types.str;
1313 example = "https://10.0.0.1:9000";
1414- description = ''
1414+ description = lib.mdDoc ''
1515 The URL of the minio server.
1616 Use HTTPS if Minio accepts secure connections only.
1717 By default this connects to the local minio server if enabled.
···2121 minioAccessKey = mkOption {
2222 type = types.str;
2323 example = "yourMinioAccessKey";
2424- description = ''
2424+ description = lib.mdDoc ''
2525 The value of the Minio access key.
2626 It is required in order to connect to the server.
2727 By default this uses the one from the local minio server if enabled
2828- and <literal>config.services.minio.accessKey</literal>.
2828+ and `config.services.minio.accessKey`.
2929 '';
3030 };
31313232 minioAccessSecret = mkOption {
3333 type = types.str;
3434- description = ''
3434+ description = lib.mdDoc ''
3535 The value of the Minio access secret.
3636 It is required in order to connect to the server.
3737 By default this uses the one from the local minio server if enabled
3838- and <literal>config.services.minio.secretKey</literal>.
3838+ and `config.services.minio.secretKey`.
3939 '';
4040 };
41414242 minioBucketStats = mkOption {
4343 type = types.bool;
4444 default = false;
4545- description = ''
4545+ description = lib.mdDoc ''
4646 Collect statistics about the buckets and files in buckets.
4747 It requires more computation, use it carefully in case of large buckets..
4848 '';
···1111 refreshRate = mkOption {
1212 type = types.str;
1313 default = "5s";
1414- description = ''
1414+ description = lib.mdDoc ''
1515 How frequently ModemManager will refresh the extended signal quality
1616 information for each modem. The duration should be specified in seconds
1717 ("5s"), minutes ("1m"), or hours ("1h").
···1111 url = mkOption {
1212 type = types.str;
1313 example = "https://domain.tld";
1414- description = ''
1414+ description = lib.mdDoc ''
1515 URL to the Nextcloud serverinfo page.
1616 Adding the path to the serverinfo API is optional, it defaults
1717- to <literal>/ocs/v2.php/apps/serverinfo/api/v1/info</literal>.
1717+ to `/ocs/v2.php/apps/serverinfo/api/v1/info`.
1818 '';
1919 };
2020 username = mkOption {
2121 type = types.str;
2222 default = "nextcloud-exporter";
2323- description = ''
2323+ description = lib.mdDoc ''
2424 Username for connecting to Nextcloud.
2525 Note that this account needs to have admin privileges in Nextcloud.
2626 '';
···2828 passwordFile = mkOption {
2929 type = types.path;
3030 example = "/path/to/password-file";
3131- description = ''
3131+ description = lib.mdDoc ''
3232 File containing the password for connecting to Nextcloud.
3333 Make sure that this file is readable by the exporter user.
3434 '';
···3636 timeout = mkOption {
3737 type = types.str;
3838 default = "5s";
3939- description = ''
3939+ description = lib.mdDoc ''
4040 Timeout for getting server info document.
4141 '';
4242 };
···1212 type = types.str;
1313 default = "";
1414 example = "580a770cb40511eb85290242ac130003580a770cb40511eb85290242ac130003";
1515- description = ''
1515+ description = lib.mdDoc ''
1616 pi-hole API token which can be used instead of a password
1717 '';
1818 };
···2020 type = types.str;
2121 default = "10s";
2222 example = "30s";
2323- description = ''
2323+ description = lib.mdDoc ''
2424 How often to scrape new data
2525 '';
2626 };
···2828 type = types.str;
2929 default = "";
3030 example = "password";
3131- description = ''
3131+ description = lib.mdDoc ''
3232 The password to login into pihole. An api token can be used instead.
3333 '';
3434 };
···3636 type = types.str;
3737 default = "pihole";
3838 example = "127.0.0.1";
3939- description = ''
3939+ description = lib.mdDoc ''
4040 Hostname or address where to find the pihole webinterface
4141 '';
4242 };
···4444 type = types.port;
4545 default = 80;
4646 example = 443;
4747- description = ''
4747+ description = lib.mdDoc ''
4848 The port pihole webinterface is reachable on
4949 '';
5050 };
···5252 type = types.enum [ "http" "https" ];
5353 default = "http";
5454 example = "https";
5555- description = ''
5555+ description = lib.mdDoc ''
5656 The protocol which is used to connect to pihole
5757 '';
5858 };
···1818 { name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ]; }
1919 ]
2020 '';
2121- description = ''
2121+ description = lib.mdDoc ''
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: <https://github.com/ncabatoff/process-exporter>
2626 '';
2727 };
2828 };
···1414 deviceHostname = mkOption {
1515 type = types.str;
1616 example = "192.168.1.123";
1717- description = ''
1717+ description = lib.mdDoc ''
1818 The hostname of the air purification device from which to scrape the metrics.
1919 '';
2020 };
2121 protocol = mkOption {
2222 type = types.str;
2323 default = "http";
2424- description = ''
2424+ description = lib.mdDoc ''
2525 The protocol to use when communicating with the air purification device.
2626 Available: [http, coap, plain_coap]
2727 '';
···2929 stateDir = mkOption {
3030 type = types.str;
3131 default = "prometheus-py-air-control-exporter";
3232- description = ''
3333- Directory below <literal>/var/lib</literal> to store runtime data.
3232+ description = lib.mdDoc ''
3333+ Directory below `/var/lib` to store runtime data.
3434 This directory will be created automatically using systemd's StateDirectory mechanism.
3535 '';
3636 };
···1515 name = mkOption {
1616 type = str;
1717 example = "sleep";
1818- description = "Name of the script.";
1818+ description = lib.mdDoc "Name of the script.";
1919 };
2020 script = mkOption {
2121 type = str;
2222 example = "sleep 5";
2323- description = "Shell script to execute when metrics are requested.";
2323+ description = lib.mdDoc "Shell script to execute when metrics are requested.";
2424 };
2525 timeout = mkOption {
2626 type = nullOr int;
2727 default = null;
2828 example = 60;
2929- description = "Optional timeout for the script in seconds.";
2929+ description = lib.mdDoc "Optional timeout for the script in seconds.";
3030 };
3131 };
3232 });
···3737 ];
3838 }
3939 '';
4040- description = ''
4040+ description = lib.mdDoc ''
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: <https://github.com/adhocteam/script_exporter#sample-configuration>
4545 '';
4646 };
4747 };
···2424 example = literalExpression ''
2525 [ "/dev/sda", "/dev/nvme0n1" ];
2626 '';
2727- description = ''
2727+ description = lib.mdDoc ''
2828 Paths to the disks that will be monitored. Will autodiscover
2929 all disks if none given.
3030 '';
···3333 type = types.str;
3434 default = "60s";
3535 example = "2m";
3636- description = ''
3636+ description = lib.mdDoc ''
3737 Interval that limits how often a disk can be queried.
3838 '';
3939 };
···77 jobs = mkOption {
88 type = attrsOf (submodule jobOptions);
99 default = { };
1010- description = "An attrset of metrics scraping jobs to run.";
1010+ description = lib.mdDoc "An attrset of metrics scraping jobs to run.";
1111 };
1212 };
1313 };
···1515 options = with types; {
1616 interval = mkOption {
1717 type = str;
1818- description = ''
1818+ description = lib.mdDoc ''
1919 How often to run this job, specified in
2020- <link xlink:href="https://golang.org/pkg/time/#ParseDuration">Go duration</link> format.
2020+ [Go duration](https://golang.org/pkg/time/#ParseDuration) format.
2121 '';
2222 };
2323 connections = mkOption {
2424 type = listOf str;
2525- description = "A list of connection strings of the SQL servers to scrape metrics from";
2525+ description = lib.mdDoc "A list of connection strings of the SQL servers to scrape metrics from";
2626 };
2727 startupSql = mkOption {
2828 type = listOf str;
2929 default = [];
3030- description = "A list of SQL statements to execute once after making a connection.";
3030+ description = lib.mdDoc "A list of SQL statements to execute once after making a connection.";
3131 };
3232 queries = mkOption {
3333 type = attrsOf (submodule queryOptions);
3434- description = "SQL queries to run.";
3434+ description = lib.mdDoc "SQL queries to run.";
3535 };
3636 };
3737 };
···4040 help = mkOption {
4141 type = nullOr str;
4242 default = null;
4343- description = "A human-readable description of this metric.";
4343+ description = lib.mdDoc "A human-readable description of this metric.";
4444 };
4545 labels = mkOption {
4646 type = listOf str;
4747 default = [ ];
4848- description = "A set of columns that will be used as Prometheus labels.";
4848+ description = lib.mdDoc "A set of columns that will be used as Prometheus labels.";
4949 };
5050 query = mkOption {
5151 type = str;
5252- description = "The SQL query to run.";
5252+ description = lib.mdDoc "The SQL query to run.";
5353 };
5454 values = mkOption {
5555 type = listOf str;
5656- description = "A set of columns that will be used as values of this metric.";
5656+ description = lib.mdDoc "A set of columns that will be used as values of this metric.";
5757 };
5858 };
5959 };
···7777 configFile = mkOption {
7878 type = with types; nullOr path;
7979 default = null;
8080- description = ''
8080+ description = lib.mdDoc ''
8181 Path to configuration file.
8282 '';
8383 };
8484 configuration = mkOption {
8585 type = with types; nullOr (submodule cfgOptions);
8686 default = null;
8787- description = ''
8787+ description = lib.mdDoc ''
8888 Exporter configuration as nix attribute set. Mutually exclusive with 'configFile' option.
8989 '';
9090 };
···1212 # TODO: add shm when upstream implemented it
1313 type = types.enum [ "tcp" "uds" ];
1414 default = "uds";
1515- description = ''
1515+ description = lib.mdDoc ''
1616 Which methods the exporter uses to get the information from unbound.
1717 '';
1818 };
···2020 telemetryPath = mkOption {
2121 type = types.str;
2222 default = "/metrics";
2323- description = ''
2323+ description = lib.mdDoc ''
2424 Path under which to expose metrics.
2525 '';
2626 };
···2929 type = types.nullOr types.str;
3030 default = null;
3131 example = "/run/unbound/unbound.socket";
3232- description = ''
3232+ description = lib.mdDoc ''
3333 Path to the unbound socket for uds mode or the control interface port for tcp mode.
34343535 Example:
···1717 type = with types; nullOr (either path str);
1818 default = null;
19192020- description = ''
2020+ description = lib.mdDoc ''
2121 Path to the Wireguard Config to
2222- <link xlink:href="https://github.com/MindFlavor/prometheus_wireguard_exporter/tree/2.0.0#usage">add the peer's name to the stats of a peer</link>.
2222+ [add the peer's name to the stats of a peer](https://github.com/MindFlavor/prometheus_wireguard_exporter/tree/2.0.0#usage).
23232424- Please note that <literal>networking.wg-quick</literal> is required for this feature
2525- as <literal>networking.wireguard</literal> uses
2626- <citerefentry><refentrytitle>wg</refentrytitle><manvolnum>8</manvolnum></citerefentry>
2424+ Please note that `networking.wg-quick` is required for this feature
2525+ as `networking.wireguard` uses
2626+ {manpage}`wg(8)`
2727 to set the peers up.
2828 '';
2929 };
···3131 singleSubnetPerField = mkOption {
3232 type = types.bool;
3333 default = false;
3434- description = ''
3434+ description = lib.mdDoc ''
3535 By default, all allowed IPs and subnets are comma-separated in the
3636- <literal>allowed_ips</literal> field. With this option enabled,
3737- a single IP and subnet will be listed in fields like <literal>allowed_ip_0</literal>,
3838- <literal>allowed_ip_1</literal> and so on.
3636+ `allowed_ips` field. With this option enabled,
3737+ a single IP and subnet will be listed in fields like `allowed_ip_0`,
3838+ `allowed_ip_1` and so on.
3939 '';
4040 };
41414242 withRemoteIp = mkOption {
4343 type = types.bool;
4444 default = false;
4545- description = ''
4545+ description = lib.mdDoc ''
4646 Whether or not the remote IP of a WireGuard peer should be exposed via prometheus.
4747 '';
4848 };
···4242 exports = mkOption {
4343 type = types.lines;
4444 default = "";
4545- description = ''
4545+ description = lib.mdDoc ''
4646 Contents of the /etc/exports file. See
4747- <citerefentry><refentrytitle>exports</refentrytitle><manvolnum>5</manvolnum></citerefentry> for the format.
4747+ {manpage}`exports(5)` for the format.
4848 '';
4949 };
50505151 hostName = mkOption {
5252 type = types.nullOr types.str;
5353 default = null;
5454- description = ''
5454+ description = lib.mdDoc ''
5555 Hostname or address on which NFS requests will be accepted.
5656- Default is all. See the <option>-H</option> option in
5757- <citerefentry><refentrytitle>nfsd</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
5656+ Default is all. See the {option}`-H` option in
5757+ {manpage}`nfsd(8)`.
5858 '';
5959 };
6060
···3333 enable = mkOption {
3434 default = false;
3535 type = types.bool;
3636- description = "Whether to enable the OpenAFS client.";
3636+ description = lib.mdDoc "Whether to enable the OpenAFS client.";
3737 };
38383939 afsdb = mkOption {
4040 default = true;
4141 type = types.bool;
4242- description = "Resolve cells via AFSDB DNS records.";
4242+ description = lib.mdDoc "Resolve cells via AFSDB DNS records.";
4343 };
44444545 cellName = mkOption {
4646 default = "";
4747 type = types.str;
4848- description = "Cell name.";
4848+ description = lib.mdDoc "Cell name.";
4949 example = "grand.central.org";
5050 };
51515252 cellServDB = mkOption {
5353 default = [];
5454 type = with types; listOf (submodule { options = cellServDBConfig; });
5555- description = ''
5555+ description = lib.mdDoc ''
5656 This cell's database server records, added to the global
5757 CellServDB. See CellServDB(5) man page for syntax. Ignored when
5858- <literal>afsdb</literal> is set to <literal>true</literal>.
5858+ `afsdb` is set to `true`.
5959 '';
6060 example = [
6161 { ip = "1.2.3.4"; dnsname = "first.afsdb.server.dns.fqdn.org"; }
···6767 blocks = mkOption {
6868 default = 100000;
6969 type = types.int;
7070- description = "Cache size in 1KB blocks.";
7070+ description = lib.mdDoc "Cache size in 1KB blocks.";
7171 };
72727373 chunksize = mkOption {
7474 default = 0;
7575 type = types.ints.between 0 30;
7676- description = ''
7676+ description = lib.mdDoc ''
7777 Size of each cache chunk given in powers of
7878- 2. <literal>0</literal> resets the chunk size to its default
7878+ 2. `0` resets the chunk size to its default
7979 values (13 (8 KB) for memcache, 18-20 (256 KB to 1 MB) for
8080 diskcache). Maximum value is 30. Important performance
8181 parameter. Set to higher values when dealing with large files.
···8585 directory = mkOption {
8686 default = "/var/cache/openafs";
8787 type = types.str;
8888- description = "Cache directory.";
8888+ description = lib.mdDoc "Cache directory.";
8989 };
90909191 diskless = mkOption {
9292 default = false;
9393 type = types.bool;
9494- description = ''
9494+ description = lib.mdDoc ''
9595 Use in-memory cache for diskless machines. Has no real
9696 performance benefit anymore.
9797 '';
···101101 crypt = mkOption {
102102 default = true;
103103 type = types.bool;
104104- description = "Whether to enable (weak) protocol encryption.";
104104+ description = lib.mdDoc "Whether to enable (weak) protocol encryption.";
105105 };
106106107107 daemons = mkOption {
108108 default = 2;
109109 type = types.int;
110110- description = ''
110110+ description = lib.mdDoc ''
111111 Number of daemons to serve user requests. Numbers higher than 6
112112 usually do no increase performance. Default is sufficient for up
113113 to five concurrent users.
···117117 fakestat = mkOption {
118118 default = false;
119119 type = types.bool;
120120- description = ''
121121- Return fake data on stat() calls. If <literal>true</literal>,
122122- always do so. If <literal>false</literal>, only do so for
120120+ description = lib.mdDoc ''
121121+ Return fake data on stat() calls. If `true`,
122122+ always do so. If `false`, only do so for
123123 cross-cell mounts (as these are potentially expensive).
124124 '';
125125 };
···127127 inumcalc = mkOption {
128128 default = "compat";
129129 type = types.strMatching "compat|md5";
130130- description = ''
131131- Inode calculation method. <literal>compat</literal> is
132132- computationally less expensive, but <literal>md5</literal> greatly
130130+ description = lib.mdDoc ''
131131+ Inode calculation method. `compat` is
132132+ computationally less expensive, but `md5` greatly
133133 reduces the likelihood of inode collisions in larger scenarios
134134 involving multiple cells mounted into one AFS space.
135135 '';
···138138 mountPoint = mkOption {
139139 default = "/afs";
140140 type = types.str;
141141- description = ''
141141+ description = lib.mdDoc ''
142142 Mountpoint of the AFS file tree, conventionally
143143- <literal>/afs</literal>. When set to a different value, only
143143+ `/afs`. When set to a different value, only
144144 cross-cells that use the same value can be accessed.
145145 '';
146146 };
···150150 default = config.boot.kernelPackages.openafs;
151151 defaultText = literalExpression "config.boot.kernelPackages.openafs";
152152 type = types.package;
153153- description = "OpenAFS kernel module package. MUST match the userland package!";
153153+ description = lib.mdDoc "OpenAFS kernel module package. MUST match the userland package!";
154154 };
155155 programs = mkOption {
156156 default = getBin pkgs.openafs;
157157 defaultText = literalExpression "getBin pkgs.openafs";
158158 type = types.package;
159159- description = "OpenAFS programs package. MUST match the kernel module package!";
159159+ description = lib.mdDoc "OpenAFS programs package. MUST match the kernel module package!";
160160 };
161161 };
162162163163 sparse = mkOption {
164164 default = true;
165165 type = types.bool;
166166- description = "Minimal cell list in /afs.";
166166+ description = lib.mdDoc "Minimal cell list in /afs.";
167167 };
168168169169 startDisconnected = mkOption {
170170 default = false;
171171 type = types.bool;
172172- description = ''
172172+ description = lib.mdDoc ''
173173 Start up in disconnected mode. You need to execute
174174- <literal>fs disco online</literal> (as root) to switch to
174174+ `fs disco online` (as root) to switch to
175175 connected mode. Useful for roaming devices.
176176 '';
177177 };
···4949 enable = mkOption {
5050 default = false;
5151 type = types.bool;
5252- description = ''
5252+ description = lib.mdDoc ''
5353 Whether to enable the OpenAFS server. An OpenAFS server needs a
5454 complex setup. So, be aware that enabling this service and setting
5555 some options does not give you a turn-key-ready solution. You need
5656 at least a running Kerberos 5 setup, as OpenAFS relies on it for
5757 authentication. See the Guide "QuickStartUnix" coming with
5858- <literal>pkgs.openafs.doc</literal> for complete setup
5858+ `pkgs.openafs.doc` for complete setup
5959 instructions.
6060 '';
6161 };
···6363 advertisedAddresses = mkOption {
6464 type = types.listOf types.str;
6565 default = [];
6666- description = "List of IP addresses this server is advertised under. See NetInfo(5)";
6666+ description = lib.mdDoc "List of IP addresses this server is advertised under. See NetInfo(5)";
6767 };
68686969 cellName = mkOption {
7070 default = "";
7171 type = types.str;
7272- description = "Cell name, this server will serve.";
7272+ description = lib.mdDoc "Cell name, this server will serve.";
7373 example = "grand.central.org";
7474 };
75757676 cellServDB = mkOption {
7777 default = [];
7878 type = with types; listOf (submodule [ { options = cellServDBConfig;} ]);
7979- description = "Definition of all cell-local database server machines.";
7979+ description = lib.mdDoc "Definition of all cell-local database server machines.";
8080 };
81818282 package = mkOption {
8383 default = pkgs.openafs.server or pkgs.openafs;
8484 defaultText = literalExpression "pkgs.openafs.server or pkgs.openafs";
8585 type = types.package;
8686- description = "OpenAFS package for the server binaries";
8686+ description = lib.mdDoc "OpenAFS package for the server binaries";
8787 };
88888989 roles = {
···9191 enable = mkOption {
9292 default = true;
9393 type = types.bool;
9494- description = "Fileserver role, serves files and volumes from its local storage.";
9494+ description = lib.mdDoc "Fileserver role, serves files and volumes from its local storage.";
9595 };
96969797 fileserverArgs = mkOption {
9898 default = "-vattachpar 128 -vhashsize 11 -L -rxpck 400 -cb 1000000";
9999 type = types.str;
100100- description = "Arguments to the dafileserver process. See its man page.";
100100+ description = lib.mdDoc "Arguments to the dafileserver process. See its man page.";
101101 };
102102103103 volserverArgs = mkOption {
104104 default = "";
105105 type = types.str;
106106- description = "Arguments to the davolserver process. See its man page.";
106106+ description = lib.mdDoc "Arguments to the davolserver process. See its man page.";
107107 example = "-sync never";
108108 };
109109110110 salvageserverArgs = mkOption {
111111 default = "";
112112 type = types.str;
113113- description = "Arguments to the salvageserver process. See its man page.";
113113+ description = lib.mdDoc "Arguments to the salvageserver process. See its man page.";
114114 example = "-showlog";
115115 };
116116117117 salvagerArgs = mkOption {
118118 default = "";
119119 type = types.str;
120120- description = "Arguments to the dasalvager process. See its man page.";
120120+ description = lib.mdDoc "Arguments to the dasalvager process. See its man page.";
121121 example = "-showlog -showmounts";
122122 };
123123 };
···126126 enable = mkOption {
127127 default = true;
128128 type = types.bool;
129129- description = ''
129129+ description = lib.mdDoc ''
130130 Database server role, maintains the Volume Location Database,
131131 Protection Database (and Backup Database, see
132132- <literal>backup</literal> role). There can be multiple
132132+ `backup` role). There can be multiple
133133 servers in the database role for replication, which then need
134134 reliable network connection to each other.
135135···141141 vlserverArgs = mkOption {
142142 default = "";
143143 type = types.str;
144144- description = "Arguments to the vlserver process. See its man page.";
144144+ description = lib.mdDoc "Arguments to the vlserver process. See its man page.";
145145 example = "-rxbind";
146146 };
147147148148 ptserverArgs = mkOption {
149149 default = "";
150150 type = types.str;
151151- description = "Arguments to the ptserver process. See its man page.";
151151+ description = lib.mdDoc "Arguments to the ptserver process. See its man page.";
152152 example = "-restricted -default_access S---- S-M---";
153153 };
154154 };
···157157 enable = mkOption {
158158 default = false;
159159 type = types.bool;
160160- description = ''
160160+ description = lib.mdDoc ''
161161 Backup server role. Use in conjunction with the
162162- <literal>database</literal> role to maintain the Backup
162162+ `database` role to maintain the Backup
163163 Database. Normally only used in conjunction with tape storage
164164 or IBM's Tivoli Storage Manager.
165165 '';
···168168 buserverArgs = mkOption {
169169 default = "";
170170 type = types.str;
171171- description = "Arguments to the buserver process. See its man page.";
171171+ description = lib.mdDoc "Arguments to the buserver process. See its man page.";
172172 example = "-p 8";
173173 };
174174175175 cellServDB = mkOption {
176176 default = [];
177177 type = with types; listOf (submodule [ { options = cellServDBConfig;} ]);
178178- description = ''
178178+ description = lib.mdDoc ''
179179 Definition of all cell-local backup database server machines.
180180 Use this when your cell uses less backup database servers than
181181 other database server machines.
···187187 dottedPrincipals= mkOption {
188188 default = false;
189189 type = types.bool;
190190- description = ''
190190+ description = lib.mdDoc ''
191191 If enabled, allow principal names containing (.) dots. Enabling
192192 this has security implications!
193193 '';
···196196 udpPacketSize = mkOption {
197197 default = 1310720;
198198 type = types.int;
199199- description = ''
199199+ description = lib.mdDoc ''
200200 UDP packet size to use in Bytes. Higher values can speed up
201201 communications. The default of 1 MB is a sufficient in most
202202 cases. Make sure to increase the kernel's UDP buffer size
203203- accordingly via <literal>net.core(w|r|opt)mem_max</literal>
203203+ accordingly via `net.core(w|r|opt)mem_max`
204204 sysctl.
205205 '';
206206 };
···150150 ''';
151151 }
152152 '';
153153- description = ''
153153+ description = lib.mdDoc ''
154154 Specify custom service definitions which are placed in the avahi service directory.
155155- See the <citerefentry><refentrytitle>avahi.service</refentrytitle><manvolnum>5</manvolnum></citerefentry> manpage for detailed information.
155155+ See the {manpage}`avahi.service(5)` manpage for detailed information.
156156 '';
157157 };
158158
···6677 addr = mkOption {
88 type = types.str;
99- description = ''
99+ description = lib.mdDoc ''
1010 IP address, optionally with a netmask: IPADDR[/MASK]
1111 '';
1212 };
···1414 brd = mkOption {
1515 type = types.nullOr types.str;
1616 default = null;
1717- description = ''
1717+ description = lib.mdDoc ''
1818 The broadcast address on the interface.
1919 '';
2020 };
···2222 dev = mkOption {
2323 type = types.nullOr types.str;
2424 default = null;
2525- description = ''
2525+ description = lib.mdDoc ''
2626 The name of the device to add the address to.
2727 '';
2828 };
···3030 scope = mkOption {
3131 type = types.nullOr types.str;
3232 default = null;
3333- description = ''
3333+ description = lib.mdDoc ''
3434 The scope of the area where this address is valid.
3535 '';
3636 };
···3838 label = mkOption {
3939 type = types.nullOr types.str;
4040 default = null;
4141- description = ''
4141+ description = lib.mdDoc ''
4242 Each address may be tagged with a label string. In order to preserve
4343 compatibility with Linux-2.0 net aliases, this string must coincide with
4444 the name of the device or must be prefixed with the device name followed
···6677 interface = mkOption {
88 type = types.str;
99- description = ''
99+ description = lib.mdDoc ''
1010 Interface for inside_network, bound by vrrp.
1111 '';
1212 };
···1414 state = mkOption {
1515 type = types.enum [ "MASTER" "BACKUP" ];
1616 default = "BACKUP";
1717- description = ''
1717+ description = lib.mdDoc ''
1818 Initial state. As soon as the other machine(s) come up, an election will
1919 be held and the machine with the highest "priority" will become MASTER.
2020 So the entry here doesn't matter a whole lot.
···23232424 virtualRouterId = mkOption {
2525 type = types.int;
2626- description = ''
2626+ description = lib.mdDoc ''
2727 Arbitrary unique number 0..255. Used to differentiate multiple instances
2828 of vrrpd running on the same NIC (and hence same socket).
2929 '';
···3232 priority = mkOption {
3333 type = types.int;
3434 default = 100;
3535- description = ''
3535+ description = lib.mdDoc ''
3636 For electing MASTER, highest priority wins. To be MASTER, make 50 more
3737 than other machines.
3838 '';
···4141 noPreempt = mkOption {
4242 type = types.bool;
4343 default = false;
4444- description = ''
4444+ description = lib.mdDoc ''
4545 VRRP will normally preempt a lower priority machine when a higher
4646 priority machine comes online. "nopreempt" allows the lower priority
4747 machine to maintain the master role, even when a higher priority machine
···5353 useVmac = mkOption {
5454 type = types.bool;
5555 default = false;
5656- description = ''
5656+ description = lib.mdDoc ''
5757 Use VRRP Virtual MAC.
5858 '';
5959 };
···6161 vmacInterface = mkOption {
6262 type = types.nullOr types.str;
6363 default = null;
6464- description = ''
6464+ description = lib.mdDoc ''
6565 Name of the vmac interface to use. keepalived will come up with a name
6666 if you don't specify one.
6767 '';
···7070 vmacXmitBase = mkOption {
7171 type = types.bool;
7272 default = false;
7373- description = ''
7373+ description = lib.mdDoc ''
7474 Send/Recv VRRP messages from base interface instead of VMAC interface.
7575 '';
7676 };
···7878 unicastSrcIp = mkOption {
7979 type = types.nullOr types.str;
8080 default = null;
8181- description = ''
8181+ description = lib.mdDoc ''
8282 Default IP for binding vrrpd is the primary IP on interface. If you
8383 want to hide location of vrrpd, use this IP as src_addr for unicast
8484 vrrp packets.
···8888 unicastPeers = mkOption {
8989 type = types.listOf types.str;
9090 default = [];
9191- description = ''
9191+ description = lib.mdDoc ''
9292 Do not send VRRP adverts over VRRP multicast group. Instead it sends
9393 adverts to the following list of ip addresses using unicast design
9494 fashion. It can be cool to use VRRP FSM and features in a networking
···103103 }));
104104 default = [];
105105 # TODO: example
106106- description = "Declarative vhost config";
106106+ description = lib.mdDoc "Declarative vhost config";
107107 };
108108109109 trackScripts = mkOption {
110110 type = types.listOf types.str;
111111 default = [];
112112 example = [ "chk_cmd1" "chk_cmd2" ];
113113- description = "List of script names to invoke for health tracking.";
113113+ description = lib.mdDoc "List of script names to invoke for health tracking.";
114114 };
115115116116 trackInterfaces = mkOption {
117117 type = types.listOf types.str;
118118 default = [];
119119 example = [ "eth0" "eth1" ];
120120- description = "List of network interfaces to monitor for health tracking.";
120120+ description = lib.mdDoc "List of network interfaces to monitor for health tracking.";
121121 };
122122123123 extraConfig = mkOption {
124124 type = types.lines;
125125 default = "";
126126- description = ''
126126+ description = lib.mdDoc ''
127127 Extra lines to be added verbatim to the vrrp_instance section.
128128 '';
129129 };
···88 script = mkOption {
99 type = str;
1010 example = literalExpression ''"''${pkgs.curl} -f http://localhost:80"'';
1111- description = "(Path of) Script command to execute followed by args, i.e. cmd [args]...";
1111+ description = lib.mdDoc "(Path of) Script command to execute followed by args, i.e. cmd [args]...";
1212 };
13131414 interval = mkOption {
1515 type = int;
1616 default = 1;
1717- description = "Seconds between script invocations.";
1717+ description = lib.mdDoc "Seconds between script invocations.";
1818 };
19192020 timeout = mkOption {
2121 type = int;
2222 default = 5;
2323- description = "Seconds after which script is considered to have failed.";
2323+ description = lib.mdDoc "Seconds after which script is considered to have failed.";
2424 };
25252626 weight = mkOption {
2727 type = int;
2828 default = 0;
2929- description = "Following a failure, adjust the priority by this weight.";
2929+ description = lib.mdDoc "Following a failure, adjust the priority by this weight.";
3030 };
31313232 rise = mkOption {
3333 type = int;
3434 default = 5;
3535- description = "Required number of successes for OK transition.";
3535+ description = lib.mdDoc "Required number of successes for OK transition.";
3636 };
37373838 fall = mkOption {
3939 type = int;
4040 default = 3;
4141- description = "Required number of failures for KO transition.";
4141+ description = lib.mdDoc "Required number of failures for KO transition.";
4242 };
43434444 user = mkOption {
4545 type = str;
4646 default = "keepalived_script";
4747- description = "Name of user to run the script under.";
4747+ description = lib.mdDoc "Name of user to run the script under.";
4848 };
49495050 group = mkOption {
5151 type = nullOr str;
5252 default = null;
5353- description = "Name of group to run the script under. Defaults to user group.";
5353+ description = lib.mdDoc "Name of group to run the script under. Defaults to user group.";
5454 };
55555656 extraConfig = mkOption {
5757 type = lines;
5858 default = "";
5959- description = "Extra lines to be added verbatim to the vrrp_script section.";
5959+ description = lib.mdDoc "Extra lines to be added verbatim to the vrrp_script section.";
6060 };
61616262 };
+4-4
nixos/modules/services/networking/nbd.nix
···5656 default = {
5757 allowlist = false;
5858 };
5959- description = ''
5959+ description = lib.mdDoc ''
6060 Extra options for the server. See
6161- <citerefentry><refentrytitle>nbd-server</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
6161+ {manpage}`nbd-server(5)`.
6262 '';
6363 };
6464···8787 flush = true;
8888 fua = true;
8989 };
9090- description = ''
9090+ description = lib.mdDoc ''
9191 Extra options for this export. See
9292- <citerefentry><refentrytitle>nbd-server</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
9292+ {manpage}`nbd-server(5)`.
9393 '';
9494 };
9595 };
···173173 str
174174 ]));
175175 default = {};
176176- description = ''
176176+ description = lib.mdDoc ''
177177 Configuration for the [connection] section of NetworkManager.conf.
178178 Refer to
179179- <link xlink:href="https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html">
179179+ [
180180 https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html#id-1.2.3.11
181181- </link>
181181+ ](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html)
182182 or
183183- <citerefentry><refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
183183+ {manpage}`NetworkManager.conf(5)`
184184 for more information.
185185 '';
186186 };
···188188 extraConfig = mkOption {
189189 type = types.lines;
190190 default = "";
191191- description = ''
191191+ description = lib.mdDoc ''
192192 Configuration appended to the generated NetworkManager.conf.
193193 Refer to
194194- <link xlink:href="https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html">
194194+ [
195195 https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
196196- </link>
196196+ ](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html)
197197 or
198198- <citerefentry><refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
198198+ {manpage}`NetworkManager.conf(5)`
199199 for more information.
200200 '';
201201 };
···203203 unmanaged = mkOption {
204204 type = types.listOf types.str;
205205 default = [];
206206- description = ''
206206+ description = lib.mdDoc ''
207207 List of interfaces that will not be managed by NetworkManager.
208208 Interface name can be specified here, but if you need more fidelity,
209209 refer to
210210- <link xlink:href="https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html#device-spec">
210210+ [
211211 https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html#device-spec
212212- </link>
212212+ ](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html#device-spec)
213213 or the "Device List Format" Appendix of
214214- <citerefentry><refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
214214+ {manpage}`NetworkManager.conf(5)`.
215215 '';
216216 };
217217···318318 dns = mkOption {
319319 type = types.enum [ "default" "dnsmasq" "unbound" "systemd-resolved" "none" ];
320320 default = "default";
321321- description = ''
322322- Set the DNS (<literal>resolv.conf</literal>) processing mode.
321321+ description = lib.mdDoc ''
322322+ Set the DNS (`resolv.conf`) processing mode.
323323324324 A description of these modes can be found in the main section of
325325- <link xlink:href="https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html">
325325+ [
326326 https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
327327- </link>
327327+ ](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html)
328328 or in
329329- <citerefentry><refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
329329+ {manpage}`NetworkManager.conf(5)`.
330330 '';
331331 };
332332
···4455 frontends = lib.mkOption {
66 type = lib.types.listOf (lib.types.submodule (import ./frontend-submodule.nix));
77- description = ''
77+ description = lib.mdDoc ''
88 A list of frontend listener specifications.
99 '';
1010 example = [
···22222323 backends = lib.mkOption {
2424 type = lib.types.listOf (lib.types.submodule (import ./backend-submodule.nix));
2525- description = ''
2525+ description = lib.mdDoc ''
2626 A list of backend specifications.
2727 '';
2828 example = [
···4242 tls = lib.mkOption {
4343 type = lib.types.nullOr (lib.types.submodule (import ./tls-submodule.nix));
4444 default = null;
4545- description = ''
4545+ description = lib.mdDoc ''
4646 TLS certificate and key paths. Note that this does not enable
4747 TLS for a frontend listener, to do so, a frontend
4848- specification must set <literal>params.tls</literal> to true.
4848+ specification must set `params.tls` to true.
4949 '';
5050 example = {
5151 key = "/etc/ssl/keys/server.key";
···5656 extraConfig = lib.mkOption {
5757 type = lib.types.lines;
5858 default = "";
5959- description = ''
5959+ description = lib.mdDoc ''
6060 Extra configuration options to be appended to the generated
6161 configuration file.
6262 '';
···6565 single-process = lib.mkOption {
6666 type = lib.types.bool;
6767 default = false;
6868- description = ''
6868+ description = lib.mdDoc ''
6969 Run this program in a single process mode for debugging
7070 purpose. Without this option, nghttpx creates at least 2
7171 processes: master and worker processes. If this option is
···8181 backlog = lib.mkOption {
8282 type = lib.types.int;
8383 default = 65536;
8484- description = ''
8484+ description = lib.mdDoc ''
8585 Listen backlog size.
86868787 Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx--backlog
···9595 "IPv6"
9696 ];
9797 default = "auto";
9898- description = ''
9898+ description = lib.mdDoc ''
9999 Specify address family of backend connections. If "auto" is
100100 given, both IPv4 and IPv6 are considered. If "IPv4" is given,
101101 only IPv4 address is considered. If "IPv6" is given, only IPv6
···108108 workers = lib.mkOption {
109109 type = lib.types.int;
110110 default = 1;
111111- description = ''
111111+ description = lib.mdDoc ''
112112 Set the number of worker threads.
113113114114 Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-n
···118118 single-thread = lib.mkOption {
119119 type = lib.types.bool;
120120 default = false;
121121- description = ''
121121+ description = lib.mdDoc ''
122122 Run everything in one thread inside the worker process. This
123123 feature is provided for better debugging experience, or for
124124 the platforms which lack thread support. If threading is
+5-5
nixos/modules/services/networking/soju.nix
···3232 listen = mkOption {
3333 type = types.listOf types.str;
3434 default = [ ":6697" ];
3535- description = ''
3535+ description = lib.mdDoc ''
3636 Where soju should listen for incoming connections. See the
3737- <literal>listen</literal> directive in
3838- <citerefentry><refentrytitle>soju</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
3737+ `listen` directive in
3838+ {manpage}`soju(1)`.
3939 '';
4040 };
4141···6969 httpOrigins = mkOption {
7070 type = types.listOf types.str;
7171 default = [];
7272- description = ''
7272+ description = lib.mdDoc ''
7373 List of allowed HTTP origins for WebSocket listeners. The parameters are
7474 interpreted as shell patterns, see
7575- <citerefentry><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
7575+ {manpage}`glob(7)`.
7676 '';
7777 };
7878
+4-4
nixos/modules/services/networking/ssh/sshd.nix
···156156 gatewayPorts = mkOption {
157157 type = types.str;
158158 default = "no";
159159- description = ''
159159+ description = lib.mdDoc ''
160160 Specifies whether remote hosts are allowed to connect to
161161 ports forwarded for the client. See
162162- <citerefentry><refentrytitle>sshd_config</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
162162+ {manpage}`sshd_config(5)`.
163163 '';
164164 };
165165···236236 [ { type = "rsa"; bits = 4096; path = "/etc/ssh/ssh_host_rsa_key"; rounds = 100; openSSHFormat = true; }
237237 { type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; rounds = 100; comment = "key comment"; }
238238 ];
239239- description = ''
239239+ description = lib.mdDoc ''
240240 NixOS can automatically generate SSH host keys. This option
241241 specifies the path, type and size of each key. See
242242- <citerefentry><refentrytitle>ssh-keygen</refentrytitle><manvolnum>1</manvolnum></citerefentry> for supported types
242242+ {manpage}`ssh-keygen(1)` for supported types
243243 and sizes.
244244 '';
245245 };
···1414 type = types.package;
1515 default = pkgs.strongswan;
1616 defaultText = literalExpression "pkgs.strongswan";
1717- description = ''
1717+ description = lib.mdDoc ''
1818 The strongswan derivation to use.
1919 '';
2020 };
···2222 strongswan.extraConfig = mkOption {
2323 type = types.str;
2424 default = "";
2525- description = ''
2626- Contents of the <literal>strongswan.conf</literal> file.
2525+ description = lib.mdDoc ''
2626+ Contents of the `strongswan.conf` file.
2727 '';
2828 };
2929
+4-4
nixos/modules/services/networking/stunnel.nix
···777778787979 servers = mkOption {
8080- description = ''
8080+ description = lib.mdDoc ''
8181 Define the server configuations.
82828383- See "SERVICE-LEVEL OPTIONS" in <citerefentry><refentrytitle>stunnel</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
8383+ See "SERVICE-LEVEL OPTIONS" in {manpage}`stunnel(8)`.
8484 '';
8585 type = with types; attrsOf (attrsOf (nullOr (oneOf [bool int str])));
8686 example = {
···9494 };
95959696 clients = mkOption {
9797- description = ''
9797+ description = lib.mdDoc ''
9898 Define the client configurations.
9999100100 By default, verifyChain and OCSPaia are enabled and a CAFile is provided from pkgs.cacert.
101101102102- See "SERVICE-LEVEL OPTIONS" in <citerefentry><refentrytitle>stunnel</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
102102+ See "SERVICE-LEVEL OPTIONS" in {manpage}`stunnel(8)`.
103103 '';
104104 type = with types; attrsOf (attrsOf (nullOr (oneOf [bool int str])));
105105
+2-2
nixos/modules/services/networking/unbound.nix
···150150 remote-control.control-enable = true;
151151 };
152152 '';
153153- description = ''
153153+ description = lib.mdDoc ''
154154 Declarative Unbound configuration
155155- See the <citerefentry><refentrytitle>unbound.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> manpage for a list of
155155+ See the {manpage}`unbound.conf(5)` manpage for a list of
156156 available options.
157157 '';
158158 };
···396396 example = ''
397397 bssid_blacklist=02:11:22:33:44:55 02:22:aa:44:55:66
398398 '';
399399- description = ''
399399+ description = lib.mdDoc ''
400400 Extra configuration lines appended to the network block.
401401 See
402402- <citerefentry><refentrytitle>wpa_supplicant.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
402402+ {manpage}`wpa_supplicant.conf(5)`
403403 for available options.
404404 '';
405405 };
···470470 example = ''
471471 p2p_disabled=1
472472 '';
473473- description = ''
473473+ description = lib.mdDoc ''
474474 Extra lines appended to the configuration file.
475475 See
476476- <citerefentry><refentrytitle>wpa_supplicant.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
476476+ {manpage}`wpa_supplicant.conf(5)`
477477 for available options.
478478 '';
479479 };
+12-12
nixos/modules/services/networking/znc/default.nix
···8787 default = "znc";
8888 example = "john";
8989 type = types.str;
9090- description = ''
9090+ description = lib.mdDoc ''
9191 The name of an existing user account to use to own the ZNC server
9292 process. If not specified, a default user will be created.
9393 '';
···9797 default = defaultUser;
9898 example = "users";
9999 type = types.str;
100100- description = ''
100100+ description = lib.mdDoc ''
101101 Group to own the ZNC process.
102102 '';
103103 };
···106106 default = "/var/lib/znc";
107107 example = "/home/john/.znc";
108108 type = types.path;
109109- description = ''
109109+ description = lib.mdDoc ''
110110 The state directory for ZNC. The config and the modules will be linked
111111 to from this directory as well.
112112 '';
···115115 openFirewall = mkOption {
116116 type = types.bool;
117117 default = false;
118118- description = ''
118118+ description = lib.mdDoc ''
119119 Whether to open ports in the firewall for ZNC. Does work with
120120 ports for listeners specified in
121121- <option>services.znc.config.Listener</option>.
121121+ {option}`services.znc.config.Listener`.
122122 '';
123123 };
124124···177177 configFile = mkOption {
178178 type = types.path;
179179 example = literalExpression "~/.znc/configs/znc.conf";
180180- description = ''
180180+ description = lib.mdDoc ''
181181 Configuration file for ZNC. It is recommended to use the
182182- <option>config</option> option instead.
182182+ {option}`config` option instead.
183183184184 Setting this option will override any auto-generated config file
185185- through the <option>confOptions</option> or <option>config</option>
185185+ through the {option}`confOptions` or {option}`config`
186186 options.
187187 '';
188188 };
···191191 type = types.listOf types.package;
192192 default = [ ];
193193 example = literalExpression "[ pkgs.zncModules.fish pkgs.zncModules.push ]";
194194- description = ''
194194+ description = lib.mdDoc ''
195195 A list of global znc module packages to add to znc.
196196 '';
197197 };
···199199 mutable = mkOption {
200200 default = true; # TODO: Default to true when config is set, make sure to not delete the old config if present
201201 type = types.bool;
202202- description = ''
202202+ description = lib.mdDoc ''
203203 Indicates whether to allow the contents of the
204204- <literal>dataDir</literal> directory to be changed by the user at
204204+ `dataDir` directory to be changed by the user at
205205 run-time.
206206207207 If enabled, modifications to the ZNC configuration after its initial
···217217 default = [ ];
218218 example = [ "--debug" ];
219219 type = types.listOf types.str;
220220- description = ''
220220+ description = lib.mdDoc ''
221221 Extra arguments to use for executing znc.
222222 '';
223223 };
+4-4
nixos/modules/services/security/usbguard.nix
···5757 example = ''
5858 allow with-interface equals { 08:*:* }
5959 '';
6060- description = ''
6060+ description = lib.mdDoc ''
6161 The USBGuard daemon will load this as the policy rule set.
6262 As these rules are NixOS managed they are immutable and can't
6363 be changed by the IPC interface.
64646565 If you do not set this option, the USBGuard daemon will load
6666- it's policy rule set from <literal>${defaultRuleFile}</literal>.
6666+ it's policy rule set from `${defaultRuleFile}`.
6767 This file can be changed manually or via the IPC interface.
68686969- Running <literal>usbguard generate-policy</literal> as root will
6969+ Running `usbguard generate-policy` as root will
7070 generate a config for your currently plugged in devices.
71717272- For more details see <citerefentry><refentrytitle>usbguard-rules.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
7272+ For more details see {manpage}`usbguard-rules.conf(5)`.
7373 '';
7474 };
7575
···99 options = {
1010 principal = mkOption {
1111 type = types.str;
1212- description = "Which principal the rule applies to";
1212+ description = lib.mdDoc "Which principal the rule applies to";
1313 };
1414 access = mkOption {
1515 type = types.either
1616 (types.listOf (types.enum ["add" "cpw" "delete" "get" "list" "modify"]))
1717 (types.enum ["all"]);
1818 default = "all";
1919- description = "The changes the principal is allowed to make.";
1919+ description = lib.mdDoc "The changes the principal is allowed to make.";
2020 };
2121 target = mkOption {
2222 type = types.str;
2323 default = "*";
2424- description = "The principals that 'access' applies to.";
2424+ description = lib.mdDoc "The principals that 'access' applies to.";
2525 };
2626 };
2727 };
···3434 { principal = "*/admin"; access = "all"; }
3535 { principal = "admin"; access = "all"; }
3636 ];
3737- description = ''
3737+ description = lib.mdDoc ''
3838 The privileges granted to a user.
3939 '';
4040 };
···55555656 realms = mkOption {
5757 type = types.attrsOf (types.submodule realm);
5858- description = ''
5858+ description = lib.mdDoc ''
5959 The realm(s) to serve keys for.
6060 '';
6161 };
+3-3
nixos/modules/services/system/nscd.nix
···2020 enable = mkOption {
2121 type = types.bool;
2222 default = true;
2323- description = ''
2323+ description = lib.mdDoc ''
2424 Whether to enable the Name Service Cache Daemon.
2525 Disabling this is strongly discouraged, as this effectively disables NSS Lookups
2626 from all non-glibc NSS modules, including the ones provided by systemd.
···3030 config = mkOption {
3131 type = types.lines;
3232 default = builtins.readFile ./nscd.conf;
3333- description = "Configuration to use for Name Service Cache Daemon.";
3333+ description = lib.mdDoc "Configuration to use for Name Service Cache Daemon.";
3434 };
35353636 package = mkOption {
···4343 then pkgs.stdenv.cc.libc.bin
4444 else pkgs.glibc.bin;
4545 '';
4646- description = "package containing the nscd binary to be used by the service";
4646+ description = lib.mdDoc "package containing the nscd binary to be used by the service";
4747 };
48484949 };
+4-4
nixos/modules/services/ttys/getty.nix
···5252 loginOptions = mkOption {
5353 type = types.nullOr types.str;
5454 default = null;
5555- description = ''
5555+ description = lib.mdDoc ''
5656 Template for arguments to be passed to
5757- <citerefentry><refentrytitle>login</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
5757+ {manpage}`login(1)`.
58585959- See <citerefentry><refentrytitle>agetty</refentrytitle><manvolnum>1</manvolnum></citerefentry> for details,
5959+ See {manpage}`agetty(1)` for details,
6060 including security considerations. If unspecified, agetty
6161- will not be invoked with a <option>--login-options</option>
6161+ will not be invoked with a {option}`--login-options`
6262 option.
6363 '';
6464 example = "-h darkstar -- \\u";
+35-35
nixos/modules/services/web-apps/bookstack.nix
···38383939 user = mkOption {
4040 default = "bookstack";
4141- description = "User bookstack runs as.";
4141+ description = lib.mdDoc "User bookstack runs as.";
4242 type = types.str;
4343 };
44444545 group = mkOption {
4646 default = "bookstack";
4747- description = "Group bookstack runs as.";
4747+ description = lib.mdDoc "Group bookstack runs as.";
4848 type = types.str;
4949 };
50505151 appKeyFile = mkOption {
5252- description = ''
5252+ description = lib.mdDoc ''
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 <literal>head -c 32 /dev/urandom | base64</literal>.
5555+ generated with `head -c 32 /dev/urandom | base64`.
5656 '';
5757 example = "/run/keys/bookstack-appkey";
5858 type = types.path;
···6666 config.networking.hostName;
6767 defaultText = lib.literalExpression "config.networking.fqdn";
6868 example = "bookstack.example.com";
6969- description = ''
6969+ description = lib.mdDoc ''
7070 The hostname to serve BookStack on.
7171 '';
7272 };
73737474 appURL = mkOption {
7575- description = ''
7575+ description = lib.mdDoc ''
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: <literal>php artisan bookstack:update-url https://old.example.com https://new.example.com</literal>
7777+ If you change this in the future you may need to run a command to update stored URLs in the database. Command example: `php artisan bookstack:update-url https://old.example.com https://new.example.com`
7878 '';
7979 default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostname}";
8080 defaultText = ''http''${lib.optionalString tlsEnabled "s"}://''${cfg.hostname}'';
···8383 };
84848585 dataDir = mkOption {
8686- description = "BookStack data directory";
8686+ description = lib.mdDoc "BookStack data directory";
8787 default = "/var/lib/bookstack";
8888 type = types.path;
8989 };
···9292 host = mkOption {
9393 type = types.str;
9494 default = "localhost";
9595- description = "Database host address.";
9595+ description = lib.mdDoc "Database host address.";
9696 };
9797 port = mkOption {
9898 type = types.port;
9999 default = 3306;
100100- description = "Database host port.";
100100+ description = lib.mdDoc "Database host port.";
101101 };
102102 name = mkOption {
103103 type = types.str;
104104 default = "bookstack";
105105- description = "Database name.";
105105+ description = lib.mdDoc "Database name.";
106106 };
107107 user = mkOption {
108108 type = types.str;
109109 default = user;
110110 defaultText = literalExpression "user";
111111- description = "Database username.";
111111+ description = lib.mdDoc "Database username.";
112112 };
113113 passwordFile = mkOption {
114114 type = with types; nullOr path;
115115 default = null;
116116 example = "/run/keys/bookstack-dbpassword";
117117- description = ''
117117+ description = lib.mdDoc ''
118118 A file containing the password corresponding to
119119- <option>database.user</option>.
119119+ {option}`database.user`.
120120 '';
121121 };
122122 createLocally = mkOption {
123123 type = types.bool;
124124 default = false;
125125- description = "Create the database and database user locally.";
125125+ description = lib.mdDoc "Create the database and database user locally.";
126126 };
127127 };
128128···130130 driver = mkOption {
131131 type = types.enum [ "smtp" "sendmail" ];
132132 default = "smtp";
133133- description = "Mail driver to use.";
133133+ description = lib.mdDoc "Mail driver to use.";
134134 };
135135 host = mkOption {
136136 type = types.str;
137137 default = "localhost";
138138- description = "Mail host address.";
138138+ description = lib.mdDoc "Mail host address.";
139139 };
140140 port = mkOption {
141141 type = types.port;
142142 default = 1025;
143143- description = "Mail host port.";
143143+ description = lib.mdDoc "Mail host port.";
144144 };
145145 fromName = mkOption {
146146 type = types.str;
147147 default = "BookStack";
148148- description = "Mail \"from\" name.";
148148+ description = lib.mdDoc "Mail \"from\" name.";
149149 };
150150 from = mkOption {
151151 type = types.str;
152152 default = "mail@bookstackapp.com";
153153- description = "Mail \"from\" email.";
153153+ description = lib.mdDoc "Mail \"from\" email.";
154154 };
155155 user = mkOption {
156156 type = with types; nullOr str;
157157 default = null;
158158 example = "bookstack";
159159- description = "Mail username.";
159159+ description = lib.mdDoc "Mail username.";
160160 };
161161 passwordFile = mkOption {
162162 type = with types; nullOr path;
163163 default = null;
164164 example = "/run/keys/bookstack-mailpassword";
165165- description = ''
165165+ description = lib.mdDoc ''
166166 A file containing the password corresponding to
167167- <option>mail.user</option>.
167167+ {option}`mail.user`.
168168 '';
169169 };
170170 encryption = mkOption {
171171 type = with types; nullOr (enum [ "tls" ]);
172172 default = null;
173173- description = "SMTP encryption mechanism to use.";
173173+ description = lib.mdDoc "SMTP encryption mechanism to use.";
174174 };
175175 };
176176···178178 type = types.str;
179179 default = "18M";
180180 example = "1G";
181181- description = "The maximum size for uploads (e.g. images).";
181181+ description = lib.mdDoc "The maximum size for uploads (e.g. images).";
182182 };
183183184184 poolConfig = mkOption {
···191191 "pm.max_spare_servers" = 4;
192192 "pm.max_requests" = 500;
193193 };
194194- description = ''
195195- Options for the bookstack PHP pool. See the documentation on <literal>php-fpm.conf</literal>
194194+ description = lib.mdDoc ''
195195+ Options for the bookstack PHP pool. See the documentation on `php-fpm.conf`
196196 for details on configuration directives.
197197 '';
198198 };
···213213 enableACME = true;
214214 }
215215 '';
216216- description = ''
216216+ description = lib.mdDoc ''
217217 With this option, you can customize the nginx virtualHost settings.
218218 '';
219219 };
···256256 OIDC_ISSUER_DISCOVER = true;
257257 }
258258 '';
259259- description = ''
259259+ description = lib.mdDoc ''
260260 BookStack configuration options to set in the
261261- <filename>.env</filename> file.
261261+ {file}`.env` file.
262262263263- Refer to <link xlink:href="https://www.bookstackapp.com/docs/"/>
263263+ Refer to <https://www.bookstackapp.com/docs/>
264264 for details on supported values.
265265266266 Settings containing secret data should be set to an attribute
267267- set containing the attribute <literal>_secret</literal> - a
267267+ set containing the attribute `_secret` - a
268268 string pointing to a file containing the value the option
269269 should be set to. See the example to get a better picture of
270270- this: in the resulting <filename>.env</filename> file, the
271271- <literal>OIDC_CLIENT_SECRET</literal> key will be set to the
272272- contents of the <filename>/run/keys/oidc_secret</filename>
270270+ this: in the resulting {file}`.env` file, the
271271+ `OIDC_CLIENT_SECRET` key will be set to the
272272+ contents of the {file}`/run/keys/oidc_secret`
273273 file.
274274 '';
275275 };
+3-3
nixos/modules/services/web-apps/fluidd.nix
···10101111 package = mkOption {
1212 type = types.package;
1313- description = "Fluidd package to be used in the module";
1313+ description = lib.mdDoc "Fluidd package to be used in the module";
1414 default = pkgs.fluidd;
1515 defaultText = literalExpression "pkgs.fluidd";
1616 };
···1818 hostName = mkOption {
1919 type = types.str;
2020 default = "localhost";
2121- description = "Hostname to serve fluidd on";
2121+ description = lib.mdDoc "Hostname to serve fluidd on";
2222 };
23232424 nginx = mkOption {
···3030 serverAliases = [ "fluidd.''${config.networking.domain}" ];
3131 }
3232 '';
3333- description = "Extra configuration for the nginx virtual host of fluidd.";
3333+ description = lib.mdDoc "Extra configuration for the nginx virtual host of fluidd.";
3434 };
3535 };
3636
+8-8
nixos/modules/services/web-apps/jirafeau.nix
···2525 adminPasswordSha256 = mkOption {
2626 type = types.str;
2727 default = "";
2828- description = ''
2828+ description = lib.mdDoc ''
2929 SHA-256 of the desired administration password. Leave blank/unset for no password.
3030 '';
3131 };
···3333 dataDir = mkOption {
3434 type = types.path;
3535 default = "/var/lib/jirafeau/data/";
3636- description = "Location of Jirafeau storage directory.";
3636+ description = lib.mdDoc "Location of Jirafeau storage directory.";
3737 };
38383939 enable = mkEnableOption "Jirafeau file upload application.";
···5858 hostName = mkOption {
5959 type = types.str;
6060 default = "localhost";
6161- description = "URL of instance. Must have trailing slash.";
6161+ description = lib.mdDoc "URL of instance. Must have trailing slash.";
6262 };
63636464 maxUploadSizeMegabytes = mkOption {
6565 type = types.int;
6666 default = 0;
6767- description = "Maximum upload size of accepted files.";
6767+ description = lib.mdDoc "Maximum upload size of accepted files.";
6868 };
69697070 maxUploadTimeout = mkOption {
···8989 serverAliases = [ "wiki.''${config.networking.domain}" ];
9090 }
9191 '';
9292- description = "Extra configuration for the nginx virtual host of Jirafeau.";
9292+ description = lib.mdDoc "Extra configuration for the nginx virtual host of Jirafeau.";
9393 };
94949595 package = mkOption {
9696 type = types.package;
9797 default = pkgs.jirafeau;
9898 defaultText = literalExpression "pkgs.jirafeau";
9999- description = "Jirafeau package to use";
9999+ description = lib.mdDoc "Jirafeau package to use";
100100 };
101101102102 poolConfig = mkOption {
···109109 "pm.max_spare_servers" = 4;
110110 "pm.max_requests" = 500;
111111 };
112112- description = ''
113113- Options for Jirafeau PHP pool. See documentation on <literal>php-fpm.conf</literal> for
112112+ description = lib.mdDoc ''
113113+ Options for Jirafeau PHP pool. See documentation on `php-fpm.conf` for
114114 details on configuration directives.
115115 '';
116116 };
+16-16
nixos/modules/services/web-apps/limesurvey.nix
···3939 type = types.enum [ "mysql" "pgsql" "odbc" "mssql" ];
4040 example = "pgsql";
4141 default = "mysql";
4242- description = "Database engine to use.";
4242+ description = lib.mdDoc "Database engine to use.";
4343 };
44444545 host = mkOption {
4646 type = types.str;
4747 default = "localhost";
4848- description = "Database host address.";
4848+ description = lib.mdDoc "Database host address.";
4949 };
50505151 port = mkOption {
5252 type = types.int;
5353 default = if cfg.database.type == "pgsql" then 5442 else 3306;
5454 defaultText = literalExpression "3306";
5555- description = "Database host port.";
5555+ description = lib.mdDoc "Database host port.";
5656 };
57575858 name = mkOption {
5959 type = types.str;
6060 default = "limesurvey";
6161- description = "Database name.";
6161+ description = lib.mdDoc "Database name.";
6262 };
63636464 user = mkOption {
6565 type = types.str;
6666 default = "limesurvey";
6767- description = "Database user.";
6767+ description = lib.mdDoc "Database user.";
6868 };
69697070 passwordFile = mkOption {
7171 type = types.nullOr types.path;
7272 default = null;
7373 example = "/run/keys/limesurvey-dbpassword";
7474- description = ''
7474+ description = lib.mdDoc ''
7575 A file containing the password corresponding to
7676- <option>database.user</option>.
7676+ {option}`database.user`.
7777 '';
7878 };
7979···8585 else null
8686 ;
8787 defaultText = literalExpression "/run/mysqld/mysqld.sock";
8888- description = "Path to the unix socket file to use for authentication.";
8888+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
8989 };
90909191 createLocally = mkOption {
9292 type = types.bool;
9393 default = cfg.database.type == "mysql";
9494 defaultText = literalExpression "true";
9595- description = ''
9595+ description = lib.mdDoc ''
9696 Create the database and database user locally.
9797 This currently only applies if database type "mysql" is selected.
9898 '';
···109109 enableACME = true;
110110 }
111111 '';
112112- description = ''
113113- Apache configuration can be done by adapting <literal>services.httpd.virtualHosts.<name></literal>.
114114- See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
112112+ description = lib.mdDoc ''
113113+ Apache configuration can be done by adapting `services.httpd.virtualHosts.<name>`.
114114+ See [](#opt-services.httpd.virtualHosts) for further information.
115115 '';
116116 };
117117···125125 "pm.max_spare_servers" = 4;
126126 "pm.max_requests" = 500;
127127 };
128128- description = ''
129129- Options for the LimeSurvey PHP pool. See the documentation on <literal>php-fpm.conf</literal>
128128+ description = lib.mdDoc ''
129129+ Options for the LimeSurvey PHP pool. See the documentation on `php-fpm.conf`
130130 for details on configuration directives.
131131 '';
132132 };
···134134 config = mkOption {
135135 type = configType;
136136 default = {};
137137- description = ''
137137+ description = lib.mdDoc ''
138138 LimeSurvey configuration. Refer to
139139- <link xlink:href="https://manual.limesurvey.org/Optional_settings"/>
139139+ <https://manual.limesurvey.org/Optional_settings>
140140 for details on supported values.
141141 '';
142142 };
+8-8
nixos/modules/services/web-apps/matomo.nix
···3232 enable = mkOption {
3333 type = types.bool;
3434 default = false;
3535- description = ''
3535+ description = lib.mdDoc ''
3636 Enable Matomo web analytics with php-fpm backend.
3737 Either the nginx option or the webServerUser option is mandatory.
3838 '';
···40404141 package = mkOption {
4242 type = types.package;
4343- description = ''
4343+ description = lib.mdDoc ''
4444 Matomo package for the service to use.
4545 This can be used to point to newer releases from nixos-unstable,
4646 as they don't get backported if they are not security-relevant.
···6464 periodicArchiveProcessing = mkOption {
6565 type = types.bool;
6666 default = true;
6767- description = ''
6767+ description = lib.mdDoc ''
6868 Enable periodic archive processing, which generates aggregated reports from the visits.
69697070 This means that you can safely disable browser triggers for Matomo archiving,
7171 and safely enable to delete old visitor logs.
7272 Before deleting visitor logs,
7373- make sure though that you run <literal>systemctl start matomo-archive-processing.service</literal>
7373+ make sure though that you run `systemctl start matomo-archive-processing.service`
7474 at least once without errors if you have already collected data before.
7575 '';
7676 };
···8484 else "${user}.''${config.${options.networking.hostName}}"
8585 '';
8686 example = "matomo.yourdomain.org";
8787- description = ''
8787+ description = lib.mdDoc ''
8888 URL of the host, without https prefix. You may want to change it if you
8989 run Matomo on a different URL than matomo.yourdomain.
9090 '';
···112112 enableACME = false;
113113 }
114114 '';
115115- description = ''
115115+ description = lib.mdDoc ''
116116 With this option, you can customize an nginx virtualHost which already has sensible defaults for Matomo.
117117 Either this option or the webServerUser option is mandatory.
118118 Set this to {} to just enable the virtualHost if you don't need any customization.
119119- If enabled, then by default, the <option>serverName</option> is
120120- <literal>''${user}.''${config.networking.hostName}.''${config.networking.domain}</literal>,
119119+ If enabled, then by default, the {option}`serverName` is
120120+ `''${user}.''${config.networking.hostName}.''${config.networking.domain}`,
121121 SSL is active, and certificates are acquired via ACME.
122122 If this is set to null (the default), no nginx virtualHost will be configured.
123123 '';
+27-27
nixos/modules/services/web-apps/mediawiki.nix
···177177 type = types.package;
178178 default = pkgs.mediawiki;
179179 defaultText = literalExpression "pkgs.mediawiki";
180180- description = "Which MediaWiki package to use.";
180180+ description = lib.mdDoc "Which MediaWiki package to use.";
181181 };
182182183183 name = mkOption {
184184 type = types.str;
185185 default = "MediaWiki";
186186 example = "Foobar Wiki";
187187- description = "Name of the wiki.";
187187+ description = lib.mdDoc "Name of the wiki.";
188188 };
189189190190 uploadsDir = mkOption {
191191 type = types.nullOr types.path;
192192 default = "${stateDir}/uploads";
193193- description = ''
193193+ description = lib.mdDoc ''
194194 This directory is used for uploads of pictures. The directory passed here is automatically
195195 created and permissions adjusted as required.
196196 '';
···198198199199 passwordFile = mkOption {
200200 type = types.path;
201201- description = "A file containing the initial password for the admin user.";
201201+ description = lib.mdDoc "A file containing the initial password for the admin user.";
202202 example = "/run/keys/mediawiki-password";
203203 };
204204205205 skins = mkOption {
206206 default = {};
207207 type = types.attrsOf types.path;
208208- description = ''
209209- Attribute set of paths whose content is copied to the <filename>skins</filename>
208208+ description = lib.mdDoc ''
209209+ Attribute set of paths whose content is copied to the {file}`skins`
210210 subdirectory of the MediaWiki installation in addition to the default skins.
211211 '';
212212 };
···214214 extensions = mkOption {
215215 default = {};
216216 type = types.attrsOf (types.nullOr types.path);
217217- description = ''
218218- Attribute set of paths whose content is copied to the <filename>extensions</filename>
217217+ description = lib.mdDoc ''
218218+ Attribute set of paths whose content is copied to the {file}`extensions`
219219 subdirectory of the MediaWiki installation and enabled in configuration.
220220221221- Use <literal>null</literal> instead of path to enable extensions that are part of MediaWiki.
221221+ Use `null` instead of path to enable extensions that are part of MediaWiki.
222222 '';
223223 example = literalExpression ''
224224 {
···235235 type = mkOption {
236236 type = types.enum [ "mysql" "postgres" "sqlite" "mssql" "oracle" ];
237237 default = "mysql";
238238- description = "Database engine to use. MySQL/MariaDB is the database of choice by MediaWiki developers.";
238238+ description = lib.mdDoc "Database engine to use. MySQL/MariaDB is the database of choice by MediaWiki developers.";
239239 };
240240241241 host = mkOption {
242242 type = types.str;
243243 default = "localhost";
244244- description = "Database host address.";
244244+ description = lib.mdDoc "Database host address.";
245245 };
246246247247 port = mkOption {
248248 type = types.port;
249249 default = 3306;
250250- description = "Database host port.";
250250+ description = lib.mdDoc "Database host port.";
251251 };
252252253253 name = mkOption {
254254 type = types.str;
255255 default = "mediawiki";
256256- description = "Database name.";
256256+ description = lib.mdDoc "Database name.";
257257 };
258258259259 user = mkOption {
260260 type = types.str;
261261 default = "mediawiki";
262262- description = "Database user.";
262262+ description = lib.mdDoc "Database user.";
263263 };
264264265265 passwordFile = mkOption {
266266 type = types.nullOr types.path;
267267 default = null;
268268 example = "/run/keys/mediawiki-dbpassword";
269269- description = ''
269269+ description = lib.mdDoc ''
270270 A file containing the password corresponding to
271271- <option>database.user</option>.
271271+ {option}`database.user`.
272272 '';
273273 };
274274275275 tablePrefix = mkOption {
276276 type = types.nullOr types.str;
277277 default = null;
278278- description = ''
278278+ description = lib.mdDoc ''
279279 If you only have access to a single database and wish to install more than
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 <https://www.mediawiki.org/wiki/Manual:$wgDBprefix>.
284284 '';
285285 };
286286···288288 type = types.nullOr types.path;
289289 default = if cfg.database.createLocally then "/run/mysqld/mysqld.sock" else null;
290290 defaultText = literalExpression "/run/mysqld/mysqld.sock";
291291- description = "Path to the unix socket file to use for authentication.";
291291+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
292292 };
293293294294 createLocally = mkOption {
295295 type = types.bool;
296296 default = cfg.database.type == "mysql";
297297 defaultText = literalExpression "true";
298298- description = ''
298298+ description = lib.mdDoc ''
299299 Create the database and database user locally.
300300 This currently only applies if database type "mysql" is selected.
301301 '';
···312312 enableACME = true;
313313 }
314314 '';
315315- description = ''
316316- Apache configuration can be done by adapting <option>services.httpd.virtualHosts</option>.
317317- See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
315315+ description = lib.mdDoc ''
316316+ Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
317317+ See [](#opt-services.httpd.virtualHosts) for further information.
318318 '';
319319 };
320320···328328 "pm.max_spare_servers" = 4;
329329 "pm.max_requests" = 500;
330330 };
331331- description = ''
332332- Options for the MediaWiki PHP pool. See the documentation on <literal>php-fpm.conf</literal>
331331+ description = lib.mdDoc ''
332332+ Options for the MediaWiki PHP pool. See the documentation on `php-fpm.conf`
333333 for details on configuration directives.
334334 '';
335335 };
336336337337 extraConfig = mkOption {
338338 type = types.lines;
339339- description = ''
339339+ description = lib.mdDoc ''
340340 Any additional text to be appended to MediaWiki's
341341 LocalSettings.php configuration file. For configuration
342342- settings, see <link xlink:href="https://www.mediawiki.org/wiki/Manual:Configuration_settings"/>.
342342+ settings, see <https://www.mediawiki.org/wiki/Manual:Configuration_settings>.
343343 '';
344344 default = "";
345345 example = ''
+17-17
nixos/modules/services/web-apps/moodle.nix
···6868 type = types.package;
6969 default = pkgs.moodle;
7070 defaultText = literalExpression "pkgs.moodle";
7171- description = "The Moodle package to use.";
7171+ description = lib.mdDoc "The Moodle package to use.";
7272 };
73737474 initialPassword = mkOption {
7575 type = types.str;
7676 example = "correcthorsebatterystaple";
7777- description = ''
7777+ description = lib.mdDoc ''
7878 Specifies the initial password for the admin, i.e. the password assigned if the user does not already exist.
7979 The password specified here is world-readable in the Nix store, so it should be changed promptly.
8080 '';
···8484 type = mkOption {
8585 type = types.enum [ "mysql" "pgsql" ];
8686 default = "mysql";
8787- description = "Database engine to use.";
8787+ description = lib.mdDoc "Database engine to use.";
8888 };
89899090 host = mkOption {
9191 type = types.str;
9292 default = "localhost";
9393- description = "Database host address.";
9393+ description = lib.mdDoc "Database host address.";
9494 };
95959696 port = mkOption {
9797 type = types.int;
9898- description = "Database host port.";
9898+ description = lib.mdDoc "Database host port.";
9999 default = {
100100 mysql = 3306;
101101 pgsql = 5432;
···106106 name = mkOption {
107107 type = types.str;
108108 default = "moodle";
109109- description = "Database name.";
109109+ description = lib.mdDoc "Database name.";
110110 };
111111112112 user = mkOption {
113113 type = types.str;
114114 default = "moodle";
115115- description = "Database user.";
115115+ description = lib.mdDoc "Database user.";
116116 };
117117118118 passwordFile = mkOption {
119119 type = types.nullOr types.path;
120120 default = null;
121121 example = "/run/keys/moodle-dbpassword";
122122- description = ''
122122+ description = lib.mdDoc ''
123123 A file containing the password corresponding to
124124- <option>database.user</option>.
124124+ {option}`database.user`.
125125 '';
126126 };
127127···132132 else if pgsqlLocal then "/run/postgresql"
133133 else null;
134134 defaultText = literalExpression "/run/mysqld/mysqld.sock";
135135- description = "Path to the unix socket file to use for authentication.";
135135+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
136136 };
137137138138 createLocally = mkOption {
···152152 enableACME = true;
153153 }
154154 '';
155155- description = ''
156156- Apache configuration can be done by adapting <option>services.httpd.virtualHosts</option>.
157157- See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
155155+ description = lib.mdDoc ''
156156+ Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
157157+ See [](#opt-services.httpd.virtualHosts) for further information.
158158 '';
159159 };
160160···168168 "pm.max_spare_servers" = 4;
169169 "pm.max_requests" = 500;
170170 };
171171- description = ''
172172- Options for the Moodle PHP pool. See the documentation on <literal>php-fpm.conf</literal>
171171+ description = lib.mdDoc ''
172172+ Options for the Moodle PHP pool. See the documentation on `php-fpm.conf`
173173 for details on configuration directives.
174174 '';
175175 };
···177177 extraConfig = mkOption {
178178 type = types.lines;
179179 default = "";
180180- description = ''
180180+ description = lib.mdDoc ''
181181 Any additional text to be appended to the config.php
182182 configuration file. This is a PHP script. For configuration
183183- details, see <link xlink:href="https://docs.moodle.org/37/en/Configuration_file"/>.
183183+ details, see <https://docs.moodle.org/37/en/Configuration_file>.
184184 '';
185185 example = ''
186186 $CFG->disableupdatenotifications = true;
+38-38
nixos/modules/services/web-apps/snipe-it.nix
···32323333 user = mkOption {
3434 default = "snipeit";
3535- description = "User snipe-it runs as.";
3535+ description = lib.mdDoc "User snipe-it runs as.";
3636 type = types.str;
3737 };
38383939 group = mkOption {
4040 default = "snipeit";
4141- description = "Group snipe-it runs as.";
4141+ description = lib.mdDoc "Group snipe-it runs as.";
4242 type = types.str;
4343 };
44444545 appKeyFile = mkOption {
4646- description = ''
4646+ description = lib.mdDoc ''
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 <literal>head -c 32 /dev/urandom | base64</literal>.
4949+ generated with `head -c 32 /dev/urandom | base64`.
5050 '';
5151 example = "/run/keys/snipe-it/appkey";
5252 type = types.path;
···6060 config.networking.hostName;
6161 defaultText = lib.literalExpression "config.networking.fqdn";
6262 example = "snipe-it.example.com";
6363- description = ''
6363+ description = lib.mdDoc ''
6464 The hostname to serve Snipe-IT on.
6565 '';
6666 };
67676868 appURL = mkOption {
6969- description = ''
6969+ description = lib.mdDoc ''
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: <literal>snipe-it snipe-it:update-url https://old.example.com https://new.example.com</literal>
7272+ Command example: `snipe-it snipe-it:update-url https://old.example.com https://new.example.com`
7373 '';
7474 default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostName}";
7575 defaultText = ''
···8080 };
81818282 dataDir = mkOption {
8383- description = "snipe-it data directory";
8383+ description = lib.mdDoc "snipe-it data directory";
8484 default = "/var/lib/snipe-it";
8585 type = types.path;
8686 };
···8989 host = mkOption {
9090 type = types.str;
9191 default = "localhost";
9292- description = "Database host address.";
9292+ description = lib.mdDoc "Database host address.";
9393 };
9494 port = mkOption {
9595 type = types.port;
9696 default = 3306;
9797- description = "Database host port.";
9797+ description = lib.mdDoc "Database host port.";
9898 };
9999 name = mkOption {
100100 type = types.str;
101101 default = "snipeit";
102102- description = "Database name.";
102102+ description = lib.mdDoc "Database name.";
103103 };
104104 user = mkOption {
105105 type = types.str;
106106 default = user;
107107 defaultText = literalExpression "user";
108108- description = "Database username.";
108108+ description = lib.mdDoc "Database username.";
109109 };
110110 passwordFile = mkOption {
111111 type = with types; nullOr path;
112112 default = null;
113113 example = "/run/keys/snipe-it/dbpassword";
114114- description = ''
114114+ description = lib.mdDoc ''
115115 A file containing the password corresponding to
116116- <option>database.user</option>.
116116+ {option}`database.user`.
117117 '';
118118 };
119119 createLocally = mkOption {
120120 type = types.bool;
121121 default = false;
122122- description = "Create the database and database user locally.";
122122+ description = lib.mdDoc "Create the database and database user locally.";
123123 };
124124 };
125125···127127 driver = mkOption {
128128 type = types.enum [ "smtp" "sendmail" ];
129129 default = "smtp";
130130- description = "Mail driver to use.";
130130+ description = lib.mdDoc "Mail driver to use.";
131131 };
132132 host = mkOption {
133133 type = types.str;
134134 default = "localhost";
135135- description = "Mail host address.";
135135+ description = lib.mdDoc "Mail host address.";
136136 };
137137 port = mkOption {
138138 type = types.port;
139139 default = 1025;
140140- description = "Mail host port.";
140140+ description = lib.mdDoc "Mail host port.";
141141 };
142142 encryption = mkOption {
143143 type = with types; nullOr (enum [ "tls" "ssl" ]);
144144 default = null;
145145- description = "SMTP encryption mechanism to use.";
145145+ description = lib.mdDoc "SMTP encryption mechanism to use.";
146146 };
147147 user = mkOption {
148148 type = with types; nullOr str;
149149 default = null;
150150 example = "snipeit";
151151- description = "Mail username.";
151151+ description = lib.mdDoc "Mail username.";
152152 };
153153 passwordFile = mkOption {
154154 type = with types; nullOr path;
155155 default = null;
156156 example = "/run/keys/snipe-it/mailpassword";
157157- description = ''
157157+ description = lib.mdDoc ''
158158 A file containing the password corresponding to
159159- <option>mail.user</option>.
159159+ {option}`mail.user`.
160160 '';
161161 };
162162 backupNotificationAddress = mkOption {
163163 type = types.str;
164164 default = "backup@example.com";
165165- description = "Email Address to send Backup Notifications to.";
165165+ description = lib.mdDoc "Email Address to send Backup Notifications to.";
166166 };
167167 from = {
168168 name = mkOption {
169169 type = types.str;
170170 default = "Snipe-IT Asset Management";
171171- description = "Mail \"from\" name.";
171171+ description = lib.mdDoc "Mail \"from\" name.";
172172 };
173173 address = mkOption {
174174 type = types.str;
175175 default = "mail@example.com";
176176- description = "Mail \"from\" address.";
176176+ description = lib.mdDoc "Mail \"from\" address.";
177177 };
178178 };
179179 replyTo = {
180180 name = mkOption {
181181 type = types.str;
182182 default = "Snipe-IT Asset Management";
183183- description = "Mail \"reply-to\" name.";
183183+ description = lib.mdDoc "Mail \"reply-to\" name.";
184184 };
185185 address = mkOption {
186186 type = types.str;
187187 default = "mail@example.com";
188188- description = "Mail \"reply-to\" address.";
188188+ description = lib.mdDoc "Mail \"reply-to\" address.";
189189 };
190190 };
191191 };
···194194 type = types.str;
195195 default = "18M";
196196 example = "1G";
197197- description = "The maximum size for uploads (e.g. images).";
197197+ description = lib.mdDoc "The maximum size for uploads (e.g. images).";
198198 };
199199200200 poolConfig = mkOption {
···207207 "pm.max_spare_servers" = 4;
208208 "pm.max_requests" = 500;
209209 };
210210- description = ''
211211- Options for the snipe-it PHP pool. See the documentation on <literal>php-fpm.conf</literal>
210210+ description = lib.mdDoc ''
211211+ Options for the snipe-it PHP pool. See the documentation on `php-fpm.conf`
212212 for details on configuration directives.
213213 '';
214214 };
···229229 enableACME = true;
230230 }
231231 '';
232232- description = ''
232232+ description = lib.mdDoc ''
233233 With this option, you can customize the nginx virtualHost settings.
234234 '';
235235 };
···272272 OIDC_ISSUER_DISCOVER = true;
273273 }
274274 '';
275275- description = ''
275275+ description = lib.mdDoc ''
276276 Snipe-IT configuration options to set in the
277277- <filename>.env</filename> file.
278278- Refer to <link xlink:href="https://snipe-it.readme.io/docs/configuration"/>
277277+ {file}`.env` file.
278278+ Refer to <https://snipe-it.readme.io/docs/configuration>
279279 for details on supported values.
280280281281 Settings containing secret data should be set to an attribute
282282- set containing the attribute <literal>_secret</literal> - a
282282+ set containing the attribute `_secret` - a
283283 string pointing to a file containing the value the option
284284 should be set to. See the example to get a better picture of
285285- this: in the resulting <filename>.env</filename> file, the
286286- <literal>OIDC_CLIENT_SECRET</literal> key will be set to the
287287- contents of the <filename>/run/keys/oidc_secret</filename>
285285+ this: in the resulting {file}`.env` file, the
286286+ `OIDC_CLIENT_SECRET` key will be set to the
287287+ contents of the {file}`/run/keys/oidc_secret`
288288 file.
289289 '';
290290 };
+24-24
nixos/modules/services/web-apps/wordpress.nix
···8282 type = types.package;
8383 default = pkgs.wordpress;
8484 defaultText = literalExpression "pkgs.wordpress";
8585- description = "Which WordPress package to use.";
8585+ description = lib.mdDoc "Which WordPress package to use.";
8686 };
87878888 uploadsDir = mkOption {
8989 type = types.path;
9090 default = "/var/lib/wordpress/${name}/uploads";
9191- description = ''
9191+ description = lib.mdDoc ''
9292 This directory is used for uploads of pictures. The directory passed here is automatically
9393 created and permissions adjusted as required.
9494 '';
···152152 host = mkOption {
153153 type = types.str;
154154 default = "localhost";
155155- description = "Database host address.";
155155+ description = lib.mdDoc "Database host address.";
156156 };
157157158158 port = mkOption {
159159 type = types.port;
160160 default = 3306;
161161- description = "Database host port.";
161161+ description = lib.mdDoc "Database host port.";
162162 };
163163164164 name = mkOption {
165165 type = types.str;
166166 default = "wordpress";
167167- description = "Database name.";
167167+ description = lib.mdDoc "Database name.";
168168 };
169169170170 user = mkOption {
171171 type = types.str;
172172 default = "wordpress";
173173- description = "Database user.";
173173+ description = lib.mdDoc "Database user.";
174174 };
175175176176 passwordFile = mkOption {
177177 type = types.nullOr types.path;
178178 default = null;
179179 example = "/run/keys/wordpress-dbpassword";
180180- description = ''
180180+ description = lib.mdDoc ''
181181 A file containing the password corresponding to
182182- <option>database.user</option>.
182182+ {option}`database.user`.
183183 '';
184184 };
185185186186 tablePrefix = mkOption {
187187 type = types.str;
188188 default = "wp_";
189189- description = ''
189189+ description = lib.mdDoc ''
190190 The $table_prefix is the value placed in the front of your database tables.
191191 Change the value if you want to use something other than wp_ for your database
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 <https://codex.wordpress.org/Editing_wp-config.php#table_prefix>.
196196 '';
197197 };
198198···200200 type = types.nullOr types.path;
201201 default = null;
202202 defaultText = literalExpression "/run/mysqld/mysqld.sock";
203203- description = "Path to the unix socket file to use for authentication.";
203203+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
204204 };
205205206206 createLocally = mkOption {
207207 type = types.bool;
208208 default = true;
209209- description = "Create the database and database user locally.";
209209+ description = lib.mdDoc "Create the database and database user locally.";
210210 };
211211 };
212212···219219 enableACME = true;
220220 }
221221 '';
222222- description = ''
223223- Apache configuration can be done by adapting <option>services.httpd.virtualHosts</option>.
222222+ description = lib.mdDoc ''
223223+ Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
224224 '';
225225 };
226226···234234 "pm.max_spare_servers" = 4;
235235 "pm.max_requests" = 500;
236236 };
237237- description = ''
238238- Options for the WordPress PHP pool. See the documentation on <literal>php-fpm.conf</literal>
237237+ description = lib.mdDoc ''
238238+ Options for the WordPress PHP pool. See the documentation on `php-fpm.conf`
239239 for details on configuration directives.
240240 '';
241241 };
···243243 extraConfig = mkOption {
244244 type = types.lines;
245245 default = "";
246246- description = ''
246246+ description = lib.mdDoc ''
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 <https://codex.wordpress.org/Editing_wp-config.php>.
250250 '';
251251 example = ''
252252 define( 'AUTOSAVE_INTERVAL', 60 ); // Seconds
···265265 sites = mkOption {
266266 type = types.attrsOf (types.submodule siteOpts);
267267 default = {};
268268- description = "Specification of one or more WordPress sites to serve";
268268+ description = lib.mdDoc "Specification of one or more WordPress sites to serve";
269269 };
270270271271 webserver = mkOption {
272272 type = types.enum [ "httpd" "nginx" "caddy" ];
273273 default = "httpd";
274274- description = ''
274274+ description = lib.mdDoc ''
275275 Whether to use apache2 or nginx for virtual host management.
276276277277- Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.<name></literal>.
278278- See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
277277+ Further nginx configuration can be done by adapting `services.nginx.virtualHosts.<name>`.
278278+ See [](#opt-services.nginx.virtualHosts) for further information.
279279280280- Further apache2 configuration can be done by adapting <literal>services.httpd.virtualHosts.<name></literal>.
281281- See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
280280+ Further apache2 configuration can be done by adapting `services.httpd.virtualHosts.<name>`.
281281+ See [](#opt-services.httpd.virtualHosts) for further information.
282282 '';
283283 };
284284
+18-18
nixos/modules/services/web-apps/zabbix.nix
···4646 type = types.package;
4747 default = pkgs.zabbix.web;
4848 defaultText = literalExpression "zabbix.web";
4949- description = "Which Zabbix package to use.";
4949+ description = lib.mdDoc "Which Zabbix package to use.";
5050 };
51515252 server = {
5353 port = mkOption {
5454 type = types.int;
5555- description = "The port of the Zabbix server to connect to.";
5555+ description = lib.mdDoc "The port of the Zabbix server to connect to.";
5656 default = 10051;
5757 };
58585959 address = mkOption {
6060 type = types.str;
6161- description = "The IP address or hostname of the Zabbix server to connect to.";
6161+ description = lib.mdDoc "The IP address or hostname of the Zabbix server to connect to.";
6262 default = "localhost";
6363 };
6464 };
···6868 type = types.enum [ "mysql" "pgsql" "oracle" ];
6969 example = "mysql";
7070 default = "pgsql";
7171- description = "Database engine to use.";
7171+ description = lib.mdDoc "Database engine to use.";
7272 };
73737474 host = mkOption {
7575 type = types.str;
7676 default = "";
7777- description = "Database host address.";
7777+ description = lib.mdDoc "Database host address.";
7878 };
79798080 port = mkOption {
···8888 else if config.${opt.database.type} == "pgsql" then config.${options.services.postgresql.port}
8989 else 1521
9090 '';
9191- description = "Database host port.";
9191+ description = lib.mdDoc "Database host port.";
9292 };
93939494 name = mkOption {
9595 type = types.str;
9696 default = "zabbix";
9797- description = "Database name.";
9797+ description = lib.mdDoc "Database name.";
9898 };
9999100100 user = mkOption {
101101 type = types.str;
102102 default = "zabbix";
103103- description = "Database user.";
103103+ description = lib.mdDoc "Database user.";
104104 };
105105106106 passwordFile = mkOption {
107107 type = types.nullOr types.path;
108108 default = null;
109109 example = "/run/keys/zabbix-dbpassword";
110110- description = ''
110110+ description = lib.mdDoc ''
111111 A file containing the password corresponding to
112112- <option>database.user</option>.
112112+ {option}`database.user`.
113113 '';
114114 };
115115···117117 type = types.nullOr types.path;
118118 default = null;
119119 example = "/run/postgresql";
120120- description = "Path to the unix socket file to use for authentication.";
120120+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
121121 };
122122 };
123123···131131 enableACME = true;
132132 }
133133 '';
134134- description = ''
135135- Apache configuration can be done by adapting <literal>services.httpd.virtualHosts.<name></literal>.
136136- See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
134134+ description = lib.mdDoc ''
135135+ Apache configuration can be done by adapting `services.httpd.virtualHosts.<name>`.
136136+ See [](#opt-services.httpd.virtualHosts) for further information.
137137 '';
138138 };
139139···147147 "pm.max_spare_servers" = 4;
148148 "pm.max_requests" = 500;
149149 };
150150- description = ''
151151- Options for the Zabbix PHP pool. See the documentation on <literal>php-fpm.conf</literal> for details on configuration directives.
150150+ description = lib.mdDoc ''
151151+ Options for the Zabbix PHP pool. See the documentation on `php-fpm.conf` for details on configuration directives.
152152 '';
153153 };
154154155155 extraConfig = mkOption {
156156 type = types.lines;
157157 default = "";
158158- description = ''
159159- Additional configuration to be copied verbatim into <filename>zabbix.conf.php</filename>.
158158+ description = lib.mdDoc ''
159159+ Additional configuration to be copied verbatim into {file}`zabbix.conf.php`.
160160 '';
161161 };
162162
···88 hostName = mkOption {
99 type = types.str;
1010 default = name;
1111- description = "Canonical hostname for the server.";
1111+ description = lib.mdDoc "Canonical hostname for the server.";
1212 };
13131414 serverAliases = mkOption {
1515 type = types.listOf types.str;
1616 default = [];
1717 example = ["www.example.org" "www.example.org:8080" "example.org"];
1818- description = ''
1818+ description = lib.mdDoc ''
1919 Additional names of virtual hosts served by this virtual host configuration.
2020 '';
2121 };
···2525 options = {
2626 port = mkOption {
2727 type = types.port;
2828- description = "Port to listen on";
2828+ description = lib.mdDoc "Port to listen on";
2929 };
3030 ip = mkOption {
3131 type = types.str;
3232 default = "*";
3333- description = "IP to listen on. 0.0.0.0 for IPv4 only, * for all.";
3333+ description = lib.mdDoc "IP to listen on. 0.0.0.0 for IPv4 only, * for all.";
3434 };
3535 ssl = mkOption {
3636 type = types.bool;
3737 default = false;
3838- description = "Whether to enable SSL (https) support.";
3838+ description = lib.mdDoc "Whether to enable SSL (https) support.";
3939 };
4040 };
4141 }));
···6161 listenAddresses = mkOption {
6262 type = with types; nonEmptyListOf str;
63636464- description = ''
6464+ description = lib.mdDoc ''
6565 Listen addresses for this virtual host.
6666- Compared to <literal>listen</literal> this only sets the addreses
6666+ Compared to `listen` this only sets the addreses
6767 and the ports are chosen automatically.
6868 '';
6969 default = [ "*" ];
···7979 addSSL = mkOption {
8080 type = types.bool;
8181 default = false;
8282- description = ''
8282+ description = lib.mdDoc ''
8383 Whether to enable HTTPS in addition to plain HTTP. This will set defaults for
8484- <literal>listen</literal> to listen on all interfaces on the respective default
8484+ `listen` to listen on all interfaces on the respective default
8585 ports (80, 443).
8686 '';
8787 };
···8989 onlySSL = mkOption {
9090 type = types.bool;
9191 default = false;
9292- description = ''
9292+ description = lib.mdDoc ''
9393 Whether to enable HTTPS and reject plain HTTP connections. This will set
9494- defaults for <literal>listen</literal> to listen on all interfaces on port 443.
9494+ defaults for `listen` to listen on all interfaces on port 443.
9595 '';
9696 };
97979898 forceSSL = mkOption {
9999 type = types.bool;
100100 default = false;
101101- description = ''
101101+ description = lib.mdDoc ''
102102 Whether to add a separate nginx server block that permanently redirects (301)
103103 all plain HTTP traffic to HTTPS. This will set defaults for
104104- <literal>listen</literal> to listen on all interfaces on the respective default
104104+ `listen` to listen on all interfaces on the respective default
105105 ports (80, 443), where the non-SSL listens are used for the redirect vhosts.
106106 '';
107107 };
···109109 enableACME = mkOption {
110110 type = types.bool;
111111 default = false;
112112- description = ''
112112+ description = lib.mdDoc ''
113113 Whether to ask Let's Encrypt to sign a certificate for this vhost.
114114- Alternately, you can use an existing certificate through <option>useACMEHost</option>.
114114+ Alternately, you can use an existing certificate through {option}`useACMEHost`.
115115 '';
116116 };
117117···130130 acmeRoot = mkOption {
131131 type = types.nullOr types.str;
132132 default = "/var/lib/acme/acme-challenge";
133133- description = ''
133133+ description = lib.mdDoc ''
134134 Directory for the acme challenge which is PUBLIC, don't put certs or keys in here.
135135 Set to null to inherit from config.security.acme.
136136 '';
···139139 sslServerCert = mkOption {
140140 type = types.path;
141141 example = "/var/host.cert";
142142- description = "Path to server SSL certificate.";
142142+ description = lib.mdDoc "Path to server SSL certificate.";
143143 };
144144145145 sslServerKey = mkOption {
146146 type = types.path;
147147 example = "/var/host.key";
148148- description = "Path to server SSL certificate key.";
148148+ description = lib.mdDoc "Path to server SSL certificate key.";
149149 };
150150151151 sslServerChain = mkOption {
152152 type = types.nullOr types.path;
153153 default = null;
154154 example = "/var/ca.pem";
155155- description = "Path to server SSL chain file.";
155155+ description = lib.mdDoc "Path to server SSL chain file.";
156156 };
157157158158 http2 = mkOption {
159159 type = types.bool;
160160 default = true;
161161- description = ''
162162- Whether to enable HTTP 2. HTTP/2 is supported in all multi-processing modules that come with httpd. <emphasis>However, if you use the prefork mpm, there will
163163- be severe restrictions.</emphasis> Refer to <link xlink:href="https://httpd.apache.org/docs/2.4/howto/http2.html#mpm-config"/> for details.
161161+ description = lib.mdDoc ''
162162+ Whether to enable HTTP 2. HTTP/2 is supported in all multi-processing modules that come with httpd. *However, if you use the prefork mpm, there will
163163+ be severe restrictions.* Refer to <https://httpd.apache.org/docs/2.4/howto/http2.html#mpm-config> for details.
164164 '';
165165 };
166166···168168 type = types.nullOr types.str;
169169 default = null;
170170 example = "admin@example.org";
171171- description = "E-mail address of the server administrator.";
171171+ description = lib.mdDoc "E-mail address of the server administrator.";
172172 };
173173174174 documentRoot = mkOption {
175175 type = types.nullOr types.path;
176176 default = null;
177177 example = "/data/webserver/docs";
178178- description = ''
178178+ description = lib.mdDoc ''
179179 The path of Apache's document root directory. If left undefined,
180180 an empty directory in the Nix store will be used as root.
181181 '';
···189189 dir = "/home/eelco/Dev/nix-homepage";
190190 }
191191 ];
192192- description = ''
192192+ description = lib.mdDoc ''
193193 This option provides a simple way to serve static directories.
194194 '';
195195 };
···222222 AllowOverride All
223223 </Directory>
224224 '';
225225- description = ''
225225+ description = lib.mdDoc ''
226226 These lines go to httpd.conf verbatim. They will go after
227227 directories and directory aliases defined by default.
228228 '';
···231231 enableUserDir = mkOption {
232232 type = types.bool;
233233 default = false;
234234- description = ''
235235- Whether to enable serving <filename>~/public_html</filename> as
236236- <literal>/~«username»</literal>.
234234+ description = lib.mdDoc ''
235235+ Whether to enable serving {file}`~/public_html` as
236236+ `/~«username»`.
237237 '';
238238 };
239239···241241 type = types.nullOr types.str;
242242 default = null;
243243 example = "http://newserver.example.org/";
244244- description = ''
244244+ description = lib.mdDoc ''
245245 If set, all requests for this host are redirected permanently to
246246 the given URL.
247247 '';
···251251 type = types.str;
252252 default = "common";
253253 example = "combined";
254254- description = ''
254254+ description = lib.mdDoc ''
255255 Log format for Apache's log files. Possible values are: combined, common, referer, agent.
256256 '';
257257 };
···260260 type = types.lines;
261261 default = "";
262262 example = "Disallow: /foo/";
263263- description = ''
264264- Specification of pages to be ignored by web crawlers. See <link xlink:href="http://www.robotstxt.org/"/> for details.
263263+ description = lib.mdDoc ''
264264+ Specification of pages to be ignored by web crawlers. See <http://www.robotstxt.org/> for details.
265265 '';
266266 };
267267···278278 };
279279 };
280280 '';
281281- description = ''
282282- Declarative location config. See <link xlink:href="https://httpd.apache.org/docs/2.4/mod/core.html#location"/> for details.
281281+ description = lib.mdDoc ''
282282+ Declarative location config. See <https://httpd.apache.org/docs/2.4/mod/core.html#location> for details.
283283 '';
284284 };
285285
···8686 default = pkgs.caddy;
8787 defaultText = literalExpression "pkgs.caddy";
8888 type = types.package;
8989- description = ''
8989+ description = lib.mdDoc ''
9090 Caddy package to use.
9191 '';
9292 };
···133133 example = literalExpression ''
134134 mkForce "level INFO";
135135 '';
136136- description = ''
136136+ description = lib.mdDoc ''
137137 Configuration for the default logger. See
138138- <link xlink:href="https://caddyserver.com/docs/caddyfile/options#log"/>
138138+ <https://caddyserver.com/docs/caddyfile/options#log>
139139 for details.
140140 '';
141141 };
···153153 file_server
154154 ''';
155155 '';
156156- description = ''
156156+ description = lib.mdDoc ''
157157 Override the configuration file used by Caddy. By default,
158158 NixOS generates one automatically.
159159 '';
···178178 resume = mkOption {
179179 default = false;
180180 type = types.bool;
181181- description = ''
182182- Use saved config, if any (and prefer over any specified configuration passed with <literal>--config</literal>).
181181+ description = lib.mdDoc ''
182182+ Use saved config, if any (and prefer over any specified configuration passed with `--config`).
183183 '';
184184 };
185185···194194 }
195195 }
196196 '';
197197- description = ''
197197+ description = lib.mdDoc ''
198198 Additional lines of configuration appended to the global config section
199199- of the <literal>Caddyfile</literal>.
199199+ of the `Caddyfile`.
200200201201- Refer to <link xlink:href="https://caddyserver.com/docs/caddyfile/options#global-options"/>
201201+ Refer to <https://caddyserver.com/docs/caddyfile/options#global-options>
202202 for details on supported values.
203203 '';
204204 };
···213213 root /srv/http
214214 }
215215 '';
216216- description = ''
216216+ description = lib.mdDoc ''
217217 Additional lines of configuration appended to the automatically
218218- generated <literal>Caddyfile</literal>.
218218+ generated `Caddyfile`.
219219 '';
220220 };
221221···233233 };
234234 };
235235 '';
236236- description = ''
236236+ description = lib.mdDoc ''
237237 Declarative specification of virtual hosts served by Caddy.
238238 '';
239239 };
···242242 default = "https://acme-v02.api.letsencrypt.org/directory";
243243 example = "https://acme-staging-v02.api.letsencrypt.org/directory";
244244 type = with types; nullOr str;
245245- description = ''
245245+ description = lib.mdDoc ''
246246 The URL to the ACME CA's directory. It is strongly recommended to set
247247 this to Let's Encrypt's staging endpoint for testing or development.
248248249249- Set it to <literal>null</literal> if you want to write a more
249249+ Set it to `null` if you want to write a more
250250 fine-grained configuration manually.
251251 '';
252252 };
···254254 email = mkOption {
255255 default = null;
256256 type = with types; nullOr str;
257257- description = ''
257257+ description = lib.mdDoc ''
258258 Your email address. Mainly used when creating an ACME account with your
259259 CA, and is highly recommended in case there are problems with your
260260 certificates.
···99 hostName = mkOption {
1010 type = types.str;
1111 default = name;
1212- description = "Canonical hostname for the server.";
1212+ description = lib.mdDoc "Canonical hostname for the server.";
1313 };
14141515 serverAliases = mkOption {
1616 type = with types; listOf str;
1717 default = [ ];
1818 example = [ "www.example.org" "example.org" ];
1919- description = ''
1919+ description = lib.mdDoc ''
2020 Additional names of virtual hosts served by this virtual host configuration.
2121 '';
2222 };
23232424 listenAddresses = mkOption {
2525 type = with types; listOf str;
2626- description = ''
2626+ description = lib.mdDoc ''
2727 A list of host interfaces to bind to for this virtual host.
2828 '';
2929 default = [ ];
···5959 output discard
6060 ''';
6161 '';
6262- description = ''
6262+ description = lib.mdDoc ''
6363 Configuration for HTTP request logging (also known as access logs). See
6464- <link xlink:href="https://caddyserver.com/docs/caddyfile/directives/log#log"/>
6464+ <https://caddyserver.com/docs/caddyfile/directives/log#log>
6565 for details.
6666 '';
6767 };
···6969 extraConfig = mkOption {
7070 type = types.lines;
7171 default = "";
7272- description = ''
7272+ description = lib.mdDoc ''
7373 Additional lines of configuration appended to this virtual host in the
7474- automatically generated <literal>Caddyfile</literal>.
7474+ automatically generated `Caddyfile`.
7575 '';
7676 };
7777
+2-2
nixos/modules/services/web-servers/hydron.nix
···1717 type = types.str;
1818 default = "weekly";
1919 example = "06:00";
2020- description = ''
2020+ description = lib.mdDoc ''
2121 How often we run hydron import and possibly fetch tags. Runs by default every week.
22222323 The format is described in
2424- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
2424+ {manpage}`systemd.time(7)`.
2525 '';
2626 };
2727
···1111 serverName = mkOption {
1212 type = types.nullOr types.str;
1313 default = null;
1414- description = ''
1414+ description = lib.mdDoc ''
1515 Name of this virtual host. Defaults to attribute name in virtualHosts.
1616 '';
1717 example = "example.org";
···2121 type = types.listOf types.str;
2222 default = [];
2323 example = [ "www.example.org" "example.org" ];
2424- description = ''
2424+ description = lib.mdDoc ''
2525 Additional names of virtual hosts served by this virtual host configuration.
2626 '';
2727 };
28282929 listen = mkOption {
3030 type = with types; listOf (submodule { options = {
3131- addr = mkOption { type = str; description = "IP address."; };
3232- port = mkOption { type = int; description = "Port number."; default = 80; };
3333- ssl = mkOption { type = bool; description = "Enable SSL."; default = false; };
3434- extraParameters = mkOption { type = listOf str; description = "Extra parameters of this listen directive."; default = []; example = [ "backlog=1024" "deferred" ]; };
3131+ addr = mkOption { type = str; description = lib.mdDoc "IP address."; };
3232+ port = mkOption { type = int; description = lib.mdDoc "Port number."; default = 80; };
3333+ ssl = mkOption { type = bool; description = lib.mdDoc "Enable SSL."; default = false; };
3434+ extraParameters = mkOption { type = listOf str; description = lib.mdDoc "Extra parameters of this listen directive."; default = []; example = [ "backlog=1024" "deferred" ]; };
3535 }; });
3636 default = [];
3737 example = [
3838 { addr = "195.154.1.1"; port = 443; ssl = true; }
3939 { addr = "192.154.1.1"; port = 80; }
4040 ];
4141- description = ''
4141+ description = lib.mdDoc ''
4242 Listen addresses and ports for this virtual host.
4343 IPv6 addresses must be enclosed in square brackets.
4444- Note: this option overrides <literal>addSSL</literal>
4545- and <literal>onlySSL</literal>.
4444+ Note: this option overrides `addSSL`
4545+ and `onlySSL`.
46464747 If you only want to set the addresses manually and not
4848- the ports, take a look at <literal>listenAddresses</literal>
4848+ the ports, take a look at `listenAddresses`
4949 '';
5050 };
51515252 listenAddresses = mkOption {
5353 type = with types; listOf str;
54545555- description = ''
5555+ description = lib.mdDoc ''
5656 Listen addresses for this virtual host.
5757- Compared to <literal>listen</literal> this only sets the addreses
5757+ Compared to `listen` this only sets the addreses
5858 and the ports are choosen automatically.
59596060- Note: This option overrides <literal>enableIPv6</literal>
6060+ Note: This option overrides `enableIPv6`
6161 '';
6262 default = [];
6363 example = [ "127.0.0.1" "[::1]" ];
···6666 enableACME = mkOption {
6767 type = types.bool;
6868 default = false;
6969- description = ''
6969+ description = lib.mdDoc ''
7070 Whether to ask Let's Encrypt to sign a certificate for this vhost.
7171- Alternately, you can use an existing certificate through <option>useACMEHost</option>.
7171+ Alternately, you can use an existing certificate through {option}`useACMEHost`.
7272 '';
7373 };
7474···8787 acmeRoot = mkOption {
8888 type = types.nullOr types.str;
8989 default = "/var/lib/acme/acme-challenge";
9090- description = ''
9090+ description = lib.mdDoc ''
9191 Directory for the acme challenge which is PUBLIC, don't put certs or keys in here.
9292 Set to null to inherit from config.security.acme.
9393 '';
···9696 acmeFallbackHost = mkOption {
9797 type = types.nullOr types.str;
9898 default = null;
9999- description = ''
9999+ description = lib.mdDoc ''
100100 Host which to proxy requests to if acme challenge is not found. Useful
101101 if you want multiple hosts to be able to verify the same domain name.
102102 '';
···105105 addSSL = mkOption {
106106 type = types.bool;
107107 default = false;
108108- description = ''
108108+ description = lib.mdDoc ''
109109 Whether to enable HTTPS in addition to plain HTTP. This will set defaults for
110110- <literal>listen</literal> to listen on all interfaces on the respective default
110110+ `listen` to listen on all interfaces on the respective default
111111 ports (80, 443).
112112 '';
113113 };
···115115 onlySSL = mkOption {
116116 type = types.bool;
117117 default = false;
118118- description = ''
118118+ description = lib.mdDoc ''
119119 Whether to enable HTTPS and reject plain HTTP connections. This will set
120120- defaults for <literal>listen</literal> to listen on all interfaces on port 443.
120120+ defaults for `listen` to listen on all interfaces on port 443.
121121 '';
122122 };
123123···130130 forceSSL = mkOption {
131131 type = types.bool;
132132 default = false;
133133- description = ''
133133+ description = lib.mdDoc ''
134134 Whether to add a separate nginx server block that permanently redirects (301)
135135 all plain HTTP traffic to HTTPS. This will set defaults for
136136- <literal>listen</literal> to listen on all interfaces on the respective default
136136+ `listen` to listen on all interfaces on the respective default
137137 ports (80, 443), where the non-SSL listens are used for the redirect vhosts.
138138 '';
139139 };
···141141 rejectSSL = mkOption {
142142 type = types.bool;
143143 default = false;
144144- description = ''
144144+ description = lib.mdDoc ''
145145 Whether to listen for and reject all HTTPS connections to this vhost. Useful in
146146- <link linkend="opt-services.nginx.virtualHosts._name_.default">default</link>
146146+ [default](#opt-services.nginx.virtualHosts._name_.default)
147147 server blocks to avoid serving the certificate for another vhost. Uses the
148148- <literal>ssl_reject_handshake</literal> directive available in nginx versions
148148+ `ssl_reject_handshake` directive available in nginx versions
149149 1.19.4 and above.
150150 '';
151151 };
···153153 kTLS = mkOption {
154154 type = types.bool;
155155 default = false;
156156- description = ''
156156+ description = lib.mdDoc ''
157157 Whether to enable kTLS support.
158158 Implementing TLS in the kernel (kTLS) improves performance by significantly
159159 reducing the need for copying operations between user space and the kernel.
···164164 sslCertificate = mkOption {
165165 type = types.path;
166166 example = "/var/host.cert";
167167- description = "Path to server SSL certificate.";
167167+ description = lib.mdDoc "Path to server SSL certificate.";
168168 };
169169170170 sslCertificateKey = mkOption {
171171 type = types.path;
172172 example = "/var/host.key";
173173- description = "Path to server SSL certificate key.";
173173+ description = lib.mdDoc "Path to server SSL certificate key.";
174174 };
175175176176 sslTrustedCertificate = mkOption {
177177 type = types.nullOr types.path;
178178 default = null;
179179 example = literalExpression ''"''${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"'';
180180- description = "Path to root SSL certificate for stapling and client certificates.";
180180+ description = lib.mdDoc "Path to root SSL certificate for stapling and client certificates.";
181181 };
182182183183 http2 = mkOption {
184184 type = types.bool;
185185 default = true;
186186- description = ''
186186+ description = lib.mdDoc ''
187187 Whether to enable HTTP 2.
188188 Note that (as of writing) due to nginx's implementation, to disable
189189 HTTP 2 you have to disable it on all vhosts that use a given
···210210 reuseport = mkOption {
211211 type = types.bool;
212212 default = false;
213213- description = ''
213213+ description = lib.mdDoc ''
214214 Create an individual listening socket .
215215 It is required to specify only once on one of the hosts.
216216 '';
···220220 type = types.nullOr types.path;
221221 default = null;
222222 example = "/data/webserver/docs";
223223- description = ''
223223+ description = lib.mdDoc ''
224224 The path of the web root directory.
225225 '';
226226 };
···228228 default = mkOption {
229229 type = types.bool;
230230 default = false;
231231- description = ''
231231+ description = lib.mdDoc ''
232232 Makes this vhost the default.
233233 '';
234234 };
···236236 extraConfig = mkOption {
237237 type = types.lines;
238238 default = "";
239239- description = ''
239239+ description = lib.mdDoc ''
240240 These lines go to the end of the vhost verbatim.
241241 '';
242242 };
···245245 type = types.nullOr types.str;
246246 default = null;
247247 example = "newserver.example.org";
248248- description = ''
248248+ description = lib.mdDoc ''
249249 If set, all requests for this host are redirected permanently to
250250 the given hostname.
251251 '';
···259259 user = "password";
260260 };
261261 '';
262262- description = ''
262262+ description = lib.mdDoc ''
263263 Basic Auth protection for a vhost.
264264265265 WARNING: This is implemented to store the password in plain text in the
···270270 basicAuthFile = mkOption {
271271 type = types.nullOr types.path;
272272 default = null;
273273- description = ''
273273+ description = lib.mdDoc ''
274274 Basic Auth password file for a vhost.
275275- Can be created via: <command>htpasswd -c <filename> <username></command>.
275275+ Can be created via: {command}`htpasswd -c <filename> <username>`.
276276277277 WARNING: The generate file contains the users' passwords in a
278278 non-cryptographically-securely hashed way.
···291291 };
292292 };
293293 '';
294294- description = "Declarative location config";
294294+ description = lib.mdDoc "Declarative location config";
295295 };
296296 };
297297}
···3333 type = types.enum [ "center" "fill" "max" "scale" "tile" ];
3434 default = "scale";
3535 example = "fill";
3636- description = ''
3737- The file <filename>~/.background-image</filename> is used as a background image.
3636+ description = lib.mdDoc ''
3737+ The file {file}`~/.background-image` is used as a background image.
3838 This option specifies the placement of this image onto your desktop.
39394040 Possible values:
4141- <literal>center</literal>: Center the image on the background. If it is too small, it will be surrounded by a black border.
4242- <literal>fill</literal>: Like <literal>scale</literal>, but preserves aspect ratio by zooming the image until it fits. Either a horizontal or a vertical part of the image will be cut off.
4343- <literal>max</literal>: Like <literal>fill</literal>, but scale the image to the maximum size that fits the screen with black borders on one side.
4444- <literal>scale</literal>: Fit the file into the background without repeating it, cutting off stuff or using borders. But the aspect ratio is not preserved either.
4545- <literal>tile</literal>: Tile (repeat) the image in case it is too small for the screen.
4141+ `center`: Center the image on the background. If it is too small, it will be surrounded by a black border.
4242+ `fill`: Like `scale`, but preserves aspect ratio by zooming the image until it fits. Either a horizontal or a vertical part of the image will be cut off.
4343+ `max`: Like `fill`, but scale the image to the maximum size that fits the screen with black borders on one side.
4444+ `scale`: Fit the file into the background without repeating it, cutting off stuff or using borders. But the aspect ratio is not preserved either.
4545+ `tile`: Tile (repeat) the image in case it is too small for the screen.
4646 '';
4747 };
48484949 combineScreens = mkOption {
5050 type = types.bool;
5151 default = false;
5252- description = ''
5353- When set to <literal>true</literal> the wallpaper will stretch across all screens.
5454- When set to <literal>false</literal> the wallpaper is duplicated to all screens.
5252+ description = lib.mdDoc ''
5353+ When set to `true` the wallpaper will stretch across all screens.
5454+ When set to `false` the wallpaper is duplicated to all screens.
5555 '';
5656 };
5757 };
···105105 enable = mkOption {
106106 type = types.bool;
107107 default = false;
108108- description = ''
108108+ description = lib.mdDoc ''
109109 Whether to enable lightdm as the display manager.
110110 '';
111111 };
···114114 enable = mkOption {
115115 type = types.bool;
116116 default = true;
117117- description = ''
117117+ description = lib.mdDoc ''
118118 If set to false, run lightdm in greeterless mode. This only works if autologin
119119 is enabled and autoLogin.timeout is zero.
120120 '';
121121 };
122122 package = mkOption {
123123 type = types.package;
124124- description = ''
124124+ description = lib.mdDoc ''
125125 The LightDM greeter to login via. The package should be a directory
126126 containing a .desktop file matching the name in the 'name' option.
127127 '';
···129129 };
130130 name = mkOption {
131131 type = types.str;
132132- description = ''
132132+ description = lib.mdDoc ''
133133 The name of a .desktop file in the directory specified
134134 in the 'package' option.
135135 '';
···142142 example = ''
143143 user-authority-in-system-dir = true
144144 '';
145145- description = "Extra lines to append to LightDM section.";
145145+ description = lib.mdDoc "Extra lines to append to LightDM section.";
146146 };
147147148148 background = mkOption {
149149 type = types.either types.path (types.strMatching "^#[0-9]\{6\}$");
150150 # Manual cannot depend on packages, we are actually setting the default in config below.
151151 defaultText = literalExpression "pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath";
152152- description = ''
152152+ description = lib.mdDoc ''
153153 The background image or color to use.
154154 '';
155155 };
···160160 example = ''
161161 greeter-show-manual-login=true
162162 '';
163163- description = "Extra lines to append to SeatDefaults section.";
163163+ description = lib.mdDoc "Extra lines to append to SeatDefaults section.";
164164 };
165165166166 # Configuration for automatic login specific to LightDM
167167 autoLogin.timeout = mkOption {
168168 type = types.int;
169169 default = 0;
170170- description = ''
170170+ description = lib.mdDoc ''
171171 Show the greeter for this many seconds before automatic login occurs.
172172 '';
173173 };
+52-52
nixos/modules/services/x11/xserver.nix
···3737 output = mkOption {
3838 type = types.str;
3939 example = "DVI-0";
4040- description = ''
4040+ description = lib.mdDoc ''
4141 The output name of the monitor, as shown by
4242- <citerefentry><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> invoked without arguments.
4242+ {manpage}`xrandr(1)` invoked without arguments.
4343 '';
4444 };
45454646 primary = mkOption {
4747 type = types.bool;
4848 default = false;
4949- description = ''
4949+ description = lib.mdDoc ''
5050 Whether this head is treated as the primary monitor,
5151 '';
5252 };
···5858 DisplaySize 408 306
5959 Option "DPMS" "false"
6060 '';
6161- description = ''
6262- Extra lines to append to the <literal>Monitor</literal> section
6161+ description = lib.mdDoc ''
6262+ Extra lines to append to the `Monitor` section
6363 verbatim. Available options are documented in the MONITOR section in
6464- <citerefentry><refentrytitle>xorg.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
6464+ {manpage}`xorg.conf(5)`.
6565 '';
6666 };
6767 };
···165165 enable = mkOption {
166166 type = types.bool;
167167 default = false;
168168- description = ''
168168+ description = lib.mdDoc ''
169169 Whether to enable the X server.
170170 '';
171171 };
···173173 autorun = mkOption {
174174 type = types.bool;
175175 default = true;
176176- description = ''
176176+ description = lib.mdDoc ''
177177 Whether to start the X server automatically.
178178 '';
179179 };
···182182 default = [];
183183 example = literalExpression "[ pkgs.xterm ]";
184184 type = types.listOf types.package;
185185- description = "Which X11 packages to exclude from the default environment";
185185+ description = lib.mdDoc "Which X11 packages to exclude from the default environment";
186186 };
187187188188 exportConfiguration = mkOption {
189189 type = types.bool;
190190 default = false;
191191- description = ''
191191+ description = lib.mdDoc ''
192192 Whether to symlink the X server configuration under
193193- <filename>/etc/X11/xorg.conf</filename>.
193193+ {file}`/etc/X11/xorg.conf`.
194194 '';
195195 };
196196197197 enableTCP = mkOption {
198198 type = types.bool;
199199 default = false;
200200- description = ''
200200+ description = lib.mdDoc ''
201201 Whether to allow the X server to accept TCP connections.
202202 '';
203203 };
···205205 autoRepeatDelay = mkOption {
206206 type = types.nullOr types.int;
207207 default = null;
208208- description = ''
208208+ description = lib.mdDoc ''
209209 Sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts).
210210 '';
211211 };
···213213 autoRepeatInterval = mkOption {
214214 type = types.nullOr types.int;
215215 default = null;
216216- description = ''
216216+ description = lib.mdDoc ''
217217 Sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes).
218218 '';
219219 };
···231231 '''
232232 ]
233233 '';
234234- description = "Content of additional InputClass sections of the X server configuration file.";
234234+ description = lib.mdDoc "Content of additional InputClass sections of the X server configuration file.";
235235 };
236236237237 modules = mkOption {
238238 type = types.listOf types.path;
239239 default = [];
240240 example = literalExpression "[ pkgs.xf86_input_wacom ]";
241241- description = "Packages to be added to the module search path of the X server.";
241241+ description = lib.mdDoc "Packages to be added to the module search path of the X server.";
242242 };
243243244244 resolutions = mkOption {
245245 type = types.listOf types.attrs;
246246 default = [];
247247 example = [ { x = 1600; y = 1200; } { x = 1024; y = 786; } ];
248248- description = ''
248248+ description = lib.mdDoc ''
249249 The screen resolutions for the X server. The first element
250250 is the default resolution. If this list is empty, the X
251251 server will automatically configure the resolution.
···266266 path = [ "xorg" n ];
267267 title = removePrefix "xf86video" n;
268268 }) pkgs.xorg);
269269- description = ''
269269+ description = lib.mdDoc ''
270270 The names of the video drivers the configuration
271271 supports. They will be tried in order until one that
272272 supports your card is found.
···282282 type = types.nullOr types.str;
283283 default = null;
284284 example = "i810";
285285- description = ''
285285+ description = lib.mdDoc ''
286286 The name of the video driver for your graphics card. This
287287 option is obsolete; please set the
288288- <option>services.xserver.videoDrivers</option> instead.
288288+ {option}`services.xserver.videoDrivers` instead.
289289 '';
290290 };
291291···301301 dpi = mkOption {
302302 type = types.nullOr types.int;
303303 default = null;
304304- description = ''
304304+ description = lib.mdDoc ''
305305 Force global DPI resolution to use for X server. It's recommended to
306306 use this only when DPI is detected incorrectly; also consider using
307307- <literal>Monitor</literal> section in configuration file instead.
307307+ `Monitor` section in configuration file instead.
308308 '';
309309 };
310310311311 updateDbusEnvironment = mkOption {
312312 type = types.bool;
313313 default = false;
314314- description = ''
314314+ description = lib.mdDoc ''
315315 Whether to update the DBus activation environment after launching the
316316 desktop manager.
317317 '';
···320320 layout = mkOption {
321321 type = types.str;
322322 default = "us";
323323- description = ''
323323+ description = lib.mdDoc ''
324324 Keyboard layout, or multiple keyboard layouts separated by commas.
325325 '';
326326 };
···329329 type = types.str;
330330 default = "pc104";
331331 example = "presario";
332332- description = ''
332332+ description = lib.mdDoc ''
333333 Keyboard model.
334334 '';
335335 };
···338338 type = types.commas;
339339 default = "terminate:ctrl_alt_bksp";
340340 example = "grp:caps_toggle,grp_led:scroll";
341341- description = ''
341341+ description = lib.mdDoc ''
342342 X keyboard options; layout switching goes here.
343343 '';
344344 };
···347347 type = types.str;
348348 default = "";
349349 example = "colemak";
350350- description = ''
350350+ description = lib.mdDoc ''
351351 X keyboard variant.
352352 '';
353353 };
···356356 type = types.path;
357357 default = "${pkgs.xkeyboard_config}/etc/X11/xkb";
358358 defaultText = literalExpression ''"''${pkgs.xkeyboard_config}/etc/X11/xkb"'';
359359- description = ''
359359+ description = lib.mdDoc ''
360360 Path used for -xkbdir xserver parameter.
361361 '';
362362 };
363363364364 config = mkOption {
365365 type = types.lines;
366366- description = ''
366366+ description = lib.mdDoc ''
367367 The contents of the configuration file of the X server
368368- (<filename>xorg.conf</filename>).
368368+ ({file}`xorg.conf`).
369369370370 This option is set by multiple modules, and the configs are
371371 concatenated together.
372372373373 In Xorg configs the last config entries take precedence,
374374- so you may want to use <literal>lib.mkAfter</literal> on this option
374374+ so you may want to use `lib.mkAfter` on this option
375375 to override NixOS's defaults.
376376 '';
377377 };
···380380 type = types.lines;
381381 default = "";
382382 example = ''FontPath "/path/to/my/fonts"'';
383383- description = "Contents of the first <literal>Files</literal> section of the X server configuration file.";
383383+ description = lib.mdDoc "Contents of the first `Files` section of the X server configuration file.";
384384 };
385385386386 deviceSection = mkOption {
387387 type = types.lines;
388388 default = "";
389389 example = "VideoRAM 131072";
390390- description = "Contents of the first Device section of the X server configuration file.";
390390+ description = lib.mdDoc "Contents of the first Device section of the X server configuration file.";
391391 };
392392393393 screenSection = mkOption {
···396396 example = ''
397397 Option "RandRRotation" "on"
398398 '';
399399- description = "Contents of the first Screen section of the X server configuration file.";
399399+ description = lib.mdDoc "Contents of the first Screen section of the X server configuration file.";
400400 };
401401402402 monitorSection = mkOption {
403403 type = types.lines;
404404 default = "";
405405 example = "HorizSync 28-49";
406406- description = "Contents of the first Monitor section of the X server configuration file.";
406406+ description = lib.mdDoc "Contents of the first Monitor section of the X server configuration file.";
407407 };
408408409409 extraConfig = mkOption {
410410 type = types.lines;
411411 default = "";
412412- description = "Additional contents (sections) included in the X server configuration file";
412412+ description = lib.mdDoc "Additional contents (sections) included in the X server configuration file";
413413 };
414414415415 xrandrHeads = mkOption {
···463463 Option "SuspendTime" "0"
464464 Option "OffTime" "0"
465465 '';
466466- description = "Contents of the ServerFlags section of the X server configuration file.";
466466+ description = lib.mdDoc "Contents of the ServerFlags section of the X server configuration file.";
467467 };
468468469469 moduleSection = mkOption {
···474474 SubSection "extmod"
475475 EndSubsection
476476 '';
477477- description = "Contents of the Module section of the X server configuration file.";
477477+ description = lib.mdDoc "Contents of the Module section of the X server configuration file.";
478478 };
479479480480 serverLayoutSection = mkOption {
···484484 ''
485485 Option "AIGLX" "true"
486486 '';
487487- description = "Contents of the ServerLayout section of the X server configuration file.";
487487+ description = lib.mdDoc "Contents of the ServerLayout section of the X server configuration file.";
488488 };
489489490490 extraDisplaySettings = mkOption {
491491 type = types.lines;
492492 default = "";
493493 example = "Virtual 2048 2048";
494494- description = "Lines to be added to every Display subsection of the Screen section.";
494494+ description = lib.mdDoc "Lines to be added to every Display subsection of the Screen section.";
495495 };
496496497497 defaultDepth = mkOption {
498498 type = types.int;
499499 default = 0;
500500 example = 8;
501501- description = "Default colour depth.";
501501+ description = lib.mdDoc "Default colour depth.";
502502 };
503503504504 fontPath = mkOption {
505505 type = types.nullOr types.str;
506506 default = null;
507507 example = "unix/:7100";
508508- description = ''
508508+ description = lib.mdDoc ''
509509 Set the X server FontPath. Defaults to null, which
510510 means the compiled in defaults will be used. See
511511 man xorg.conf for details.
···515515 tty = mkOption {
516516 type = types.nullOr types.int;
517517 default = 7;
518518- description = "Virtual console for the X server.";
518518+ description = lib.mdDoc "Virtual console for the X server.";
519519 };
520520521521 display = mkOption {
522522 type = types.nullOr types.int;
523523 default = 0;
524524- description = "Display number for the X server.";
524524+ description = lib.mdDoc "Display number for the X server.";
525525 };
526526527527 virtualScreen = mkOption {
528528 type = types.nullOr types.attrs;
529529 default = null;
530530 example = { x = 2048; y = 2048; };
531531- description = ''
531531+ description = lib.mdDoc ''
532532 Virtual screen size for Xrandr.
533533 '';
534534 };
···537537 type = types.nullOr types.str;
538538 default = "/dev/null";
539539 example = "/var/log/Xorg.0.log";
540540- description = ''
540540+ description = lib.mdDoc ''
541541 Controls the file Xorg logs to.
542542543543- The default of <literal>/dev/null</literal> is set so that systemd services (like <literal>displayManagers</literal>) only log to the journal and don't create their own log files.
543543+ The default of `/dev/null` is set so that systemd services (like `displayManagers`) only log to the journal and don't create their own log files.
544544545545- Setting this to <literal>null</literal> will not pass the <literal>-logfile</literal> argument to Xorg which allows it to log to its default logfile locations instead (see <literal>man Xorg</literal>). You probably only want this behaviour when running Xorg manually (e.g. via <literal>startx</literal>).
545545+ Setting this to `null` will not pass the `-logfile` argument to Xorg which allows it to log to its default logfile locations instead (see `man Xorg`). You probably only want this behaviour when running Xorg manually (e.g. via `startx`).
546546 '';
547547 };
548548···550550 type = types.nullOr types.int;
551551 default = 3;
552552 example = 7;
553553- description = ''
553553+ description = lib.mdDoc ''
554554 Controls verbosity of X logging.
555555 '';
556556 };
···558558 useGlamor = mkOption {
559559 type = types.bool;
560560 default = false;
561561- description = ''
561561+ description = lib.mdDoc ''
562562 Whether to use the Glamor module for 2D acceleration,
563563 if possible.
564564 '';
···567567 enableCtrlAltBackspace = mkOption {
568568 type = types.bool;
569569 default = false;
570570- description = ''
570570+ description = lib.mdDoc ''
571571 Whether to enable the DontZap option, which binds Ctrl+Alt+Backspace
572572 to forcefully kill X. This can lead to data loss and is disabled
573573 by default.
···577577 terminateOnReset = mkOption {
578578 type = types.bool;
579579 default = true;
580580- description = ''
580580+ description = lib.mdDoc ''
581581 Whether to terminate X upon server reset.
582582 '';
583583 };
+13-13
nixos/modules/system/activation/top-level.nix
···185185 options.inheritParentConfig = mkOption {
186186 type = types.bool;
187187 default = true;
188188- description = "Include the entire system's configuration. Set to false to make a completely differently configured system.";
188188+ description = lib.mdDoc "Include the entire system's configuration. Set to false to make a completely differently configured system.";
189189 };
190190191191 options.configuration = mkOption {
192192 default = {};
193193- description = ''
193193+ description = lib.mdDoc ''
194194 Arbitrary NixOS configuration.
195195196196 Anything you can add to a normal NixOS configuration, you can add
···255255 toplevel = mkOption {
256256 type = types.package;
257257 readOnly = true;
258258- description = ''
258258+ description = lib.mdDoc ''
259259 This option contains the store path that typically represents a NixOS system.
260260261261 You can read this path in a custom deployment tool for example.
···267267 system.copySystemConfiguration = mkOption {
268268 type = types.bool;
269269 default = false;
270270- description = ''
270270+ description = lib.mdDoc ''
271271 If enabled, copies the NixOS configuration file
272272- (usually <filename>/etc/nixos/configuration.nix</filename>)
272272+ (usually {file}`/etc/nixos/configuration.nix`)
273273 and links it from the resulting system
274274- (getting to <filename>/run/current-system/configuration.nix</filename>).
274274+ (getting to {file}`/run/current-system/configuration.nix`).
275275 Note that only this single file is copied, even if it imports others.
276276 '';
277277 };
···288288 system.extraDependencies = mkOption {
289289 type = types.listOf types.package;
290290 default = [];
291291- description = ''
291291+ description = lib.mdDoc ''
292292 A list of packages that should be included in the system
293293 closure but not otherwise made available to users. This is
294294 primarily used by the installation tests.
···302302 { ... }: {
303303 options.original = mkOption {
304304 type = types.package;
305305- description = "The original package to override.";
305305+ description = lib.mdDoc "The original package to override.";
306306 };
307307308308 options.replacement = mkOption {
309309 type = types.package;
310310- description = "The replacement package.";
310310+ description = lib.mdDoc "The replacement package.";
311311 };
312312 })
313313 );
···315315 oldDependency = original;
316316 newDependency = replacement;
317317 });
318318- description = ''
318318+ description = lib.mdDoc ''
319319 List of packages to override without doing a full rebuild.
320320 The original derivation and replacement derivation must have the same
321321 name length, and ideally should have close-to-identical directory layout.
···333333 then "unnamed"
334334 else config.networking.hostName;
335335 '';
336336- description = ''
337337- The name of the system used in the <option>system.build.toplevel</option> derivation.
336336+ description = lib.mdDoc ''
337337+ The name of the system used in the {option}`system.build.toplevel` derivation.
338338339339 That derivation has the following name:
340340- <literal>"nixos-system-''${config.system.name}-''${config.system.nixos.label}"</literal>
340340+ `"nixos-system-''${config.system.name}-''${config.system.nixos.label}"`
341341 '';
342342 };
343343
···2020 enable = mkOption {
2121 default = false;
2222 type = types.bool;
2323- description = ''
2323+ description = lib.mdDoc ''
2424 Whether to generate an extlinux-compatible configuration file
2525- under <literal>/boot/extlinux.conf</literal>. For instance,
2525+ under `/boot/extlinux.conf`. For instance,
2626 U-Boot's generic distro boot support uses this file format.
27272828- See <link xlink:href="http://git.denx.de/?p=u-boot.git;a=blob;f=doc/README.distro;hb=refs/heads/master">U-boot's documentation</link>
2828+ See [U-boot's documentation](http://git.denx.de/?p=u-boot.git;a=blob;f=doc/README.distro;hb=refs/heads/master)
2929 for more information.
3030 '';
3131 };
···3333 useGenerationDeviceTree = mkOption {
3434 default = true;
3535 type = types.bool;
3636- description = ''
3636+ description = lib.mdDoc ''
3737 Whether to generate Device Tree-related directives in the
3838 extlinux configuration.
3939···4949 default = 20;
5050 example = 10;
5151 type = types.int;
5252- description = ''
5252+ description = lib.mdDoc ''
5353 Maximum number of configurations in the boot menu.
5454 '';
5555 };
···5757 populateCmd = mkOption {
5858 type = types.str;
5959 readOnly = true;
6060- description = ''
6060+ description = lib.mdDoc ''
6161 Contains the builder command used to populate an image,
6262- honoring all options except the <literal>-c <path-to-default-configuration></literal>
6262+ honoring all options except the `-c <path-to-default-configuration>`
6363 argument.
6464 Useful to have for sdImage.populateRootCommands
6565 '';
+3-3
nixos/modules/system/boot/modprobe.nix
···2424 ''
2525 options parport_pc io=0x378 irq=7 dma=1
2626 '';
2727- description = ''
2727+ description = lib.mdDoc ''
2828 Any additional configuration to be appended to the generated
2929- <filename>modprobe.conf</filename>. This is typically used to
2929+ {file}`modprobe.conf`. This is typically used to
3030 specify module options. See
3131- <citerefentry><refentrytitle>modprobe.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
3131+ {manpage}`modprobe.d(5)` for details.
3232 '';
3333 type = types.lines;
3434 };
+141-141
nixos/modules/system/boot/networkd.nix
···916916 default = {};
917917 example = { SpeedMeter = true; ManageForeignRoutingPolicyRules = false; };
918918 type = types.addCheck (types.attrsOf unitOption) check.global.sectionNetwork;
919919- description = ''
919919+ description = lib.mdDoc ''
920920 Each attribute in this set specifies an option in the
921921- <literal>[Network]</literal> section of the networkd config.
922922- See <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
921921+ `[Network]` section of the networkd config.
922922+ See {manpage}`networkd.conf(5)` for details.
923923 '';
924924 };
925925···927927 default = {};
928928 example = { DUIDType = "vendor"; };
929929 type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv4;
930930- description = ''
930930+ description = lib.mdDoc ''
931931 Each attribute in this set specifies an option in the
932932- <literal>[DHCPv4]</literal> section of the networkd config.
933933- See <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
932932+ `[DHCPv4]` section of the networkd config.
933933+ See {manpage}`networkd.conf(5)` for details.
934934 '';
935935 };
936936···938938 default = {};
939939 example = { DUIDType = "vendor"; };
940940 type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv6;
941941- description = ''
941941+ description = lib.mdDoc ''
942942 Each attribute in this set specifies an option in the
943943- <literal>[DHCPv6]</literal> section of the networkd config.
944944- See <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
943943+ `[DHCPv6]` section of the networkd config.
944944+ See {manpage}`networkd.conf(5)` for details.
945945 '';
946946 };
947947 };
···960960 default = {};
961961 example = { MACAddress = "00:ff:ee:aa:cc:dd"; };
962962 type = types.addCheck (types.attrsOf unitOption) check.link.sectionLink;
963963- description = ''
963963+ description = lib.mdDoc ''
964964 Each attribute in this set specifies an option in the
965965- <literal>[Link]</literal> section of the unit. See
966966- <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
965965+ `[Link]` section of the unit. See
966966+ {manpage}`systemd.link(5)` for details.
967967 '';
968968 };
969969···974974 wireguardPeerConfig = mkOption {
975975 default = {};
976976 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuardPeer;
977977- description = ''
977977+ description = lib.mdDoc ''
978978 Each attribute in this set specifies an option in the
979979- <literal>[WireGuardPeer]</literal> section of the unit. See
980980- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
979979+ `[WireGuardPeer]` section of the unit. See
980980+ {manpage}`systemd.network(5)` for details.
981981 '';
982982 };
983983 };
···988988 netdevConfig = mkOption {
989989 example = { Name = "mybridge"; Kind = "bridge"; };
990990 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionNetdev;
991991- description = ''
991991+ description = lib.mdDoc ''
992992 Each attribute in this set specifies an option in the
993993- <literal>[Netdev]</literal> section of the unit. See
994994- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
993993+ `[Netdev]` section of the unit. See
994994+ {manpage}`systemd.netdev(5)` for details.
995995 '';
996996 };
997997···999999 default = {};
10001000 example = { Id = 4; };
10011001 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVLAN;
10021002- description = ''
10021002+ description = lib.mdDoc ''
10031003 Each attribute in this set specifies an option in the
10041004- <literal>[VLAN]</literal> section of the unit. See
10051005- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10041004+ `[VLAN]` section of the unit. See
10051005+ {manpage}`systemd.netdev(5)` for details.
10061006 '';
10071007 };
10081008···10101010 default = {};
10111011 example = { Mode = "private"; };
10121012 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionMACVLAN;
10131013- description = ''
10131013+ description = lib.mdDoc ''
10141014 Each attribute in this set specifies an option in the
10151015- <literal>[MACVLAN]</literal> section of the unit. See
10161016- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10151015+ `[MACVLAN]` section of the unit. See
10161016+ {manpage}`systemd.netdev(5)` for details.
10171017 '';
10181018 };
1019101910201020 vxlanConfig = mkOption {
10211021 default = {};
10221022 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVXLAN;
10231023- description = ''
10231023+ description = lib.mdDoc ''
10241024 Each attribute in this set specifies an option in the
10251025- <literal>[VXLAN]</literal> section of the unit. See
10261026- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10251025+ `[VXLAN]` section of the unit. See
10261026+ {manpage}`systemd.netdev(5)` for details.
10271027 '';
10281028 };
10291029···10311031 default = {};
10321032 example = { Remote = "192.168.1.1"; };
10331033 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTunnel;
10341034- description = ''
10341034+ description = lib.mdDoc ''
10351035 Each attribute in this set specifies an option in the
10361036- <literal>[Tunnel]</literal> section of the unit. See
10371037- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10361036+ `[Tunnel]` section of the unit. See
10371037+ {manpage}`systemd.netdev(5)` for details.
10381038 '';
10391039 };
10401040···10421042 default = { };
10431043 example = { Port = 9001; };
10441044 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionFooOverUDP;
10451045- description = ''
10451045+ description = lib.mdDoc ''
10461046 Each attribute in this set specifies an option in the
10471047- <literal>[FooOverUDP]</literal> section of the unit. See
10481048- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10471047+ `[FooOverUDP]` section of the unit. See
10481048+ {manpage}`systemd.netdev(5)` for details.
10491049 '';
10501050 };
10511051···10531053 default = {};
10541054 example = { Name = "veth2"; };
10551055 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionPeer;
10561056- description = ''
10561056+ description = lib.mdDoc ''
10571057 Each attribute in this set specifies an option in the
10581058- <literal>[Peer]</literal> section of the unit. See
10591059- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10581058+ `[Peer]` section of the unit. See
10591059+ {manpage}`systemd.netdev(5)` for details.
10601060 '';
10611061 };
10621062···10641064 default = {};
10651065 example = { User = "openvpn"; };
10661066 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTun;
10671067- description = ''
10671067+ description = lib.mdDoc ''
10681068 Each attribute in this set specifies an option in the
10691069- <literal>[Tun]</literal> section of the unit. See
10701070- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10691069+ `[Tun]` section of the unit. See
10701070+ {manpage}`systemd.netdev(5)` for details.
10711071 '';
10721072 };
10731073···10751075 default = {};
10761076 example = { User = "openvpn"; };
10771077 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTap;
10781078- description = ''
10781078+ description = lib.mdDoc ''
10791079 Each attribute in this set specifies an option in the
10801080- <literal>[Tap]</literal> section of the unit. See
10811081- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10801080+ `[Tap]` section of the unit. See
10811081+ {manpage}`systemd.netdev(5)` for details.
10821082 '';
10831083 };
10841084···10901090 FirewallMark = 42;
10911091 };
10921092 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuard;
10931093- description = ''
10931093+ description = lib.mdDoc ''
10941094 Each attribute in this set specifies an option in the
10951095- <literal>[WireGuard]</literal> section of the unit. See
10961096- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
10971097- Use <literal>PrivateKeyFile</literal> instead of
10981098- <literal>PrivateKey</literal>: the nix store is
10951095+ `[WireGuard]` section of the unit. See
10961096+ {manpage}`systemd.netdev(5)` for details.
10971097+ Use `PrivateKeyFile` instead of
10981098+ `PrivateKey`: the nix store is
10991099 world-readable.
11001100 '';
11011101 };
···11101110 PersistentKeepalive = 15;
11111111 };}];
11121112 type = with types; listOf (submodule wireguardPeerOptions);
11131113- description = ''
11131113+ description = lib.mdDoc ''
11141114 Each item in this array specifies an option in the
11151115- <literal>[WireGuardPeer]</literal> section of the unit. See
11161116- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
11171117- Use <literal>PresharedKeyFile</literal> instead of
11181118- <literal>PresharedKey</literal>: the nix store is
11151115+ `[WireGuardPeer]` section of the unit. See
11161116+ {manpage}`systemd.netdev(5)` for details.
11171117+ Use `PresharedKeyFile` instead of
11181118+ `PresharedKey`: the nix store is
11191119 world-readable.
11201120 '';
11211121 };
···11241124 default = {};
11251125 example = { Mode = "802.3ad"; };
11261126 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBond;
11271127- description = ''
11271127+ description = lib.mdDoc ''
11281128 Each attribute in this set specifies an option in the
11291129- <literal>[Bond]</literal> section of the unit. See
11301130- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
11291129+ `[Bond]` section of the unit. See
11301130+ {manpage}`systemd.netdev(5)` for details.
11311131 '';
11321132 };
11331133···11351135 default = {};
11361136 example = { InterfaceId = 1; };
11371137 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionXfrm;
11381138- description = ''
11381138+ description = lib.mdDoc ''
11391139 Each attribute in this set specifies an option in the
11401140- <literal>[Xfrm]</literal> section of the unit. See
11411141- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
11401140+ `[Xfrm]` section of the unit. See
11411141+ {manpage}`systemd.netdev(5)` for details.
11421142 '';
11431143 };
11441144···11461146 default = {};
11471147 example = { Table = 2342; };
11481148 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVRF;
11491149- description = ''
11491149+ description = lib.mdDoc ''
11501150 Each attribute in this set specifies an option in the
11511151- <literal>[VRF]</literal> section of the unit. See
11521152- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
11511151+ `[VRF]` section of the unit. See
11521152+ {manpage}`systemd.netdev(5)` for details.
11531153 A detailed explanation about how VRFs work can be found in the
11541154- <link xlink:href="https://www.kernel.org/doc/Documentation/networking/vrf.txt">kernel docs</link>.
11541154+ [kernel docs](https://www.kernel.org/doc/Documentation/networking/vrf.txt).
11551155 '';
11561156 };
11571157···11621162 RoutingAlgorithm = "batman-v";
11631163 };
11641164 type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBatmanAdvanced;
11651165- description = ''
11651165+ description = lib.mdDoc ''
11661166 Each attribute in this set specifies an option in the
11671167- <literal>[BatmanAdvanced]</literal> section of the unit. See
11681168- <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
11671167+ `[BatmanAdvanced]` section of the unit. See
11681168+ {manpage}`systemd.netdev(5)` for details.
11691169 '';
11701170 };
11711171···11761176 addressConfig = mkOption {
11771177 example = { Address = "192.168.0.100/24"; };
11781178 type = types.addCheck (types.attrsOf unitOption) check.network.sectionAddress;
11791179- description = ''
11791179+ description = lib.mdDoc ''
11801180 Each attribute in this set specifies an option in the
11811181- <literal>[Address]</literal> section of the unit. See
11821182- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
11811181+ `[Address]` section of the unit. See
11821182+ {manpage}`systemd.network(5)` for details.
11831183 '';
11841184 };
11851185 };
···11911191 default = { };
11921192 example = { Table = 10; IncomingInterface = "eth1"; Family = "both"; };
11931193 type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoutingPolicyRule;
11941194- description = ''
11941194+ description = lib.mdDoc ''
11951195 Each attribute in this set specifies an option in the
11961196- <literal>[RoutingPolicyRule]</literal> section of the unit. See
11971197- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
11961196+ `[RoutingPolicyRule]` section of the unit. See
11971197+ {manpage}`systemd.network(5)` for details.
11981198 '';
11991199 };
12001200 };
···12061206 default = {};
12071207 example = { Gateway = "192.168.0.1"; };
12081208 type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoute;
12091209- description = ''
12091209+ description = lib.mdDoc ''
12101210 Each attribute in this set specifies an option in the
12111211- <literal>[Route]</literal> section of the unit. See
12121212- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
12111211+ `[Route]` section of the unit. See
12121212+ {manpage}`systemd.network(5)` for details.
12131213 '';
12141214 };
12151215 };
···12211221 default = {};
12221222 example = { Prefix = "fd00::/64"; };
12231223 type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6Prefix;
12241224- description = ''
12241224+ description = lib.mdDoc ''
12251225 Each attribute in this set specifies an option in the
12261226- <literal>[IPv6Prefix]</literal> section of the unit. See
12271227- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
12261226+ `[IPv6Prefix]` section of the unit. See
12271227+ {manpage}`systemd.network(5)` for details.
12281228 '';
12291229 };
12301230 };
···12361236 default = {};
12371237 example = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; };
12381238 type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServerStaticLease;
12391239- description = ''
12391239+ description = lib.mdDoc ''
12401240 Each attribute in this set specifies an option in the
12411241- <literal>[DHCPServerStaticLease]</literal> section of the unit. See
12421242- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
12411241+ `[DHCPServerStaticLease]` section of the unit. See
12421242+ {manpage}`systemd.network(5)` for details.
1243124312441244 Make sure to configure the corresponding client interface to use
12451245- <literal>ClientIdentifier=mac</literal>.
12451245+ `ClientIdentifier=mac`.
12461246 '';
12471247 };
12481248 };
···12541254 default = {};
12551255 example = { Unmanaged = true; };
12561256 type = types.addCheck (types.attrsOf unitOption) check.network.sectionLink;
12571257- description = ''
12571257+ description = lib.mdDoc ''
12581258 Each attribute in this set specifies an option in the
12591259- <literal>[Link]</literal> section of the unit. See
12601260- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
12591259+ `[Link]` section of the unit. See
12601260+ {manpage}`systemd.network(5)` for details.
12611261 '';
12621262 };
12631263···12651265 default = {};
12661266 example = { Description = "My Network"; };
12671267 type = types.addCheck (types.attrsOf unitOption) check.network.sectionNetwork;
12681268- description = ''
12681268+ description = lib.mdDoc ''
12691269 Each attribute in this set specifies an option in the
12701270- <literal>[Network]</literal> section of the unit. See
12711271- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
12701270+ `[Network]` section of the unit. See
12711271+ {manpage}`systemd.network(5)` for details.
12721272 '';
12731273 };
12741274···12831283 default = {};
12841284 example = { UseDNS = true; UseRoutes = true; };
12851285 type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv4;
12861286- description = ''
12861286+ description = lib.mdDoc ''
12871287 Each attribute in this set specifies an option in the
12881288- <literal>[DHCPv4]</literal> section of the unit. See
12891289- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
12881288+ `[DHCPv4]` section of the unit. See
12891289+ {manpage}`systemd.network(5)` for details.
12901290 '';
12911291 };
12921292···12941294 default = {};
12951295 example = { UseDNS = true; };
12961296 type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv6;
12971297- description = ''
12971297+ description = lib.mdDoc ''
12981298 Each attribute in this set specifies an option in the
12991299- <literal>[DHCPv6]</literal> section of the unit. See
13001300- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
12991299+ `[DHCPv6]` section of the unit. See
13001300+ {manpage}`systemd.network(5)` for details.
13011301 '';
13021302 };
13031303···13051305 default = {};
13061306 example = { SubnetId = "auto"; Announce = true; };
13071307 type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv6PrefixDelegation;
13081308- description = ''
13081308+ description = lib.mdDoc ''
13091309 Each attribute in this set specifies an option in the
13101310- <literal>[DHCPv6PrefixDelegation]</literal> section of the unit. See
13111311- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
13101310+ `[DHCPv6PrefixDelegation]` section of the unit. See
13111311+ {manpage}`systemd.network(5)` for details.
13121312 '';
13131313 };
13141314···13161316 default = {};
13171317 example = { UseDNS = true; DHCPv6Client = "always"; };
13181318 type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6AcceptRA;
13191319- description = ''
13191319+ description = lib.mdDoc ''
13201320 Each attribute in this set specifies an option in the
13211321- <literal>[IPv6AcceptRA]</literal> section of the unit. See
13221322- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
13211321+ `[IPv6AcceptRA]` section of the unit. See
13221322+ {manpage}`systemd.network(5)` for details.
13231323 '';
13241324 };
13251325···13271327 default = {};
13281328 example = { PoolOffset = 50; EmitDNS = false; };
13291329 type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServer;
13301330- description = ''
13301330+ description = lib.mdDoc ''
13311331 Each attribute in this set specifies an option in the
13321332- <literal>[DHCPServer]</literal> section of the unit. See
13331333- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
13321332+ `[DHCPServer]` section of the unit. See
13331333+ {manpage}`systemd.network(5)` for details.
13341334 '';
13351335 };
13361336···13451345 default = {};
13461346 example = { EmitDNS = true; Managed = true; OtherInformation = true; };
13471347 type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6SendRA;
13481348- description = ''
13481348+ description = lib.mdDoc ''
13491349 Each attribute in this set specifies an option in the
13501350- <literal>[IPv6SendRA]</literal> section of the unit. See
13511351- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
13501350+ `[IPv6SendRA]` section of the unit. See
13511351+ {manpage}`systemd.network(5)` for details.
13521352 '';
13531353 };
13541354···13561356 default = [];
13571357 example = [ { dhcpServerStaticLeaseConfig = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; }; } ];
13581358 type = with types; listOf (submodule dhcpServerStaticLeaseOptions);
13591359- description = ''
13591359+ description = lib.mdDoc ''
13601360 A list of DHCPServerStaticLease sections to be added to the unit. See
13611361- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
13611361+ {manpage}`systemd.network(5)` for details.
13621362 '';
13631363 };
13641364···13661366 default = [];
13671367 example = [ { ipv6PrefixConfig = { AddressAutoconfiguration = true; OnLink = true; }; } ];
13681368 type = with types; listOf (submodule ipv6PrefixOptions);
13691369- description = ''
13691369+ description = lib.mdDoc ''
13701370 A list of ipv6Prefix sections to be added to the unit. See
13711371- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
13711371+ {manpage}`systemd.network(5)` for details.
13721372 '';
13731373 };
13741374···13991399 address = mkOption {
14001400 default = [ ];
14011401 type = types.listOf types.str;
14021402- description = ''
14021402+ description = lib.mdDoc ''
14031403 A list of addresses to be added to the network section of the
14041404- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14041404+ unit. See {manpage}`systemd.network(5)` for details.
14051405 '';
14061406 };
1407140714081408 gateway = mkOption {
14091409 default = [ ];
14101410 type = types.listOf types.str;
14111411- description = ''
14111411+ description = lib.mdDoc ''
14121412 A list of gateways to be added to the network section of the
14131413- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14131413+ unit. See {manpage}`systemd.network(5)` for details.
14141414 '';
14151415 };
1416141614171417 dns = mkOption {
14181418 default = [ ];
14191419 type = types.listOf types.str;
14201420- description = ''
14201420+ description = lib.mdDoc ''
14211421 A list of dns servers to be added to the network section of the
14221422- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14221422+ unit. See {manpage}`systemd.network(5)` for details.
14231423 '';
14241424 };
1425142514261426 ntp = mkOption {
14271427 default = [ ];
14281428 type = types.listOf types.str;
14291429- description = ''
14291429+ description = lib.mdDoc ''
14301430 A list of ntp servers to be added to the network section of the
14311431- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14311431+ unit. See {manpage}`systemd.network(5)` for details.
14321432 '';
14331433 };
1434143414351435 bridge = mkOption {
14361436 default = [ ];
14371437 type = types.listOf types.str;
14381438- description = ''
14381438+ description = lib.mdDoc ''
14391439 A list of bridge interfaces to be added to the network section of the
14401440- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14401440+ unit. See {manpage}`systemd.network(5)` for details.
14411441 '';
14421442 };
1443144314441444 bond = mkOption {
14451445 default = [ ];
14461446 type = types.listOf types.str;
14471447- description = ''
14471447+ description = lib.mdDoc ''
14481448 A list of bond interfaces to be added to the network section of the
14491449- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14491449+ unit. See {manpage}`systemd.network(5)` for details.
14501450 '';
14511451 };
1452145214531453 vrf = mkOption {
14541454 default = [ ];
14551455 type = types.listOf types.str;
14561456- description = ''
14561456+ description = lib.mdDoc ''
14571457 A list of vrf interfaces to be added to the network section of the
14581458- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14581458+ unit. See {manpage}`systemd.network(5)` for details.
14591459 '';
14601460 };
1461146114621462 vlan = mkOption {
14631463 default = [ ];
14641464 type = types.listOf types.str;
14651465- description = ''
14651465+ description = lib.mdDoc ''
14661466 A list of vlan interfaces to be added to the network section of the
14671467- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14671467+ unit. See {manpage}`systemd.network(5)` for details.
14681468 '';
14691469 };
1470147014711471 macvlan = mkOption {
14721472 default = [ ];
14731473 type = types.listOf types.str;
14741474- description = ''
14741474+ description = lib.mdDoc ''
14751475 A list of macvlan interfaces to be added to the network section of the
14761476- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14761476+ unit. See {manpage}`systemd.network(5)` for details.
14771477 '';
14781478 };
1479147914801480 vxlan = mkOption {
14811481 default = [ ];
14821482 type = types.listOf types.str;
14831483- description = ''
14831483+ description = lib.mdDoc ''
14841484 A list of vxlan interfaces to be added to the network section of the
14851485- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14851485+ unit. See {manpage}`systemd.network(5)` for details.
14861486 '';
14871487 };
1488148814891489 tunnel = mkOption {
14901490 default = [ ];
14911491 type = types.listOf types.str;
14921492- description = ''
14921492+ description = lib.mdDoc ''
14931493 A list of tunnel interfaces to be added to the network section of the
14941494- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
14941494+ unit. See {manpage}`systemd.network(5)` for details.
14951495 '';
14961496 };
1497149714981498 xfrm = mkOption {
14991499 default = [ ];
15001500 type = types.listOf types.str;
15011501- description = ''
15011501+ description = lib.mdDoc ''
15021502 A list of xfrm interfaces to be added to the network section of the
15031503- unit. See <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
15031503+ unit. See {manpage}`systemd.network(5)` for details.
15041504 '';
15051505 };
1506150615071507 addresses = mkOption {
15081508 default = [ ];
15091509 type = with types; listOf (submodule addressOptions);
15101510- description = ''
15101510+ description = lib.mdDoc ''
15111511 A list of address sections to be added to the unit. See
15121512- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
15121512+ {manpage}`systemd.network(5)` for details.
15131513 '';
15141514 };
1515151515161516 routingPolicyRules = mkOption {
15171517 default = [ ];
15181518 type = with types; listOf (submodule routingPolicyRulesOptions);
15191519- description = ''
15191519+ description = lib.mdDoc ''
15201520 A list of routing policy rules sections to be added to the unit. See
15211521- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
15211521+ {manpage}`systemd.network(5)` for details.
15221522 '';
15231523 };
1524152415251525 routes = mkOption {
15261526 default = [ ];
15271527 type = with types; listOf (submodule routeOptions);
15281528- description = ''
15281528+ description = lib.mdDoc ''
15291529 A list of route sections to be added to the unit. See
15301530- <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
15301530+ {manpage}`systemd.network(5)` for details.
15311531 '';
15321532 };
15331533···15521552 default = {};
15531553 example = { foo = 27; };
15541554 type = with types; attrsOf int;
15551555- description = ''
15551555+ description = lib.mdDoc ''
15561556 Defines route table names as an attrset of name to number.
15571557- See <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
15571557+ See {manpage}`networkd.conf(5)` for details.
15581558 '';
15591559 };
15601560
+9-9
nixos/modules/system/boot/systemd/nspawn.nix
···5050 default = {};
5151 example = { Parameters = "/bin/sh"; };
5252 type = types.addCheck (types.attrsOf unitOption) checkExec;
5353- description = ''
5353+ description = lib.mdDoc ''
5454 Each attribute in this set specifies an option in the
5555- <literal>[Exec]</literal> section of this unit. See
5656- <citerefentry><refentrytitle>systemd.nspawn</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
5555+ `[Exec]` section of this unit. See
5656+ {manpage}`systemd.nspawn(5)` for details.
5757 '';
5858 };
5959···6161 default = {};
6262 example = { Bind = [ "/home/alice" ]; };
6363 type = types.addCheck (types.attrsOf unitOption) checkFiles;
6464- description = ''
6464+ description = lib.mdDoc ''
6565 Each attribute in this set specifies an option in the
6666- <literal>[Files]</literal> section of this unit. See
6767- <citerefentry><refentrytitle>systemd.nspawn</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
6666+ `[Files]` section of this unit. See
6767+ {manpage}`systemd.nspawn(5)` for details.
6868 '';
6969 };
7070···7272 default = {};
7373 example = { Private = false; };
7474 type = types.addCheck (types.attrsOf unitOption) checkNetwork;
7575- description = ''
7575+ description = lib.mdDoc ''
7676 Each attribute in this set specifies an option in the
7777- <literal>[Network]</literal> section of this unit. See
7878- <citerefentry><refentrytitle>systemd.nspawn</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.
7777+ `[Network]` section of this unit. See
7878+ {manpage}`systemd.nspawn(5)` for details.
7979 '';
8080 };
8181 };
+4-4
nixos/modules/tasks/auto-upgrade.nix
···7777 type = types.str;
7878 default = "04:40";
7979 example = "daily";
8080- description = ''
8080+ description = lib.mdDoc ''
8181 How often or when upgrade occurs. For most desktop and server systems
8282 a sufficient upgrade frequency is once a day.
83838484 The format is described in
8585- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
8585+ {manpage}`systemd.time(7)`.
8686 '';
8787 };
8888···101101 default = "0";
102102 type = types.str;
103103 example = "45min";
104104- description = ''
104104+ description = lib.mdDoc ''
105105 Add a randomized delay before each automatic upgrade.
106106 The delay will be chosen between zero and this value.
107107 This value must be a time span in the format specified by
108108- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
108108+ {manpage}`systemd.time(7)`
109109 '';
110110 };
111111
+3-3
nixos/modules/tasks/filesystems/btrfs.nix
···3636 default = "monthly";
3737 type = types.str;
3838 example = "weekly";
3939- description = ''
3939+ description = lib.mdDoc ''
4040 Systemd calendar expression for when to scrub btrfs filesystems.
4141 The recommended period is a month but could be less
4242- (<citerefentry><refentrytitle>btrfs-scrub</refentrytitle><manvolnum>8</manvolnum></citerefentry>).
4242+ ({manpage}`btrfs-scrub(8)`).
4343 See
4444- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
4444+ {manpage}`systemd.time(7)`
4545 for more information on the syntax.
4646 '';
4747 };
+4-4
nixos/modules/tasks/filesystems/zfs.nix
···388388 default = "weekly";
389389 type = types.str;
390390 example = "daily";
391391- description = ''
391391+ description = lib.mdDoc ''
392392 How often we run trim. For most desktop and server systems
393393 a sufficient trimming frequency is once a week.
394394395395 The format is described in
396396- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
396396+ {manpage}`systemd.time(7)`.
397397 '';
398398 };
399399 };
···405405 default = "Sun, 02:00";
406406 type = types.str;
407407 example = "daily";
408408- description = ''
408408+ description = lib.mdDoc ''
409409 Systemd calendar expression when to scrub ZFS pools. See
410410- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
410410+ {manpage}`systemd.time(7)`.
411411 '';
412412 };
413413
+4-4
nixos/modules/tasks/network-interfaces.nix
···876876 primary = { port = 9001; local = { address = "192.0.2.1"; dev = "eth0"; }; };
877877 backup = { port = 9002; };
878878 };
879879- description = ''
879879+ description = lib.mdDoc ''
880880 This option allows you to configure Foo Over UDP and Generic UDP Encapsulation
881881- endpoints. See <citerefentry><refentrytitle>ip-fou</refentrytitle><manvolnum>8</manvolnum></citerefentry> for details.
881881+ endpoints. See {manpage}`ip-fou(8)` for details.
882882 '';
883883 type = with types; attrsOf (submodule {
884884 options = {
···997997 options = {
998998 type = mkOption {
999999 type = enum [ "fou" "gue" ];
10001000- description = ''
10001000+ description = lib.mdDoc ''
10011001 Selects encapsulation type. See
10021002- <citerefentry><refentrytitle>ip-link</refentrytitle><manvolnum>8</manvolnum></citerefentry> for details.
10021002+ {manpage}`ip-link(8)` for details.
10031003 '';
10041004 };
10051005
+3-3
nixos/modules/virtualisation/azure-agent.nix
···6060 options.virtualisation.azure.agent = {
6161 enable = mkOption {
6262 default = false;
6363- description = "Whether to enable the Windows Azure Linux Agent.";
6363+ description = lib.mdDoc "Whether to enable the Windows Azure Linux Agent.";
6464 };
6565 verboseLogging = mkOption {
6666 default = false;
6767- description = "Whether to enable verbose logging.";
6767+ description = lib.mdDoc "Whether to enable verbose logging.";
6868 };
6969 mountResourceDisk = mkOption {
7070 default = true;
7171- description = "Whether the agent should format (ext4) and mount the resource disk to /mnt/resource.";
7171+ description = lib.mdDoc "Whether the agent should format (ext4) and mount the resource disk to /mnt/resource.";
7272 };
7373 };
7474
+2-2
nixos/modules/virtualisation/docker.nix
···142142 dates = mkOption {
143143 default = "weekly";
144144 type = types.str;
145145- description = ''
145145+ description = lib.mdDoc ''
146146 Specification (in the format described by
147147- <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>) of the time at
147147+ {manpage}`systemd.time(7)`) of the time at
148148 which the prune will occur.
149149 '';
150150 };
+4-4
nixos/modules/virtualisation/lxc.nix
···3131 type = types.lines;
3232 default = "";
3333 description =
3434- ''
3434+ lib.mdDoc ''
3535 This is the system-wide LXC config. See
3636- <citerefentry><refentrytitle>lxc.system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
3636+ {manpage}`lxc.system.conf(5)`.
3737 '';
3838 };
3939···4242 type = types.lines;
4343 default = "";
4444 description =
4545- ''
4545+ lib.mdDoc ''
4646 Default config (default.conf) for new containers, i.e. for
4747- network config. See <citerefentry><refentrytitle>lxc.container.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
4747+ network config. See {manpage}`lxc.container.conf(5)`.
4848 '';
4949 };
5050
+2-2
nixos/modules/virtualisation/nixos-containers.nix
···629629 timeoutStartSec = mkOption {
630630 type = types.str;
631631 default = "1min";
632632- description = ''
632632+ description = lib.mdDoc ''
633633 Time for the container to start. In case of a timeout,
634634 the container processes get killed.
635635- See <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
635635+ See {manpage}`systemd.time(7)`
636636 for more information about the format.
637637 '';
638638 };
+9-9
nixos/modules/virtualisation/podman/default.nix
···5757 mkOption {
5858 type = types.bool;
5959 default = false;
6060- description = ''
6060+ description = lib.mdDoc ''
6161 This option enables Podman, a daemonless container engine for
6262 developing, managing, and running OCI Containers on your Linux System.
63636464- It is a drop-in replacement for the <command>docker</command> command.
6464+ It is a drop-in replacement for the {command}`docker` command.
6565 '';
6666 };
67676868 dockerSocket.enable = mkOption {
6969 type = types.bool;
7070 default = false;
7171- description = ''
7171+ description = lib.mdDoc ''
7272 Make the Podman socket available in place of the Docker socket, so
7373 Docker tools can find the Podman socket.
74747575 Podman implements the Docker API.
76767777- Users must be in the <literal>podman</literal> group in order to connect. As
7777+ Users must be in the `podman` group in order to connect. As
7878 with Docker, members of this group can gain root access.
7979 '';
8080 };
···8282 dockerCompat = mkOption {
8383 type = types.bool;
8484 default = false;
8585- description = ''
8686- Create an alias mapping <command>docker</command> to <command>podman</command>.
8585+ description = lib.mdDoc ''
8686+ Create an alias mapping {command}`docker` to {command}`podman`.
8787 '';
8888 };
89899090 enableNvidia = mkOption {
9191 type = types.bool;
9292 default = false;
9393- description = ''
9393+ description = lib.mdDoc ''
9494 Enable use of NVidia GPUs from within podman containers.
9595 '';
9696 };
···103103 pkgs.gvisor
104104 ]
105105 '';
106106- description = ''
106106+ description = lib.mdDoc ''
107107 Extra packages to be installed in the Podman wrapper.
108108 '';
109109 };
···120120 defaultNetwork.extraPlugins = lib.mkOption {
121121 type = types.listOf json.type;
122122 default = [];
123123- description = ''
123123+ description = lib.mdDoc ''
124124 Extra CNI plugin configurations to add to podman's default network.
125125 '';
126126 };
···32323333 server = mkOption {
3434 type = types.enum [];
3535- description = ''
3535+ description = lib.mdDoc ''
3636 Choice of TLS proxy server.
3737 '';
3838 example = "ghostunnel";
···4141 openFirewall = mkOption {
4242 type = types.bool;
4343 default = false;
4444- description = ''
4444+ description = lib.mdDoc ''
4545 Whether to open the port in the firewall.
4646 '';
4747 };
48484949 tls.cacert = mkOption {
5050 type = types.path;
5151- description = ''
5151+ description = lib.mdDoc ''
5252 Path to CA certificate to use for client authentication.
5353 '';
5454 };
55555656 tls.cert = mkOption {
5757 type = types.path;
5858- description = ''
5858+ description = lib.mdDoc ''
5959 Path to certificate describing the server.
6060 '';
6161 };
62626363 tls.key = mkOption {
6464 type = types.path;
6565- description = ''
6565+ description = lib.mdDoc ''
6666 Path to the private key corresponding to the server certificate.
67676868 Use a string for this setting. Otherwise it will be copied to the Nix
···7373 port = mkOption {
7474 type = types.port;
7575 default = 2376;
7676- description = ''
7676+ description = lib.mdDoc ''
7777 TCP port number for receiving TLS connections.
7878 '';
7979 };
8080 listenAddress = mkOption {
8181 type = types.str;
8282 default = "0.0.0.0";
8383- description = ''
8383+ description = lib.mdDoc ''
8484 Interface address for receiving TLS connections.
8585 '';
8686 };
+43-43
nixos/modules/virtualisation/qemu-vm.nix
···27272828 file = mkOption {
2929 type = types.str;
3030- description = "The file image used for this drive.";
3030+ description = lib.mdDoc "The file image used for this drive.";
3131 };
32323333 driveExtraOpts = mkOption {
3434 type = types.attrsOf types.str;
3535 default = {};
3636- description = "Extra options passed to drive flag.";
3636+ description = lib.mdDoc "Extra options passed to drive flag.";
3737 };
38383939 deviceExtraOpts = mkOption {
4040 type = types.attrsOf types.str;
4141 default = {};
4242- description = "Extra options passed to device flag.";
4242+ description = lib.mdDoc "Extra options passed to device flag.";
4343 };
44444545 name = mkOption {
4646 type = types.nullOr types.str;
4747 default = null;
4848 description =
4949- "A name for the drive. Must be unique in the drives list. Not passed to qemu.";
4949+ lib.mdDoc "A name for the drive. Must be unique in the drives list. Not passed to qemu.";
5050 };
51515252 };
···298298 type = types.ints.positive;
299299 default = 1024;
300300 description =
301301- ''
301301+ lib.mdDoc ''
302302 The memory size in megabytes of the virtual machine.
303303 '';
304304 };
···308308 type = types.ints.positive;
309309 default = 16384;
310310 description =
311311- ''
311311+ lib.mdDoc ''
312312 The msize (maximum packet size) option passed to 9p file systems, in
313313 bytes. Increasing this should increase performance significantly,
314314 at the cost of higher RAM usage.
···320320 type = types.nullOr types.ints.positive;
321321 default = 1024;
322322 description =
323323- ''
323323+ lib.mdDoc ''
324324 The disk size in megabytes of the virtual machine.
325325 '';
326326 };
···331331 default = "./${config.system.name}.qcow2";
332332 defaultText = literalExpression ''"./''${config.system.name}.qcow2"'';
333333 description =
334334- ''
334334+ lib.mdDoc ''
335335 Path to the disk image containing the root filesystem.
336336 The image will be created on startup if it does not
337337 exist.
···343343 type = types.path;
344344 example = "/dev/vda";
345345 description =
346346- ''
346346+ lib.mdDoc ''
347347 The disk to be used for the root filesystem.
348348 '';
349349 };
···353353 type = types.listOf types.ints.positive;
354354 default = [];
355355 description =
356356- ''
356356+ lib.mdDoc ''
357357 Additional disk images to provide to the VM. The value is
358358 a list of size in megabytes of each disk. These disks are
359359 writeable by the VM.
···365365 type = types.bool;
366366 default = true;
367367 description =
368368- ''
368368+ lib.mdDoc ''
369369 Whether to run QEMU with a graphics window, or in nographic mode.
370370 Serial console will be enabled on both settings, but this will
371371 change the preferred console.
···377377 type = options.services.xserver.resolutions.type.nestedTypes.elemType;
378378 default = { x = 1024; y = 768; };
379379 description =
380380- ''
380380+ lib.mdDoc ''
381381 The resolution of the virtual machine display.
382382 '';
383383 };
···387387 type = types.ints.positive;
388388 default = 1;
389389 description =
390390- ''
390390+ lib.mdDoc ''
391391 Specify the number of cores the guest is permitted to use.
392392 The number can be higher than the available cores on the
393393 host system.
···400400 (types.submodule {
401401 options.source = mkOption {
402402 type = types.str;
403403- description = "The path of the directory to share, can be a shell variable";
403403+ description = lib.mdDoc "The path of the directory to share, can be a shell variable";
404404 };
405405 options.target = mkOption {
406406 type = types.path;
407407- description = "The mount point of the directory inside the virtual machine";
407407+ description = lib.mdDoc "The mount point of the directory inside the virtual machine";
408408 };
409409 });
410410 default = { };
···412412 my-share = { source = "/path/to/be/shared"; target = "/mnt/shared"; };
413413 };
414414 description =
415415- ''
415415+ lib.mdDoc ''
416416 An attributes set of directories that will be shared with the
417417 virtual machine using VirtFS (9P filesystem over VirtIO).
418418 The attribute name will be used as the 9P mount tag.
···424424 type = types.listOf types.path;
425425 default = [];
426426 description =
427427- ''
427427+ lib.mdDoc ''
428428 A list of paths whose closure should be made available to
429429 the VM.
430430···434434 garbage (because they are not registered in the Nix
435435 database of the guest).
436436437437- When <option>virtualisation.useNixStoreImage</option> is
437437+ When {option}`virtualisation.useNixStoreImage` is
438438 set, the closure is copied to the Nix store image.
439439 '';
440440 };
···459459 options.proto = mkOption {
460460 type = types.enum [ "tcp" "udp" ];
461461 default = "tcp";
462462- description = "The protocol to forward.";
462462+ description = lib.mdDoc "The protocol to forward.";
463463 };
464464 options.host.address = mkOption {
465465 type = types.str;
466466 default = "";
467467- description = "The IPv4 address of the host.";
467467+ description = lib.mdDoc "The IPv4 address of the host.";
468468 };
469469 options.host.port = mkOption {
470470 type = types.port;
471471- description = "The host port to be mapped.";
471471+ description = lib.mdDoc "The host port to be mapped.";
472472 };
473473 options.guest.address = mkOption {
474474 type = types.str;
475475 default = "";
476476- description = "The IPv4 address on the guest VLAN.";
476476+ description = lib.mdDoc "The IPv4 address on the guest VLAN.";
477477 };
478478 options.guest.port = mkOption {
479479 type = types.port;
480480- description = "The guest port to be mapped.";
480480+ description = lib.mdDoc "The guest port to be mapped.";
481481 };
482482 });
483483 default = [];
···514514 default = [ 1 ];
515515 example = [ 1 2 ];
516516 description =
517517- ''
517517+ lib.mdDoc ''
518518 Virtual networks to which the VM is connected. Each
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.«N».«M»</literal>,
523523+ `192.168.«N».«M»`,
524524 where «M» is the index of this VM
525525 in the list of VMs.
526526 '';
···531531 type = types.bool;
532532 default = true; # FIXME
533533 description =
534534- ''
534534+ lib.mdDoc ''
535535 If enabled, the Nix store in the VM is made writable by
536536 layering an overlay filesystem on top of the host's Nix
537537 store.
···543543 type = types.bool;
544544 default = true;
545545 description =
546546- ''
546546+ lib.mdDoc ''
547547 Use a tmpfs for the writable store instead of writing to the VM's
548548 own filesystem.
549549 '';
···563563 type = types.package;
564564 default = pkgs.qemu_kvm;
565565 example = "pkgs.qemu_test";
566566- description = "QEMU package to use.";
566566+ description = lib.mdDoc "QEMU package to use.";
567567 };
568568569569 options =
···571571 type = types.listOf types.str;
572572 default = [];
573573 example = [ "-vga std" ];
574574- description = "Options passed to QEMU.";
574574+ description = lib.mdDoc "Options passed to QEMU.";
575575 };
576576577577 consoles = mkOption {
···580580 consoles = [ "${qemu-common.qemuSerialDevice},115200n8" "tty0" ];
581581 in if cfg.graphics then consoles else reverseList consoles;
582582 example = [ "console=tty1" ];
583583- description = ''
583583+ description = lib.mdDoc ''
584584 The output console devices to pass to the kernel command line via the
585585- <literal>console</literal> parameter, the primary console is the last
585585+ `console` parameter, the primary console is the last
586586 item of this list.
587587588588 By default it enables both serial console and
589589- <literal>tty0</literal>. The preferred console (last one) is based on
590590- the value of <option>virtualisation.graphics</option>.
589589+ `tty0`. The preferred console (last one) is based on
590590+ the value of {option}`virtualisation.graphics`.
591591 '';
592592 };
593593···599599 "-net nic,netdev=user.0,model=virtio"
600600 "-netdev user,id=user.0,\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}"
601601 ];
602602- description = ''
602602+ description = lib.mdDoc ''
603603 Networking-related command-line options that should be passed to qemu.
604604 The default is to use userspace networking (SLiRP).
605605···612612 drives =
613613 mkOption {
614614 type = types.listOf (types.submodule driveOpts);
615615- description = "Drives passed to qemu.";
615615+ description = lib.mdDoc "Drives passed to qemu.";
616616 apply = addDeviceNames;
617617 };
618618···621621 type = types.enum [ "virtio" "scsi" "ide" ];
622622 default = "virtio";
623623 example = "scsi";
624624- description = "The interface used for the virtual hard disks.";
624624+ description = lib.mdDoc "The interface used for the virtual hard disks.";
625625 };
626626627627 guestAgent.enable =
628628 mkOption {
629629 type = types.bool;
630630 default = true;
631631- description = ''
631631+ description = lib.mdDoc ''
632632 Enable the Qemu guest agent.
633633 '';
634634 };
···637637 mkOption {
638638 type = types.bool;
639639 default = true;
640640- description = ''
640640+ description = lib.mdDoc ''
641641 Enable the virtio-keyboard device.
642642 '';
643643 };
···647647 mkOption {
648648 type = types.bool;
649649 default = false;
650650- description = ''
650650+ description = lib.mdDoc ''
651651 Build and use a disk image for the Nix store, instead of
652652 accessing the host's one through 9p.
653653···662662 type = types.bool;
663663 default = false;
664664 description =
665665- ''
665665+ lib.mdDoc ''
666666 If enabled, the virtual machine will be booted using the
667667 regular boot loader (i.e., GRUB 1 or 2). This allows
668668 testing of the boot loader. If
···677677 type = types.bool;
678678 default = false;
679679 description =
680680- ''
680680+ lib.mdDoc ''
681681 If enabled, the virtual machine will provide a EFI boot
682682 manager.
683683 useEFIBoot is ignored if useBootLoader == false.
···689689 type = types.bool;
690690 default = true;
691691 description =
692692- ''
692692+ lib.mdDoc ''
693693 If enabled, the boot disk of the virtual machine will be
694694 formatted and mounted with the default filesystems for
695695 testing. Swap devices and LUKS will be disabled.
···705705 default = "./${config.system.name}-efi-vars.fd";
706706 defaultText = literalExpression ''"./''${config.system.name}-efi-vars.fd"'';
707707 description =
708708- ''
708708+ lib.mdDoc ''
709709 Path to nvram image containing UEFI variables. The will be created
710710 on startup if it does not exist.
711711 '';