···871# adds `FOOBAR=baz` to `$out/bin/foo`’s environment
872makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
873874-# prefixes the binary paths of `hello` and `git`
0875# Be advised that paths often should be patched in directly
876# (via string replacements or in `configurePhase`).
877-makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello git ]}
00878```
000000000000879880There’s many more kinds of arguments, they are documented in `nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh` for the `makeWrapper` implementation and in `nixpkgs/pkgs/build-support/setup-hooks/make-binary-wrapper/make-binary-wrapper.sh` for the `makeBinaryWrapper` implementation.
881
···871# adds `FOOBAR=baz` to `$out/bin/foo`’s environment
872makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
873874+# Prefixes the binary paths of `hello` and `git`
875+# and suffixes the binary path of `xdg-utils`.
876# Be advised that paths often should be patched in directly
877# (via string replacements or in `configurePhase`).
878+makeWrapper $out/bin/foo $wrapperfile \
879+ --prefix PATH : ${lib.makeBinPath [ hello git ]} \
880+ --suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
881```
882+883+Packages may expect or require other utilities to be available at runtime.
884+`makeWrapper` can be used to add packages to a `PATH` environment variable local to a wrapper.
885+886+Use `--prefix` to explicitly set dependencies in `PATH`.
887+888+:::{note}
889+`--prefix` essentially hard-codes dependencies into the wrapper.
890+They cannot be overridden without rebuilding the package.
891+:::
892+893+If dependencies should be resolved at runtime, use `--suffix` to append fallback values to `PATH`.
894895There’s many more kinds of arguments, they are documented in `nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh` for the `makeWrapper` implementation and in `nixpkgs/pkgs/build-support/setup-hooks/make-binary-wrapper/make-binary-wrapper.sh` for the `makeBinaryWrapper` implementation.
896
+5-5
nixos/modules/config/krb5/default.nix
···204 admin_server = SYSLOG:NOTICE
205 default = SYSLOG:NOTICE
206 '';
207- description = ''
208- These lines go to the end of <literal>krb5.conf</literal> verbatim.
209- <literal>krb5.conf</literal> may include any of the relations that are
210- valid for <literal>kdc.conf</literal> (see <literal>man
211- kdc.conf</literal>), but it is not a recommended practice.
212 '';
213 };
214
···204 admin_server = SYSLOG:NOTICE
205 default = SYSLOG:NOTICE
206 '';
207+ description = lib.mdDoc ''
208+ These lines go to the end of `krb5.conf` verbatim.
209+ `krb5.conf` may include any of the relations that are
210+ valid for `kdc.conf` (see `man kdc.conf`),
211+ but it is not a recommended practice.
212 '';
213 };
214
+5-5
nixos/modules/config/ldap.nix
···186 policy = mkOption {
187 default = "hard_open";
188 type = types.enum [ "hard_open" "hard_init" "soft" ];
189- description = ''
190 Specifies the policy to use for reconnecting to an unavailable
191- LDAP server. The default is <literal>hard_open</literal>, which
192 reconnects if opening the connection to the directory server
193- failed. By contrast, <literal>hard_init</literal> reconnects if
194 initializing the connection failed. Initializing may not
195 actually contact the directory server, and it is possible that
196 a malformed configuration file will trigger reconnection. If
197- <literal>soft</literal> is specified, then
198- <package>nss_ldap</package> will return immediately on server
199 failure. All hard reconnect policies block with exponential
200 backoff before retrying.
201 '';
···186 policy = mkOption {
187 default = "hard_open";
188 type = types.enum [ "hard_open" "hard_init" "soft" ];
189+ description = lib.mdDoc ''
190 Specifies the policy to use for reconnecting to an unavailable
191+ LDAP server. The default is `hard_open`, which
192 reconnects if opening the connection to the directory server
193+ failed. By contrast, `hard_init` reconnects if
194 initializing the connection failed. Initializing may not
195 actually contact the directory server, and it is possible that
196 a malformed configuration file will trigger reconnection. If
197+ `soft` is specified, then
198+ `nss_ldap` will return immediately on server
199 failure. All hard reconnect policies block with exponential
200 backoff before retrying.
201 '';
+5-5
nixos/modules/config/system-path.nix
···84 <programlisting>${defaultPackagesText}</programlisting>
85 '';
86 example = [];
87- description = ''
88 Set of default packages that aren't strictly necessary
89 for a running system, entries can be removed for a more
90 minimal NixOS installation.
9192- Note: If <package>pkgs.nano</package> is removed from this list,
93 make sure another editor is installed and the
94- <literal>EDITOR</literal> environment variable is set to it.
95 Environment variables can be set using
96- <option>environment.variables</option>.
9798 Like with systemPackages, packages are installed to
99- <filename>/run/current-system/sw</filename>. They are
100 automatically available to all users, and are
101 automatically updated every time you rebuild the system
102 configuration.
···84 <programlisting>${defaultPackagesText}</programlisting>
85 '';
86 example = [];
87+ description = lib.mdDoc ''
88 Set of default packages that aren't strictly necessary
89 for a running system, entries can be removed for a more
90 minimal NixOS installation.
9192+ Note: If `pkgs.nano` is removed from this list,
93 make sure another editor is installed and the
94+ `EDITOR` environment variable is set to it.
95 Environment variables can be set using
96+ {option}`environment.variables`.
9798 Like with systemPackages, packages are installed to
99+ {file}`/run/current-system/sw`. They are
100 automatically available to all users, and are
101 automatically updated every time you rebuild the system
102 configuration.
+3-3
nixos/modules/config/xdg/portal.nix
···40 extraPortals = mkOption {
41 type = types.listOf types.package;
42 default = [ ];
43- description = ''
44 List of additional portals to add to path. Portals allow interaction
45 with system, like choosing files or taking screenshots. At minimum,
46 a desktop portal implementation should be listed. GNOME and KDE already
47- adds <package>xdg-desktop-portal-gtk</package>; and
48- <package>xdg-desktop-portal-kde</package> respectively. On other desktop
49 environments you probably want to add them yourself.
50 '';
51 };
···40 extraPortals = mkOption {
41 type = types.listOf types.package;
42 default = [ ];
43+ description = lib.mdDoc ''
44 List of additional portals to add to path. Portals allow interaction
45 with system, like choosing files or taking screenshots. At minimum,
46 a desktop portal implementation should be listed. GNOME and KDE already
47+ adds `xdg-desktop-portal-gtk`; and
48+ `xdg-desktop-portal-kde` respectively. On other desktop
49 environments you probably want to add them yourself.
50 '';
51 };
+3-3
nixos/modules/config/xdg/portals/lxqt.nix
···15 enable = mkEnableOption ''
16 the desktop portal for the LXQt desktop environment.
1718- This will add the <package>lxqt.xdg-desktop-portal-lxqt</package>
19 package (with the extra Qt styles) into the
20 <option>xdg.portal.extraPortals</option> option
21 '';
···29 pkgs.qtcurve
30 ];
31 '';
32- description = ''
33 Extra Qt styles that will be available to the
34- <package>lxqt.xdg-desktop-portal-lxqt</package>.
35 '';
36 };
37 };
···15 enable = mkEnableOption ''
16 the desktop portal for the LXQt desktop environment.
1718+ This will add the <literal>lxqt.xdg-desktop-portal-lxqt</literal>
19 package (with the extra Qt styles) into the
20 <option>xdg.portal.extraPortals</option> option
21 '';
···29 pkgs.qtcurve
30 ];
31 '';
32+ description = lib.mdDoc ''
33 Extra Qt styles that will be available to the
34+ `lxqt.xdg-desktop-portal-lxqt`.
35 '';
36 };
37 };
+4-4
nixos/modules/config/xdg/portals/wlr.nix
···17 enable = mkEnableOption ''
18 desktop portal for wlroots-based desktops
1920- This will add the <package>xdg-desktop-portal-wlr</package> package into
21 the <option>xdg.portal.extraPortals</option> option, and provide the
22 configuration file
23 '';
2425 settings = mkOption {
26- description = ''
27- Configuration for <package>xdg-desktop-portal-wlr</package>.
2829- See <literal>xdg-desktop-portal-wlr(5)</literal> for supported
30 values.
31 '';
32
···17 enable = mkEnableOption ''
18 desktop portal for wlroots-based desktops
1920+ This will add the <literal>xdg-desktop-portal-wlr</literal> package into
21 the <option>xdg.portal.extraPortals</option> option, and provide the
22 configuration file
23 '';
2425 settings = mkOption {
26+ description = lib.mdDoc ''
27+ Configuration for `xdg-desktop-portal-wlr`.
2829+ See `xdg-desktop-portal-wlr(5)` for supported
30 values.
31 '';
32
+5-5
nixos/modules/config/zram.nix
···103 default = "zstd";
104 example = "lz4";
105 type = with types; either (enum [ "lzo" "lz4" "zstd" ]) str;
106- description = ''
107- Compression algorithm. <literal>lzo</literal> has good compression,
108- but is slow. <literal>lz4</literal> has bad compression, but is fast.
109- <literal>zstd</literal> is both good compression and fast, but requires newer kernel.
110 You can check what other algorithms are supported by your zram device with
111- <programlisting>cat /sys/class/block/zram*/comp_algorithm</programlisting>
112 '';
113 };
114 };
···103 default = "zstd";
104 example = "lz4";
105 type = with types; either (enum [ "lzo" "lz4" "zstd" ]) str;
106+ description = lib.mdDoc ''
107+ Compression algorithm. `lzo` has good compression,
108+ but is slow. `lz4` has bad compression, but is fast.
109+ `zstd` is both good compression and fast, but requires newer kernel.
110 You can check what other algorithms are supported by your zram device with
111+ {command}`cat /sys/class/block/zram*/comp_algorithm`
112 '';
113 };
114 };
+1-1
nixos/modules/hardware/corectrl.nix
···20 type = types.str;
21 default = "0xfffd7fff";
22 example = "0xffffffff";
23- description = ''
24 Sets the `amdgpu.ppfeaturemask` kernel option.
25 In particular, it is used here to set the overdrive bit.
26 Default is `0xfffd7fff` as it is less likely to cause flicker issues.
···20 type = types.str;
21 default = "0xfffd7fff";
22 example = "0xffffffff";
23+ description = lib.mdDoc ''
24 Sets the `amdgpu.ppfeaturemask` kernel option.
25 In particular, it is used here to set the overdrive bit.
26 Default is `0xfffd7fff` as it is less likely to cause flicker issues.
+3-3
nixos/modules/hardware/cpu/amd-sev.nix
···8 options.hardware.cpu.amd.sev = {
9 enable = mkEnableOption "access to the AMD SEV device";
10 user = mkOption {
11- description = "Owner to assign to the SEV device.";
12 type = types.str;
13 default = "root";
14 };
15 group = mkOption {
16- description = "Group to assign to the SEV device.";
17 type = types.str;
18 default = defaultGroup;
19 };
20 mode = mkOption {
21- description = "Mode to set for the SEV device.";
22 type = types.str;
23 default = "0660";
24 };
···8 options.hardware.cpu.amd.sev = {
9 enable = mkEnableOption "access to the AMD SEV device";
10 user = mkOption {
11+ description = lib.mdDoc "Owner to assign to the SEV device.";
12 type = types.str;
13 default = "root";
14 };
15 group = mkOption {
16+ description = lib.mdDoc "Group to assign to the SEV device.";
17 type = types.str;
18 default = defaultGroup;
19 };
20 mode = mkOption {
21+ description = lib.mdDoc "Mode to set for the SEV device.";
22 type = types.str;
23 default = "0660";
24 };
+13-13
nixos/modules/installer/sd-card/sd-image.nix
···35 options.sdImage = {
36 imageName = mkOption {
37 default = "${config.sdImage.imageBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.img";
38- description = ''
39 Name of the generated image file.
40 '';
41 };
4243 imageBaseName = mkOption {
44 default = "nixos-sd-image";
45- description = ''
46 Prefix of the name of the generated image file.
47 '';
48 };
···50 storePaths = mkOption {
51 type = with types; listOf package;
52 example = literalExpression "[ pkgs.stdenv ]";
53- description = ''
54 Derivations to be included in the Nix store in the generated SD image.
55 '';
56 };
···74 firmwarePartitionID = mkOption {
75 type = types.str;
76 default = "0x2178694e";
77- description = ''
78 Volume ID for the /boot/firmware partition on the SD card. This value
79 must be a 32-bit hexadecimal number.
80 '';
···83 firmwarePartitionName = mkOption {
84 type = types.str;
85 default = "FIRMWARE";
86- description = ''
87 Name of the filesystem which holds the boot firmware.
88 '';
89 };
···92 type = types.nullOr types.str;
93 default = null;
94 example = "14e19a7b-0ae0-484d-9d54-43bd6fdc20c7";
95- description = ''
96 UUID for the filesystem on the main NixOS partition on the SD card.
97 '';
98 };
···101 type = types.int;
102 # As of 2019-08-18 the Raspberry pi firmware + u-boot takes ~18MiB
103 default = 30;
104- description = ''
105 Size of the /boot/firmware partition, in megabytes.
106 '';
107 };
108109 populateFirmwareCommands = mkOption {
110 example = literalExpression "'' cp \${pkgs.myBootLoader}/u-boot.bin firmware/ ''";
111- description = ''
112 Shell commands to populate the ./firmware directory.
113 All files in that directory are copied to the
114 /boot/firmware partition on the SD image.
···117118 populateRootCommands = mkOption {
119 example = literalExpression "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
120- description = ''
121 Shell commands to populate the ./files directory.
122 All files in that directory are copied to the
123 root (/) partition on the SD image. Use this to
···128 postBuildCommands = mkOption {
129 example = literalExpression "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
130 default = "";
131- description = ''
132 Shell commands to run after the image is built.
133 Can be used for boards requiring to dd u-boot SPL before actual partitions.
134 '';
···137 compressImage = mkOption {
138 type = types.bool;
139 default = true;
140- description = ''
141 Whether the SD image should be compressed using
142- <command>zstd</command>.
143 '';
144 };
145146 expandOnBoot = mkOption {
147 type = types.bool;
148 default = true;
149- description = ''
150 Whether to configure the sd image to expand it's partition on boot.
151 '';
152 };
···35 options.sdImage = {
36 imageName = mkOption {
37 default = "${config.sdImage.imageBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.img";
38+ description = lib.mdDoc ''
39 Name of the generated image file.
40 '';
41 };
4243 imageBaseName = mkOption {
44 default = "nixos-sd-image";
45+ description = lib.mdDoc ''
46 Prefix of the name of the generated image file.
47 '';
48 };
···50 storePaths = mkOption {
51 type = with types; listOf package;
52 example = literalExpression "[ pkgs.stdenv ]";
53+ description = lib.mdDoc ''
54 Derivations to be included in the Nix store in the generated SD image.
55 '';
56 };
···74 firmwarePartitionID = mkOption {
75 type = types.str;
76 default = "0x2178694e";
77+ description = lib.mdDoc ''
78 Volume ID for the /boot/firmware partition on the SD card. This value
79 must be a 32-bit hexadecimal number.
80 '';
···83 firmwarePartitionName = mkOption {
84 type = types.str;
85 default = "FIRMWARE";
86+ description = lib.mdDoc ''
87 Name of the filesystem which holds the boot firmware.
88 '';
89 };
···92 type = types.nullOr types.str;
93 default = null;
94 example = "14e19a7b-0ae0-484d-9d54-43bd6fdc20c7";
95+ description = lib.mdDoc ''
96 UUID for the filesystem on the main NixOS partition on the SD card.
97 '';
98 };
···101 type = types.int;
102 # As of 2019-08-18 the Raspberry pi firmware + u-boot takes ~18MiB
103 default = 30;
104+ description = lib.mdDoc ''
105 Size of the /boot/firmware partition, in megabytes.
106 '';
107 };
108109 populateFirmwareCommands = mkOption {
110 example = literalExpression "'' cp \${pkgs.myBootLoader}/u-boot.bin firmware/ ''";
111+ description = lib.mdDoc ''
112 Shell commands to populate the ./firmware directory.
113 All files in that directory are copied to the
114 /boot/firmware partition on the SD image.
···117118 populateRootCommands = mkOption {
119 example = literalExpression "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
120+ description = lib.mdDoc ''
121 Shell commands to populate the ./files directory.
122 All files in that directory are copied to the
123 root (/) partition on the SD image. Use this to
···128 postBuildCommands = mkOption {
129 example = literalExpression "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
130 default = "";
131+ description = lib.mdDoc ''
132 Shell commands to run after the image is built.
133 Can be used for boards requiring to dd u-boot SPL before actual partitions.
134 '';
···137 compressImage = mkOption {
138 type = types.bool;
139 default = true;
140+ description = lib.mdDoc ''
141 Whether the SD image should be compressed using
142+ {command}`zstd`.
143 '';
144 };
145146 expandOnBoot = mkOption {
147 type = types.bool;
148 default = true;
149+ description = lib.mdDoc ''
150 Whether to configure the sd image to expand it's partition on boot.
151 '';
152 };
+1-1
nixos/modules/misc/documentation.nix
···241 nixos.extraModules = mkOption {
242 type = types.listOf types.raw;
243 default = [];
244- description = ''
245 Modules for which to show options even when not imported.
246 '';
247 };
···241 nixos.extraModules = mkOption {
242 type = types.listOf types.raw;
243 default = [];
244+ description = lib.mdDoc ''
245 Modules for which to show options even when not imported.
246 '';
247 };
+10-10
nixos/modules/misc/nixpkgs.nix
···117 '';
118 type = pkgsType;
119 example = literalExpression "import <nixpkgs> {}";
120- description = ''
121 If set, the pkgs argument to all NixOS modules is the value of
122- this option, extended with <literal>nixpkgs.overlays</literal>, if
123- that is also set. Either <literal>nixpkgs.crossSystem</literal> or
124- <literal>nixpkgs.localSystem</literal> will be used in an assertion
125 to check that the NixOS and Nixpkgs architectures match. Any
126- other options in <literal>nixpkgs.*</literal>, notably <literal>config</literal>,
127 will be ignored.
128129 If unset, the pkgs argument to all NixOS modules is determined
···132 The default value imports the Nixpkgs source files
133 relative to the location of this NixOS module, because
134 NixOS and Nixpkgs are distributed together for consistency,
135- so the <literal>nixos</literal> in the default value is in fact a
136- relative path. The <literal>config</literal>, <literal>overlays</literal>,
137- <literal>localSystem</literal>, and <literal>crossSystem</literal> come
138 from this option's siblings.
139140 This option can be used by applications like NixOps to increase
141 the performance of evaluation, or to create packages that depend
142 on a container that should be built with the exact same evaluation
143 of Nixpkgs, for example. Applications like this should set
144- their default value using <literal>lib.mkDefault</literal>, so
145 user-provided configuration can override it without using
146- <literal>lib</literal>.
147148 Note that using a distinct version of Nixpkgs with NixOS may
149 be an unexpected source of problems. Use this option with care.
···117 '';
118 type = pkgsType;
119 example = literalExpression "import <nixpkgs> {}";
120+ description = lib.mdDoc ''
121 If set, the pkgs argument to all NixOS modules is the value of
122+ this option, extended with `nixpkgs.overlays`, if
123+ that is also set. Either `nixpkgs.crossSystem` or
124+ `nixpkgs.localSystem` will be used in an assertion
125 to check that the NixOS and Nixpkgs architectures match. Any
126+ other options in `nixpkgs.*`, notably `config`,
127 will be ignored.
128129 If unset, the pkgs argument to all NixOS modules is determined
···132 The default value imports the Nixpkgs source files
133 relative to the location of this NixOS module, because
134 NixOS and Nixpkgs are distributed together for consistency,
135+ so the `nixos` in the default value is in fact a
136+ relative path. The `config`, `overlays`,
137+ `localSystem`, and `crossSystem` come
138 from this option's siblings.
139140 This option can be used by applications like NixOps to increase
141 the performance of evaluation, or to create packages that depend
142 on a container that should be built with the exact same evaluation
143 of Nixpkgs, for example. Applications like this should set
144+ their default value using `lib.mkDefault`, so
145 user-provided configuration can override it without using
146+ `lib`.
147148 Note that using a distinct version of Nixpkgs with NixOS may
149 be an unexpected source of problems. Use this option with care.
+1-1
nixos/modules/misc/wordlist.nix
···23 }
24 '';
2526- description = ''
27 A set with the key names being the environment variable you'd like to
28 set and the values being a list of paths to text documents containing
29 lists of words. The various files will be merged, sorted, duplicates
···23 }
24 '';
2526+ description = lib.mdDoc ''
27 A set with the key names being the environment variable you'd like to
28 set and the values being a list of paths to text documents containing
29 lists of words. The various files will be merged, sorted, duplicates
+3-3
nixos/modules/programs/captive-browser.nix
···85 bindInterface = mkOption {
86 default = true;
87 type = types.bool;
88- description = ''
89- Binds <package>captive-browser</package> to the network interface declared in
90- <literal>cfg.interface</literal>. This can be used to avoid collisions
91 with private subnets.
92 '';
93 };
···85 bindInterface = mkOption {
86 default = true;
87 type = types.bool;
88+ description = lib.mdDoc ''
89+ Binds `captive-browser` to the network interface declared in
90+ `cfg.interface`. This can be used to avoid collisions
91 with private subnets.
92 '';
93 };
+2-2
nixos/modules/programs/chromium.nix
···7677 extraOpts = mkOption {
78 type = types.attrs;
79- description = ''
80 Extra chromium policy options. A list of available policies
81 can be found in the Chrome Enterprise documentation:
82- <link xlink:href="https://cloud.google.com/docs/chrome-enterprise/policies/">https://cloud.google.com/docs/chrome-enterprise/policies/</link>
83 Make sure the selected policy is supported on Linux and your browser version.
84 '';
85 default = {};
···7677 extraOpts = mkOption {
78 type = types.attrs;
79+ description = lib.mdDoc ''
80 Extra chromium policy options. A list of available policies
81 can be found in the Chrome Enterprise documentation:
82+ <https://cloud.google.com/docs/chrome-enterprise/policies/>
83 Make sure the selected policy is supported on Linux and your browser version.
84 '';
85 default = {};
+7-7
nixos/modules/programs/k3b.nix
···8 enable = mkOption {
9 type = types.bool;
10 default = false;
11- description = ''
12 Whether to enable k3b, the KDE disk burning application.
1314- Additionally to installing <package>k3b</package> enabling this will
15- add <literal>setuid</literal> wrappers in <literal>/run/wrappers/bin</literal>
16- for both <package>cdrdao</package> and <package>cdrecord</package>. On first
17- run you must manually configure the path of <package>cdrdae</package> and
18- <package>cdrecord</package> to correspond to the appropriate paths under
19- <literal>/run/wrappers/bin</literal> in the "Setup External Programs" menu.
20 '';
21 };
22 };
···8 enable = mkOption {
9 type = types.bool;
10 default = false;
11+ description = lib.mdDoc ''
12 Whether to enable k3b, the KDE disk burning application.
1314+ Additionally to installing `k3b` enabling this will
15+ add `setuid` wrappers in `/run/wrappers/bin`
16+ for both `cdrdao` and `cdrecord`. On first
17+ run you must manually configure the path of `cdrdae` and
18+ `cdrecord` to correspond to the appropriate paths under
19+ `/run/wrappers/bin` in the "Setup External Programs" menu.
20 '';
21 };
22 };
+1-1
nixos/modules/programs/mosh.nix
···17 type = lib.types.bool;
18 };
19 withUtempter = mkOption {
20- description = ''
21 Whether to enable libutempter for mosh.
22 This is required so that mosh can write to /var/run/utmp (which can be queried with `who` to display currently connected user sessions).
23 Note, this will add a guid wrapper for the group utmp!
···17 type = lib.types.bool;
18 };
19 withUtempter = mkOption {
20+ description = lib.mdDoc ''
21 Whether to enable libutempter for mosh.
22 This is required so that mosh can write to /var/run/utmp (which can be queried with `who` to display currently connected user sessions).
23 Note, this will add a guid wrapper for the group utmp!
+1-1
nixos/modules/programs/msmtp.nix
···45 passwordeval = "cat /secrets/password.txt";
46 };
47 };
48- description = ''
49 Named accounts and their respective configurations.
50 The special name "default" allows a default account to be defined.
51 See msmtp(1) for the available options.
···45 passwordeval = "cat /secrets/password.txt";
46 };
47 };
48+ description = lib.mdDoc ''
49 Named accounts and their respective configurations.
50 The special name "default" allows a default account to be defined.
51 See msmtp(1) for the available options.
+4-4
nixos/modules/programs/ssh.nix
···93 extraConfig = mkOption {
94 type = types.lines;
95 default = "";
96- description = ''
97- Extra configuration text prepended to <filename>ssh_config</filename>. Other generated
98- options will be added after a <literal>Host *</literal> pattern.
99- See <citerefentry><refentrytitle>ssh_config</refentrytitle><manvolnum>5</manvolnum></citerefentry>
100 for help.
101 '';
102 };
···93 extraConfig = mkOption {
94 type = types.lines;
95 default = "";
96+ description = lib.mdDoc ''
97+ Extra configuration text prepended to {file}`ssh_config`. Other generated
98+ options will be added after a `Host *` pattern.
99+ See {manpage}`ssh_config(5)`
100 for help.
101 '';
102 };
+1-1
nixos/modules/programs/thefuck.nix
···22 default = "fuck";
23 type = types.str;
2425- description = ''
26 `thefuck` needs an alias to be configured.
27 The default value is `fuck`, but you can use anything else as well.
28 '';
···22 default = "fuck";
23 type = types.str;
2425+ description = lib.mdDoc ''
26 `thefuck` needs an alias to be configured.
27 The default value is `fuck`, but you can use anything else as well.
28 '';
+5-5
nixos/modules/programs/tsm-client.nix
···95 exclude.dir /nix/store
96 include.encrypt /home/.../*
97 '';
98- description = ''
99- <literal>include.*</literal> and
100- <literal>exclude.*</literal> directives to be
101 used when sending files to the IBM TSM server.
102 The lines will be written into a file that the
103- <literal>inclexcl</literal>
104- directive in <filename>dsm.sys</filename> points to.
105 '';
106 };
107 options.extraConfig = mkOption {
···95 exclude.dir /nix/store
96 include.encrypt /home/.../*
97 '';
98+ description = lib.mdDoc ''
99+ `include.*` and
100+ `exclude.*` directives to be
101 used when sending files to the IBM TSM server.
102 The lines will be written into a file that the
103+ `inclexcl`
104+ directive in {file}`dsm.sys` points to.
105 '';
106 };
107 options.extraConfig = mkOption {
+1-1
nixos/modules/programs/yabar.nix
···62 to use `yabar-unstable'.
63 '';
6465- description = ''
66 The package which contains the `yabar` binary.
6768 Nixpkgs provides the `yabar` and `yabar-unstable`
···62 to use `yabar-unstable'.
63 '';
6465+ description = lib.mdDoc ''
66 The package which contains the `yabar` binary.
6768 Nixpkgs provides the `yabar` and `yabar-unstable`
+4-4
nixos/modules/programs/zsh/oh-my-zsh.nix
···49 package = mkOption {
50 default = pkgs.oh-my-zsh;
51 defaultText = literalExpression "pkgs.oh-my-zsh";
52- description = ''
53 Package to install for `oh-my-zsh` usage.
54 '';
55···67 custom = mkOption {
68 default = null;
69 type = with types; nullOr str;
70- description = ''
71 Path to a custom oh-my-zsh package to override config of oh-my-zsh.
72 (Can't be used along with `customPkgs`).
73 '';
···76 customPkgs = mkOption {
77 default = [];
78 type = types.listOf types.package;
79- description = ''
80 List of custom packages that should be loaded into `oh-my-zsh`.
81 '';
82 };
···92 cacheDir = mkOption {
93 default = "$HOME/.cache/oh-my-zsh";
94 type = types.str;
95- description = ''
96 Cache directory to be used by `oh-my-zsh`.
97 Without this option it would default to the read-only nix store.
98 '';
···49 package = mkOption {
50 default = pkgs.oh-my-zsh;
51 defaultText = literalExpression "pkgs.oh-my-zsh";
52+ description = lib.mdDoc ''
53 Package to install for `oh-my-zsh` usage.
54 '';
55···67 custom = mkOption {
68 default = null;
69 type = with types; nullOr str;
70+ description = lib.mdDoc ''
71 Path to a custom oh-my-zsh package to override config of oh-my-zsh.
72 (Can't be used along with `customPkgs`).
73 '';
···76 customPkgs = mkOption {
77 default = [];
78 type = types.listOf types.package;
79+ description = lib.mdDoc ''
80 List of custom packages that should be loaded into `oh-my-zsh`.
81 '';
82 };
···92 cacheDir = mkOption {
93 default = "$HOME/.cache/oh-my-zsh";
94 type = types.str;
95+ description = lib.mdDoc ''
96 Cache directory to be used by `oh-my-zsh`.
97 Without this option it would default to the read-only nix store.
98 '';
···24 strategy = mkOption {
25 type = types.listOf (types.enum [ "history" "completion" "match_prev_cmd" ]);
26 default = [ "history" ];
27- description = ''
28 `ZSH_AUTOSUGGEST_STRATEGY` is an array that specifies how suggestions should be generated.
29 The strategies in the array are tried successively until a suggestion is found.
30 There are currently three built-in strategies to choose from:
···24 strategy = mkOption {
25 type = types.listOf (types.enum [ "history" "completion" "match_prev_cmd" ]);
26 default = [ "history" ];
27+ description = lib.mdDoc ''
28 `ZSH_AUTOSUGGEST_STRATEGY` is an array that specifies how suggestions should be generated.
29 The strategies in the array are tried successively until a suggestion is found.
30 There are currently three built-in strategies to choose from:
+1-1
nixos/modules/security/acme/default.nix
···676 inheritDefaults = mkOption {
677 default = true;
678 example = true;
679- description = "Whether to inherit values set in `security.acme.defaults` or not.";
680 type = lib.types.bool;
681 };
682 };
···676 inheritDefaults = mkOption {
677 default = true;
678 example = true;
679+ description = lib.mdDoc "Whether to inherit values set in `security.acme.defaults` or not.";
680 type = lib.types.bool;
681 };
682 };
+1-1
nixos/modules/security/dhparams.nix
···9495 <note><para>If this is <literal>false</literal> the resulting store
96 path will be non-deterministic and will be rebuilt every time the
97- <package>openssl</package> package changes.</para></note>
98 '';
99 };
100
···9495 <note><para>If this is <literal>false</literal> the resulting store
96 path will be non-deterministic and will be rebuilt every time the
97+ <literal>openssl</literal> package changes.</para></note>
98 '';
99 };
100
+14-15
nixos/modules/security/pam.nix
···320 limits = mkOption {
321 default = [];
322 type = limitsType;
323- description = ''
324 Attribute set describing resource limits. Defaults to the
325- value of <option>security.pam.loginLimits</option>.
326- The meaning of the values is explained in <citerefentry>
327- <refentrytitle>limits.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
328 '';
329 };
330···774 }
775 ];
776777- description =
778- '' Define resource limits that should apply to users or groups.
779- Each item in the list should be an attribute set with a
780- <varname>domain</varname>, <varname>type</varname>,
781- <varname>item</varname>, and <varname>value</varname>
782- attribute. The syntax and semantics of these attributes
783- must be that described in <citerefentry><refentrytitle>limits.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
784785- Note that these limits do not apply to systemd services,
786- whose limits can be changed via <option>systemd.extraConfig</option>
787- instead.
788- '';
789 };
790791 security.pam.services = mkOption {
···320 limits = mkOption {
321 default = [];
322 type = limitsType;
323+ description = lib.mdDoc ''
324 Attribute set describing resource limits. Defaults to the
325+ value of {option}`security.pam.loginLimits`.
326+ The meaning of the values is explained in {manpage}`limits.conf(5)`.
0327 '';
328 };
329···773 }
774 ];
775776+ description = ''
777+ Define resource limits that should apply to users or groups.
778+ Each item in the list should be an attribute set with a
779+ <varname>domain</varname>, <varname>type</varname>,
780+ <varname>item</varname>, and <varname>value</varname>
781+ attribute. The syntax and semantics of these attributes
782+ must be that described in <citerefentry><refentrytitle>limits.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
783784+ Note that these limits do not apply to systemd services,
785+ whose limits can be changed via <option>systemd.extraConfig</option>
786+ instead.
787+ '';
788 };
789790 security.pam.services = mkOption {
+1-1
nixos/modules/security/sudo.nix
···46 type = types.package;
47 default = pkgs.sudo;
48 defaultText = literalExpression "pkgs.sudo";
49- description = ''
50 Which package to use for `sudo`.
51 '';
52 };
···46 type = types.package;
47 default = pkgs.sudo;
48 defaultText = literalExpression "pkgs.sudo";
49+ description = lib.mdDoc ''
50 Which package to use for `sudo`.
51 '';
52 };
+9-9
nixos/modules/services/cluster/hadoop/hbase.nix
···21 "hbase.cluster.distributed" = "true";
22 };
23 type = types.attrsOf types.anything;
24- description = ''
25 Default options for hbase-site.xml
26 '';
27 };
···30 type = with types; attrsOf anything;
31 example = literalExpression ''
32 '';
33- description = ''
34 Additional options and overrides for hbase-site.xml
35- <link xlink:href="https://github.com/apache/hbase/blob/rel/2.4.11/hbase-common/src/main/resources/hbase-default.xml"/>
36 '';
37 };
38 hbaseSiteInternal = mkOption {
···50 type = types.package;
51 default = pkgs.hbase;
52 defaultText = literalExpression "pkgs.hbase";
53- description = "HBase package";
54 };
5556 rootdir = mkOption {
57- description = ''
58 This option will set "hbase.rootdir" in hbase-site.xml and determine
59 the directory shared by region servers and into which HBase persists.
60 The URL should be 'fully-qualified' to include the filesystem scheme.
···68 default = "/hbase";
69 };
70 zookeeperQuorum = mkOption {
71- description = ''
72 This option will set "hbase.zookeeper.quorum" in hbase-site.xml.
73 Comma separated list of servers in the ZooKeeper ensemble.
74 '';
···83 openFirewall = mkOption {
84 type = types.bool;
85 default = false;
86- description = ''
87 Open firewall ports for HBase master.
88 '';
89 };
···94 overrideHosts = mkOption {
95 type = types.bool;
96 default = true;
97- description = ''
98 Remove /etc/hosts entries for "127.0.0.2" and "::1" defined in nixos/modules/config/networking.nix
99 Regionservers must be able to resolve their hostnames to their IP addresses, through PTR records
100 or /etc/hosts entries.
···105 openFirewall = mkOption {
106 type = types.bool;
107 default = false;
108- description = ''
109 Open firewall ports for HBase master.
110 '';
111 };
···21 "hbase.cluster.distributed" = "true";
22 };
23 type = types.attrsOf types.anything;
24+ description = lib.mdDoc ''
25 Default options for hbase-site.xml
26 '';
27 };
···30 type = with types; attrsOf anything;
31 example = literalExpression ''
32 '';
33+ description = lib.mdDoc ''
34 Additional options and overrides for hbase-site.xml
35+ <https://github.com/apache/hbase/blob/rel/2.4.11/hbase-common/src/main/resources/hbase-default.xml>
36 '';
37 };
38 hbaseSiteInternal = mkOption {
···50 type = types.package;
51 default = pkgs.hbase;
52 defaultText = literalExpression "pkgs.hbase";
53+ description = lib.mdDoc "HBase package";
54 };
5556 rootdir = mkOption {
57+ description = lib.mdDoc ''
58 This option will set "hbase.rootdir" in hbase-site.xml and determine
59 the directory shared by region servers and into which HBase persists.
60 The URL should be 'fully-qualified' to include the filesystem scheme.
···68 default = "/hbase";
69 };
70 zookeeperQuorum = mkOption {
71+ description = lib.mdDoc ''
72 This option will set "hbase.zookeeper.quorum" in hbase-site.xml.
73 Comma separated list of servers in the ZooKeeper ensemble.
74 '';
···83 openFirewall = mkOption {
84 type = types.bool;
85 default = false;
86+ description = lib.mdDoc ''
87 Open firewall ports for HBase master.
88 '';
89 };
···94 overrideHosts = mkOption {
95 type = types.bool;
96 default = true;
97+ description = lib.mdDoc ''
98 Remove /etc/hosts entries for "127.0.0.2" and "::1" defined in nixos/modules/config/networking.nix
99 Regionservers must be able to resolve their hostnames to their IP addresses, through PTR records
100 or /etc/hosts entries.
···105 openFirewall = mkOption {
106 type = types.bool;
107 default = false;
108+ description = lib.mdDoc ''
109 Open firewall ports for HBase master.
110 '';
111 };
···121 keepalive = mkOption {
122 default = 600;
123 type = types.int;
124- description = "
125 This is a number that indicates how frequently keepalive messages should be sent
126 from the worker to the buildmaster, expressed in seconds.
127- ";
128 };
129130 package = mkOption {
···121 keepalive = mkOption {
122 default = 600;
123 type = types.int;
124+ description = lib.mdDoc ''
125 This is a number that indicates how frequently keepalive messages should be sent
126 from the worker to the buildmaster, expressed in seconds.
127+ '';
128 };
129130 package = mkOption {
···193 options.services.buildkite-agents = mkOption {
194 type = types.attrsOf (types.submodule buildkiteOptions);
195 default = {};
196- description = ''
197 Attribute set of buildkite agents.
198 The attribute key is combined with the hostname and a unique integer to
199 create the final agent name. This can be overridden by setting the `name`
···193 options.services.buildkite-agents = mkOption {
194 type = types.attrsOf (types.submodule buildkiteOptions);
195 default = {};
196+ description = lib.mdDoc ''
197 Attribute set of buildkite agents.
198 The attribute key is combined with the hostname and a unique integer to
199 create the final agent name. This can be overridden by setting the `name`
···103 defaultText = literalExpression ''baseDirectory + "/secrets"'';
104 };
105 clusterJoinTokenPath = mkOption {
106- description = ''
107 Location of the cluster-join-token.key file.
108109 You can retrieve the contents of the file when creating a new agent via
110- <link xlink:href="https://hercules-ci.com/dashboard">https://hercules-ci.com/dashboard</link>.
111112 As this value is confidential, it should not be in the store, but
113 installed using other means, such as agenix, NixOps
114- <literal>deployment.keys</literal>, or manual installation.
115116 The contents of the file are used for authentication between the agent and the API.
117 '';
···120 defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
121 };
122 binaryCachesPath = mkOption {
123- description = ''
124 Path to a JSON file containing binary cache secret keys.
125126 As these values are confidential, they should not be in the store, but
127 copied over using other means, such as agenix, NixOps
128- <literal>deployment.keys</literal>, or manual installation.
129130- The format is described on <link xlink:href="https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/">https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/</link>.
131 '';
132 type = types.path;
133 default = config.staticSecretsDirectory + "/binary-caches.json";
134 defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
135 };
136 secretsJsonPath = mkOption {
137- description = ''
138 Path to a JSON file containing secrets for effects.
139140 As these values are confidential, they should not be in the store, but
141 copied over using other means, such as agenix, NixOps
142- <literal>deployment.keys</literal>, or manual installation.
143144- The format is described on <link xlink:href="https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/">https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/</link>.
145-146 '';
147 type = types.path;
148 default = config.staticSecretsDirectory + "/secrets.json";
···103 defaultText = literalExpression ''baseDirectory + "/secrets"'';
104 };
105 clusterJoinTokenPath = mkOption {
106+ description = lib.mdDoc ''
107 Location of the cluster-join-token.key file.
108109 You can retrieve the contents of the file when creating a new agent via
110+ <https://hercules-ci.com/dashboard>.
111112 As this value is confidential, it should not be in the store, but
113 installed using other means, such as agenix, NixOps
114+ `deployment.keys`, or manual installation.
115116 The contents of the file are used for authentication between the agent and the API.
117 '';
···120 defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
121 };
122 binaryCachesPath = mkOption {
123+ description = lib.mdDoc ''
124 Path to a JSON file containing binary cache secret keys.
125126 As these values are confidential, they should not be in the store, but
127 copied over using other means, such as agenix, NixOps
128+ `deployment.keys`, or manual installation.
129130+ The format is described on <https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/>.
131 '';
132 type = types.path;
133 default = config.staticSecretsDirectory + "/binary-caches.json";
134 defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
135 };
136 secretsJsonPath = mkOption {
137+ description = lib.mdDoc ''
138 Path to a JSON file containing secrets for effects.
139140 As these values are confidential, they should not be in the store, but
141 copied over using other means, such as agenix, NixOps
142+ `deployment.keys`, or manual installation.
143144+ The format is described on <https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/>.
0145 '';
146 type = types.path;
147 default = config.staticSecretsDirectory + "/secrets.json";
···87 type = types.str;
88 default = localDB;
89 example = "dbi:Pg:dbname=hydra;host=postgres.example.org;user=foo;";
90- description = ''
91 The DBI string for Hydra database connection.
9293 NOTE: Attempts to set `application_name` will be overridden by
···115 type = types.str;
116 default = "*";
117 example = "localhost";
118- description = ''
119- The hostname or address to listen on or <literal>*</literal> to listen
120 on all interfaces.
121 '';
122 };
···87 type = types.str;
88 default = localDB;
89 example = "dbi:Pg:dbname=hydra;host=postgres.example.org;user=foo;";
90+ description = lib.mdDoc ''
91 The DBI string for Hydra database connection.
9293 NOTE: Attempts to set `application_name` will be overridden by
···115 type = types.str;
116 default = "*";
117 example = "localhost";
118+ description = lib.mdDoc ''
119+ The hostname or address to listen on or `*` to listen
120 on all interfaces.
121 '';
122 };
+2-2
nixos/modules/services/databases/foundationdb.nix
···97 openFirewall = mkOption {
98 type = types.bool;
99 default = false;
100- description = ''
101 Open the firewall ports corresponding to FoundationDB processes and coordinators
102- using <option>config.networking.firewall.*</option>.
103 '';
104 };
105
···97 openFirewall = mkOption {
98 type = types.bool;
99 default = false;
100+ description = lib.mdDoc ''
101 Open the firewall ports corresponding to FoundationDB processes and coordinators
102+ using {option}`config.networking.firewall.*`.
103 '';
104 };
105
+2-2
nixos/modules/services/databases/mongodb.nix
···35 default = pkgs.mongodb;
36 defaultText = literalExpression "pkgs.mongodb";
37 type = types.package;
38- description = "
39 Which MongoDB derivation to use.
40- ";
41 };
4243 user = mkOption {
···35 default = pkgs.mongodb;
36 defaultText = literalExpression "pkgs.mongodb";
37 type = types.package;
38+ description = lib.mdDoc ''
39 Which MongoDB derivation to use.
40+ '';
41 };
4243 user = mkOption {
+2-2
nixos/modules/services/databases/mysql.nix
···36 package = mkOption {
37 type = types.package;
38 example = literalExpression "pkgs.mariadb";
39- description = "
40 Which MySQL derivation to use. MariaDB packages are supported too.
41- ";
42 };
4344 user = mkOption {
···36 package = mkOption {
37 type = types.package;
38 example = literalExpression "pkgs.mariadb";
39+ description = lib.mdDoc ''
40 Which MySQL derivation to use. MariaDB packages are supported too.
41+ '';
42 };
4344 user = mkOption {
+3-3
nixos/modules/services/databases/postgresql.nix
···79 authentication = mkOption {
80 type = types.lines;
81 default = "";
82- description = ''
83 Defines how users authenticate themselves to the server. See the
84- <link xlink:href="https://www.postgresql.org/docs/current/auth-pg-hba-conf.html">PostgreSQL documentation for pg_hba.conf</link>
85 for details on the expected format of this option. By default,
86 peer based authentication will be used for users connecting
87 via the Unix socket, and md5 password authentication will be
88 used for users connecting via TCP. Any added rules will be
89 inserted above the default rules. If you'd like to replace the
90- default rules entirely, you can use <function>lib.mkForce</function> in your
91 module.
92 '';
93 };
···79 authentication = mkOption {
80 type = types.lines;
81 default = "";
82+ description = lib.mdDoc ''
83 Defines how users authenticate themselves to the server. See the
84+ [PostgreSQL documentation for pg_hba.conf](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html)
85 for details on the expected format of this option. By default,
86 peer based authentication will be used for users connecting
87 via the Unix socket, and md5 password authentication will be
88 used for users connecting via TCP. Any added rules will be
89 inserted above the default rules. If you'd like to replace the
90+ default rules entirely, you can use `lib.mkForce` in your
91 module.
92 '';
93 };
···149 };
150 }
151 '';
152- description = "Declarative kernel config
0153154- Kernels can be declared in any language that supports and has the required
155- dependencies to communicate with a jupyter server.
156- In python's case, it means that ipykernel package must always be included in
157- the list of packages of the targeted environment.
158- ";
159 };
160 };
161
···149 };
150 }
151 '';
152+ description = lib.mdDoc ''
153+ Declarative kernel config.
154155+ Kernels can be declared in any language that supports and has the required
156+ dependencies to communicate with a jupyter server.
157+ In python's case, it means that ipykernel package must always be included in
158+ the list of packages of the targeted environment.
159+ '';
160 };
161 };
162
+1-1
nixos/modules/services/development/lorri.nix
···9 enable = lib.mkOption {
10 default = false;
11 type = lib.types.bool;
12- description = ''
13 Enables the daemon for `lorri`, a nix-shell replacement for project
14 development. The socket-activated daemon starts on the first request
15 issued by the `lorri` command.
···9 enable = lib.mkOption {
10 default = false;
11 type = lib.types.bool;
12+ description = lib.mdDoc ''
13 Enables the daemon for `lorri`, a nix-shell replacement for project
14 development. The socket-activated daemon starts on the first request
15 issued by the `lorri` command.
+1-1
nixos/modules/services/editors/infinoted.nix
···36 certificateChain = mkOption {
37 type = types.nullOr types.path;
38 default = null;
39- description = ''
40 Chain of CA-certificates to which our `certificateFile` is relative.
41 Optional for TLS.
42 '';
···36 certificateChain = mkOption {
37 type = types.nullOr types.path;
38 default = null;
39+ description = lib.mdDoc ''
40 Chain of CA-certificates to which our `certificateFile` is relative.
41 Optional for TLS.
42 '';
+3-3
nixos/modules/services/games/asf.nix
···8182 settings = mkOption {
83 type = format.type;
84- description = ''
85- The ASF.json file, all the options are documented <link xlink:href="https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#global-config">here</link>.
86 Do note that `AutoRestart` and `UpdateChannel` is always to `false` respectively `0` because NixOS takes care of updating everything.
87 `Headless` is also always set to `true` because there is no way to provide inputs via a systemd service.
88- You should try to keep ASF up to date since upstream does not provide support for anything but the latest version and you're exposing yourself to all kinds of issues - as is outlined <link xlink:href="https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#updateperiod">here</link>.
89 '';
90 example = {
91 Statistics = false;
···8182 settings = mkOption {
83 type = format.type;
84+ description = lib.mdDoc ''
85+ The ASF.json file, all the options are documented [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#global-config).
86 Do note that `AutoRestart` and `UpdateChannel` is always to `false` respectively `0` because NixOS takes care of updating everything.
87 `Headless` is also always set to `true` because there is no way to provide inputs via a systemd service.
88+ You should try to keep ASF up to date since upstream does not provide support for anything but the latest version and you're exposing yourself to all kinds of issues - as is outlined [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#updateperiod).
89 '';
90 example = {
91 Statistics = false;
+2-2
nixos/modules/services/games/crossfire-server.nix
···41 stateDir = mkOption {
42 type = types.str;
43 default = "/var/lib/crossfire";
44- description = ''
45 Where to store runtime data (save files, persistent items, etc).
4647 If left at the default, this will be automatically created on server
···6162 configFiles = mkOption {
63 type = types.attrsOf types.str;
64- description = ''
65 Text to append to the corresponding configuration files. Note that the
66 files given in the example are *not* the complete set of files available
67 to customize; look in /etc/crossfire after enabling the server to see
···41 stateDir = mkOption {
42 type = types.str;
43 default = "/var/lib/crossfire";
44+ description = lib.mdDoc ''
45 Where to store runtime data (save files, persistent items, etc).
4647 If left at the default, this will be automatically created on server
···6162 configFiles = mkOption {
63 type = types.attrsOf types.str;
64+ description = lib.mdDoc ''
65 Text to append to the corresponding configuration files. Note that the
66 files given in the example are *not* the complete set of files available
67 to customize; look in /etc/crossfire after enabling the server to see
+1-1
nixos/modules/services/games/deliantra-server.nix
···41 stateDir = mkOption {
42 type = types.str;
43 default = "/var/lib/deliantra";
44- description = ''
45 Where to store runtime data (save files, persistent items, etc).
4647 If left at the default, this will be automatically created on server
···41 stateDir = mkOption {
42 type = types.str;
43 default = "/var/lib/deliantra";
44+ description = lib.mdDoc ''
45 Where to store runtime data (save files, persistent items, etc).
4647 If left at the default, this will be automatically created on server
+3-3
nixos/modules/services/games/minetest-server.nix
···25 gameId = mkOption {
26 type = types.nullOr types.str;
27 default = null;
28- description = ''
29 Id of the game to use. To list available games run
30 `minetestserver --gameid list`.
31···36 world = mkOption {
37 type = types.nullOr types.path;
38 default = null;
39- description = ''
40 Name of the world to use. To list available worlds run
41 `minetestserver --world list`.
42···47 configPath = mkOption {
48 type = types.nullOr types.path;
49 default = null;
50- description = ''
51 Path to the config to use.
5253 If set to null, the config of the running user will be used:
···25 gameId = mkOption {
26 type = types.nullOr types.str;
27 default = null;
28+ description = lib.mdDoc ''
29 Id of the game to use. To list available games run
30 `minetestserver --gameid list`.
31···36 world = mkOption {
37 type = types.nullOr types.path;
38 default = null;
39+ description = lib.mdDoc ''
40 Name of the world to use. To list available worlds run
41 `minetestserver --world list`.
42···47 configPath = mkOption {
48 type = types.nullOr types.path;
49 default = null;
50+ description = lib.mdDoc ''
51 Path to the config to use.
5253 If set to null, the config of the running user will be used:
···126 psycopg2
127 ];
128 '';
129- description = ''
130 List of packages to add to propagatedBuildInputs.
131132- A popular example is <package>python3Packages.psycopg2</package>
133 for PostgreSQL support in the recorder component.
134 '';
135 };
···126 psycopg2
127 ];
128 '';
129+ description = lib.mdDoc ''
130 List of packages to add to propagatedBuildInputs.
131132+ A popular example is `python3Packages.psycopg2`
133 for PostgreSQL support in the recorder component.
134 '';
135 };
+2-2
nixos/modules/services/logging/logrotate.nix
···79 priority = mkOption {
80 type = types.int;
81 default = 1000;
82- description = ''
83 Order of this logrotate block in relation to the others. The semantics are
84 the same as with `lib.mkOrder`. Smaller values have a greater priority.
85 '';
···260 priority = mkOption {
261 type = types.int;
262 default = 1000;
263- description = ''
264 Order of this logrotate block in relation to the others. The semantics are
265 the same as with `lib.mkOrder`. Smaller values are inserted first.
266 '';
···79 priority = mkOption {
80 type = types.int;
81 default = 1000;
82+ description = lib.mdDoc ''
83 Order of this logrotate block in relation to the others. The semantics are
84 the same as with `lib.mkOrder`. Smaller values have a greater priority.
85 '';
···260 priority = mkOption {
261 type = types.int;
262 default = 1000;
263+ description = lib.mdDoc ''
264 Order of this logrotate block in relation to the others. The semantics are
265 the same as with `lib.mkOrder`. Smaller values are inserted first.
266 '';
+36-36
nixos/modules/services/mail/postfix.nix
···355 setgidGroup = mkOption {
356 type = types.str;
357 default = "postdrop";
358- description = "
359 How to call postfix setgid group (for postdrop). Should
360 be uniquely used group.
361- ";
362 };
363364 networks = mkOption {
365 type = types.nullOr (types.listOf types.str);
366 default = null;
367 example = ["192.168.0.1/24"];
368- description = "
369 Net masks for trusted - allowed to relay mail to third parties -
370 hosts. Leave empty to use mynetworks_style configuration or use
371 default (localhost-only).
372- ";
373 };
374375 networksStyle = mkOption {
376 type = types.str;
377 default = "";
378- description = "
379 Name of standard way of trusted network specification to use,
380 leave blank if you specify it explicitly or if you want to use
381 default (localhost-only).
382- ";
383 };
384385 hostname = mkOption {
386 type = types.str;
387 default = "";
388- description ="
389 Hostname to use. Leave blank to use just the hostname of machine.
390 It should be FQDN.
391- ";
392 };
393394 domain = mkOption {
395 type = types.str;
396 default = "";
397- description ="
398 Domain to use. Leave blank to use hostname minus first component.
399- ";
400 };
401402 origin = mkOption {
403 type = types.str;
404 default = "";
405- description ="
406 Origin to use in outgoing e-mail. Leave blank to use hostname.
407- ";
408 };
409410 destination = mkOption {
411 type = types.nullOr (types.listOf types.str);
412 default = null;
413 example = ["localhost"];
414- description = "
415 Full (!) list of domains we deliver locally. Leave blank for
416 acceptable Postfix default.
417- ";
418 };
419420 relayDomains = mkOption {
421 type = types.nullOr (types.listOf types.str);
422 default = null;
423 example = ["localdomain"];
424- description = "
425 List of domains we agree to relay to. Default is empty.
426- ";
427 };
428429 relayHost = mkOption {
430 type = types.str;
431 default = "";
432- description = "
433 Mail relay for outbound mail.
434- ";
435 };
436437 relayPort = mkOption {
438 type = types.int;
439 default = 25;
440- description = "
441 SMTP port for relay mail relay.
442- ";
443 };
444445 lookupMX = mkOption {
446 type = types.bool;
447 default = false;
448- description = "
449 Whether relay specified is just domain whose MX must be used.
450- ";
451 };
452453 postmasterAlias = mkOption {
454 type = types.str;
455 default = "root";
456- description = "
457 Who should receive postmaster e-mail. Multiple values can be added by
458 separating values with comma.
459- ";
460 };
461462 rootAlias = mkOption {
463 type = types.str;
464 default = "";
465- description = "
466 Who should receive root e-mail. Blank for no redirection.
467 Multiple values can be added by separating values with comma.
468- ";
469 };
470471 extraAliases = mkOption {
472 type = types.lines;
473 default = "";
474- description = "
475 Additional entries to put verbatim into aliases file, cf. man-page aliases(8).
476- ";
477 };
478479 aliasMapType = mkOption {
···497 extraConfig = mkOption {
498 type = types.lines;
499 default = "";
500- description = "
501 Extra lines to be added verbatim to the main.cf configuration file.
502- ";
503 };
504505 tlsTrustedAuthorities = mkOption {
···527 type = types.str;
528 default = "";
529 example = "+";
530- description = "
531 Delimiter for address extension: so mail to user+test can be handled by ~user/.forward+test
532- ";
533 };
534535 canonical = mkOption {
···543 virtual = mkOption {
544 type = types.lines;
545 default = "";
546- description = "
547 Entries for the virtual alias map, cf. man-page virtual(5).
548- ";
549 };
550551 virtualMapType = mkOption {
···572 transport = mkOption {
573 default = "";
574 type = types.lines;
575- description = "
576 Entries for the transport map, cf. man-page transport(8).
577- ";
578 };
579580 dnsBlacklists = mkOption {
···355 setgidGroup = mkOption {
356 type = types.str;
357 default = "postdrop";
358+ description = lib.mdDoc ''
359 How to call postfix setgid group (for postdrop). Should
360 be uniquely used group.
361+ '';
362 };
363364 networks = mkOption {
365 type = types.nullOr (types.listOf types.str);
366 default = null;
367 example = ["192.168.0.1/24"];
368+ description = lib.mdDoc ''
369 Net masks for trusted - allowed to relay mail to third parties -
370 hosts. Leave empty to use mynetworks_style configuration or use
371 default (localhost-only).
372+ '';
373 };
374375 networksStyle = mkOption {
376 type = types.str;
377 default = "";
378+ description = lib.mdDoc ''
379 Name of standard way of trusted network specification to use,
380 leave blank if you specify it explicitly or if you want to use
381 default (localhost-only).
382+ '';
383 };
384385 hostname = mkOption {
386 type = types.str;
387 default = "";
388+ description = lib.mdDoc ''
389 Hostname to use. Leave blank to use just the hostname of machine.
390 It should be FQDN.
391+ '';
392 };
393394 domain = mkOption {
395 type = types.str;
396 default = "";
397+ description = lib.mdDoc ''
398 Domain to use. Leave blank to use hostname minus first component.
399+ '';
400 };
401402 origin = mkOption {
403 type = types.str;
404 default = "";
405+ description = lib.mdDoc ''
406 Origin to use in outgoing e-mail. Leave blank to use hostname.
407+ '';
408 };
409410 destination = mkOption {
411 type = types.nullOr (types.listOf types.str);
412 default = null;
413 example = ["localhost"];
414+ description = lib.mdDoc ''
415 Full (!) list of domains we deliver locally. Leave blank for
416 acceptable Postfix default.
417+ '';
418 };
419420 relayDomains = mkOption {
421 type = types.nullOr (types.listOf types.str);
422 default = null;
423 example = ["localdomain"];
424+ description = lib.mdDoc ''
425 List of domains we agree to relay to. Default is empty.
426+ '';
427 };
428429 relayHost = mkOption {
430 type = types.str;
431 default = "";
432+ description = lib.mdDoc ''
433 Mail relay for outbound mail.
434+ '';
435 };
436437 relayPort = mkOption {
438 type = types.int;
439 default = 25;
440+ description = lib.mdDoc ''
441 SMTP port for relay mail relay.
442+ '';
443 };
444445 lookupMX = mkOption {
446 type = types.bool;
447 default = false;
448+ description = lib.mdDoc ''
449 Whether relay specified is just domain whose MX must be used.
450+ '';
451 };
452453 postmasterAlias = mkOption {
454 type = types.str;
455 default = "root";
456+ description = lib.mdDoc ''
457 Who should receive postmaster e-mail. Multiple values can be added by
458 separating values with comma.
459+ '';
460 };
461462 rootAlias = mkOption {
463 type = types.str;
464 default = "";
465+ description = lib.mdDoc ''
466 Who should receive root e-mail. Blank for no redirection.
467 Multiple values can be added by separating values with comma.
468+ '';
469 };
470471 extraAliases = mkOption {
472 type = types.lines;
473 default = "";
474+ description = lib.mdDoc ''
475 Additional entries to put verbatim into aliases file, cf. man-page aliases(8).
476+ '';
477 };
478479 aliasMapType = mkOption {
···497 extraConfig = mkOption {
498 type = types.lines;
499 default = "";
500+ description = lib.mdDoc ''
501 Extra lines to be added verbatim to the main.cf configuration file.
502+ '';
503 };
504505 tlsTrustedAuthorities = mkOption {
···527 type = types.str;
528 default = "";
529 example = "+";
530+ description = lib.mdDoc ''
531 Delimiter for address extension: so mail to user+test can be handled by ~user/.forward+test
532+ '';
533 };
534535 canonical = mkOption {
···543 virtual = mkOption {
544 type = types.lines;
545 default = "";
546+ description = lib.mdDoc ''
547 Entries for the virtual alias map, cf. man-page virtual(5).
548+ '';
549 };
550551 virtualMapType = mkOption {
···572 transport = mkOption {
573 default = "";
574 type = types.lines;
575+ description = lib.mdDoc ''
576 Entries for the transport map, cf. man-page transport(8).
577+ '';
578 };
579580 dnsBlacklists = mkOption {
+10-11
nixos/modules/services/matrix/dendrite.nix
···26 type = lib.types.nullOr lib.types.path;
27 example = "/var/lib/dendrite/server.cert";
28 default = null;
29- description = ''
30 The path to the TLS certificate.
3132- <programlisting>
33 nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
34- </programlisting>
35 '';
36 };
37 tlsKey = lib.mkOption {
38 type = lib.types.nullOr lib.types.path;
39 example = "/var/lib/dendrite/server.key";
40 default = null;
41- description = ''
42 The path to the TLS key.
4344- <programlisting>
45 nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
46- </programlisting>
47 '';
48 };
49 environmentFile = lib.mkOption {
···51 example = "/var/lib/dendrite/registration_secret";
52 default = null;
53 description = ''
54- Environment file as defined in <citerefentry>
55- <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
56 Secrets may be passed to the service without adding them to the world-readable
57 Nix store, by specifying placeholder variables as the option value in Nix and
58 setting these variables accordingly in the environment file. Currently only used
···103 lib.types.path
104 (lib.types.strMatching "^\\$CREDENTIALS_DIRECTORY/.+");
105 example = "$CREDENTIALS_DIRECTORY/private_key";
106- description = ''
107 The path to the signing private key file, used to sign
108 requests and events.
109110- <programlisting>
111 nix-shell -p dendrite --command "generate-keys --private-key matrix_key.pem"
112- </programlisting>
113 '';
114 };
115 trusted_third_party_id_servers = lib.mkOption {
···26 type = lib.types.nullOr lib.types.path;
27 example = "/var/lib/dendrite/server.cert";
28 default = null;
29+ description = lib.mdDoc ''
30 The path to the TLS certificate.
3132+ ```
33 nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
34+ ```
35 '';
36 };
37 tlsKey = lib.mkOption {
38 type = lib.types.nullOr lib.types.path;
39 example = "/var/lib/dendrite/server.key";
40 default = null;
41+ description = lib.mdDoc ''
42 The path to the TLS key.
4344+ ```
45 nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
46+ ```
47 '';
48 };
49 environmentFile = lib.mkOption {
···51 example = "/var/lib/dendrite/registration_secret";
52 default = null;
53 description = ''
54+ Environment file as defined in <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
055 Secrets may be passed to the service without adding them to the world-readable
56 Nix store, by specifying placeholder variables as the option value in Nix and
57 setting these variables accordingly in the environment file. Currently only used
···102 lib.types.path
103 (lib.types.strMatching "^\\$CREDENTIALS_DIRECTORY/.+");
104 example = "$CREDENTIALS_DIRECTORY/private_key";
105+ description = lib.mdDoc ''
106 The path to the signing private key file, used to sign
107 requests and events.
108109+ ```
110 nix-shell -p dendrite --command "generate-keys --private-key matrix_key.pem"
111+ ```
112 '';
113 };
114 trusted_third_party_id_servers = lib.mkOption {
+1-1
nixos/modules/services/matrix/synapse.nix
···516 type = types.bool;
517 default = true;
518 example = false;
519- description = ''
520 Is the preview URL API enabled? If enabled, you *must* specify an
521 explicit url_preview_ip_range_blacklist of IPs that the spider is
522 denied from accessing.
···516 type = types.bool;
517 default = true;
518 example = false;
519+ description = lib.mdDoc ''
520 Is the preview URL API enabled? If enabled, you *must* specify an
521 explicit url_preview_ip_range_blacklist of IPs that the spider is
522 denied from accessing.
+4-4
nixos/modules/services/misc/etebase-server.nix
···133 };
134 };
135 default = {};
136- description = ''
137- Configuration for <package>etebase-server</package>. Refer to
138- <link xlink:href="https://github.com/etesync/server/blob/master/etebase-server.ini.example"/>
139- and <link xlink:href="https://github.com/etesync/server/wiki"/>
140 for details on supported values.
141 '';
142 example = {
···133 };
134 };
135 default = {};
136+ description = lib.mdDoc ''
137+ Configuration for `etebase-server`. Refer to
138+ <https://github.com/etesync/server/blob/master/etebase-server.ini.example>
139+ and <https://github.com/etesync/server/wiki>
140 for details on supported values.
141 '';
142 example = {
+2-2
nixos/modules/services/misc/exhibitor.nix
···71 enable = mkOption {
72 type = types.bool;
73 default = false;
74- description = "
75 Whether to enable the exhibitor server.
76- ";
77 };
78 # See https://github.com/soabase/exhibitor/wiki/Running-Exhibitor for what these mean
79 # General options for any type of config
···71 enable = mkOption {
72 type = types.bool;
73 default = false;
74+ description = lib.mdDoc ''
75 Whether to enable the exhibitor server.
76+ '';
77 };
78 # See https://github.com/soabase/exhibitor/wiki/Running-Exhibitor for what these mean
79 # General options for any type of config
+5-5
nixos/modules/services/misc/freeswitch.nix
···22 enableReload = mkOption {
23 default = false;
24 type = types.bool;
25- description = ''
26- Issue the <literal>reloadxml</literal> command to FreeSWITCH when configuration directory changes (instead of restart).
27- See <link xlink:href="https://freeswitch.org/confluence/display/FREESWITCH/Reloading">FreeSWITCH documentation</link> for more info.
28- The configuration directory is exposed at <filename>/etc/freeswitch</filename>.
29- See also <literal>systemd.services.*.restartIfChanged</literal>.
30 '';
31 };
32 configTemplate = mkOption {
···22 enableReload = mkOption {
23 default = false;
24 type = types.bool;
25+ description = lib.mdDoc ''
26+ Issue the `reloadxml` command to FreeSWITCH when configuration directory changes (instead of restart).
27+ See [FreeSWITCH documentation](https://freeswitch.org/confluence/display/FREESWITCH/Reloading) for more info.
28+ The configuration directory is exposed at {file}`/etc/freeswitch`.
29+ See also `systemd.services.*.restartIfChanged`.
30 '';
31 };
32 configTemplate = mkOption {
+12-15
nixos/modules/services/misc/geoipupdate.nix
···12 options = {
13 services.geoipupdate = {
14 enable = lib.mkEnableOption ''
15- periodic downloading of GeoIP databases using
16- <productname>geoipupdate</productname>.
17 '';
1819 interval = lib.mkOption {
···36 ProxyUserPassword = { _secret = "/run/keys/proxy_pass"; };
37 }
38 '';
39- description = ''
40- <productname>geoipupdate</productname> configuration
41- options. See
42- <link xlink:href="https://github.com/maxmind/geoipupdate/blob/main/doc/GeoIP.conf.md"/>
43 for a full list of available options.
4445 Settings containing secret data should be set to an
46 attribute set containing the attribute
47- <literal>_secret</literal> - a string pointing to a file
48 containing the value the option should be set to. See the
49 example to get a better picture of this: in the resulting
50- <filename>GeoIP.conf</filename> file, the
51- <literal>ProxyUserPassword</literal> key will be set to the
52 contents of the
53- <filename>/run/keys/proxy_pass</filename> file.
54 '';
55 type = lib.types.submodule {
56 freeformType =
···8586 LicenseKey = lib.mkOption {
87 type = with lib.types; either path (attrsOf path);
88- description = ''
89- A file containing the
90- <productname>MaxMind</productname> license key.
9192 Always handled as a secret whether the value is
93- wrapped in a <literal>{ _secret = ...; }</literal>
94- attrset or not (refer to <xref linkend="opt-services.geoipupdate.settings"/> for
95 details).
96 '';
97 apply = x: if isAttrs x then x else { _secret = x; };
···12 options = {
13 services.geoipupdate = {
14 enable = lib.mkEnableOption ''
15+ periodic downloading of GeoIP databases using geoipupdate.
016 '';
1718 interval = lib.mkOption {
···35 ProxyUserPassword = { _secret = "/run/keys/proxy_pass"; };
36 }
37 '';
38+ description = lib.mdDoc ''
39+ geoipupdate configuration options. See
40+ <https://github.com/maxmind/geoipupdate/blob/main/doc/GeoIP.conf.md>
041 for a full list of available options.
4243 Settings containing secret data should be set to an
44 attribute set containing the attribute
45+ `_secret` - a string pointing to a file
46 containing the value the option should be set to. See the
47 example to get a better picture of this: in the resulting
48+ {file}`GeoIP.conf` file, the
49+ `ProxyUserPassword` key will be set to the
50 contents of the
51+ {file}`/run/keys/proxy_pass` file.
52 '';
53 type = lib.types.submodule {
54 freeformType =
···8384 LicenseKey = lib.mkOption {
85 type = with lib.types; either path (attrsOf path);
86+ description = lib.mdDoc ''
87+ A file containing the MaxMind license key.
08889 Always handled as a secret whether the value is
90+ wrapped in a `{ _secret = ...; }`
91+ attrset or not (refer to [](#opt-services.geoipupdate.settings) for
92 details).
93 '';
94 apply = x: if isAttrs x then x else { _secret = x; };
+6-6
nixos/modules/services/misc/gitea.nix
···183 file = mkOption {
184 type = types.nullOr types.str;
185 default = null;
186- description = "Filename to be used for the dump. If `null` a default name is choosen by gitea.";
187 example = "gitea-dump";
188 };
189 };
···293 default = "${cfg.stateDir}/log";
294 defaultText = literalExpression ''"''${config.${opt.stateDir}}/log"'';
295 type = types.str;
296- description = "Root path for log files.";
297 };
298 LEVEL = mkOption {
299 default = "Info";
300 type = types.enum [ "Trace" "Debug" "Info" "Warn" "Error" "Critical" ];
301- description = "General log level.";
302 };
303 };
304···306 DISABLE_SSH = mkOption {
307 type = types.bool;
308 default = false;
309- description = "Disable external SSH feature.";
310 };
311312 SSH_PORT = mkOption {
313 type = types.int;
314 default = 22;
315 example = 2222;
316- description = ''
317 SSH port displayed in clone URL.
318 The option is required to configure a service when the external visible port
319 differs from the local listening port i.e. if port forwarding is used.
···339 COOKIE_SECURE = mkOption {
340 type = types.bool;
341 default = false;
342- description = ''
343 Marks session cookies as "secure" as a hint for browsers to only send
344 them via HTTPS. This option is recommend, if gitea is being served over HTTPS.
345 '';
···183 file = mkOption {
184 type = types.nullOr types.str;
185 default = null;
186+ description = lib.mdDoc "Filename to be used for the dump. If `null` a default name is choosen by gitea.";
187 example = "gitea-dump";
188 };
189 };
···293 default = "${cfg.stateDir}/log";
294 defaultText = literalExpression ''"''${config.${opt.stateDir}}/log"'';
295 type = types.str;
296+ description = lib.mdDoc "Root path for log files.";
297 };
298 LEVEL = mkOption {
299 default = "Info";
300 type = types.enum [ "Trace" "Debug" "Info" "Warn" "Error" "Critical" ];
301+ description = lib.mdDoc "General log level.";
302 };
303 };
304···306 DISABLE_SSH = mkOption {
307 type = types.bool;
308 default = false;
309+ description = lib.mdDoc "Disable external SSH feature.";
310 };
311312 SSH_PORT = mkOption {
313 type = types.int;
314 default = 22;
315 example = 2222;
316+ description = lib.mdDoc ''
317 SSH port displayed in clone URL.
318 The option is required to configure a service when the external visible port
319 differs from the local listening port i.e. if port forwarding is used.
···339 COOKIE_SECURE = mkOption {
340 type = types.bool;
341 default = false;
342+ description = lib.mdDoc ''
343 Marks session cookies as "secure" as a hint for browsers to only send
344 them via HTTPS. This option is recommend, if gitea is being served over HTTPS.
345 '';
+6-8
nixos/modules/services/misc/gitlab.nix
···338 default = 0;
339 example = 48;
340 apply = x: x * 60 * 60;
341- description = ''
342 How long to keep the backups around, in
343- hours. <literal>0</literal> means <quote>keep
344- forever</quote>.
345 '';
346 };
347···415 databaseHost = mkOption {
416 type = types.str;
417 default = "";
418- description = ''
419- GitLab database hostname. An empty string means <quote>use
420- local unix socket connection</quote>.
421 '';
422 };
423···752 description = ''
753 The number of worker processes Puma should spawn. This
754 controls the amount of parallel Ruby code can be
755- executed. GitLab recommends <quote>Number of CPU cores -
756- 1</quote>, but at least two.
757758 <note>
759 <para>
···338 default = 0;
339 example = 48;
340 apply = x: x * 60 * 60;
341+ description = lib.mdDoc ''
342 How long to keep the backups around, in
343+ hours. `0` means “keep forever”.
0344 '';
345 };
346···414 databaseHost = mkOption {
415 type = types.str;
416 default = "";
417+ description = lib.mdDoc ''
418+ GitLab database hostname. An empty string means
419+ “use local unix socket connection”.
420 '';
421 };
422···751 description = ''
752 The number of worker processes Puma should spawn. This
753 controls the amount of parallel Ruby code can be
754+ executed. GitLab recommends <literal>Number of CPU cores - 1</literal>, but at least two.
0755756 <note>
757 <para>
+12-13
nixos/modules/services/misc/gitolite.nix
···14 enable = mkOption {
15 type = types.bool;
16 default = false;
17- description = ''
18 Enable gitolite management under the
19- <literal>gitolite</literal> user. After
20 switching to a configuration with Gitolite enabled, you can
21- then run <literal>git clone
22- gitolite@host:gitolite-admin.git</literal> to manage it further.
23 '';
24 };
25···72 @{$RC{ENABLE}} = grep { $_ ne 'desc' } @{$RC{ENABLE}}; # disable the command/feature
73 '''
74 '';
75- description = ''
76- Extra configuration to append to the default <literal>~/.gitolite.rc</literal>.
7778- This should be Perl code that modifies the <literal>%RC</literal>
79- configuration variable. The default <literal>~/.gitolite.rc</literal>
80- content is generated by invoking <literal>gitolite print-default-rc</literal>,
81 and extra configuration from this option is appended to it. The result
82- is placed to Nix store, and the <literal>~/.gitolite.rc</literal> file
83 becomes a symlink to it.
8485 If you already have a customized (or otherwise changed)
86- <literal>~/.gitolite.rc</literal> file, NixOS will refuse to replace
87 it with a symlink, and the `gitolite-init` initialization service
88 will fail. In this situation, in order to use this option, you
89 will need to take any customizations you may have in
90- <literal>~/.gitolite.rc</literal>, convert them to appropriate Perl
91 statements, add them to this option, and remove the file.
9293- See also the <literal>enableGitAnnex</literal> option.
94 '';
95 };
96
···14 enable = mkOption {
15 type = types.bool;
16 default = false;
17+ description = lib.mdDoc ''
18 Enable gitolite management under the
19+ `gitolite` user. After
20 switching to a configuration with Gitolite enabled, you can
21+ then run `git clone gitolite@host:gitolite-admin.git` to manage it further.
022 '';
23 };
24···71 @{$RC{ENABLE}} = grep { $_ ne 'desc' } @{$RC{ENABLE}}; # disable the command/feature
72 '''
73 '';
74+ description = lib.mdDoc ''
75+ Extra configuration to append to the default `~/.gitolite.rc`.
7677+ This should be Perl code that modifies the `%RC`
78+ configuration variable. The default `~/.gitolite.rc`
79+ content is generated by invoking `gitolite print-default-rc`,
80 and extra configuration from this option is appended to it. The result
81+ is placed to Nix store, and the `~/.gitolite.rc` file
82 becomes a symlink to it.
8384 If you already have a customized (or otherwise changed)
85+ `~/.gitolite.rc` file, NixOS will refuse to replace
86 it with a symlink, and the `gitolite-init` initialization service
87 will fail. In this situation, in order to use this option, you
88 will need to take any customizations you may have in
89+ `~/.gitolite.rc`, convert them to appropriate Perl
90 statements, add them to this option, and remove the file.
9192+ See also the `enableGitAnnex` option.
93 '';
94 };
95
+1-1
nixos/modules/services/misc/klipper.nix
···82 '';
83 configFile = mkOption {
84 type = path;
85- description = "Path to firmware config which is generated using `klipper-genconf`";
86 };
87 };
88 });
···82 '';
83 configFile = mkOption {
84 type = path;
85+ description = lib.mdDoc "Path to firmware config which is generated using `klipper-genconf`";
86 };
87 };
88 });
+10-10
nixos/modules/services/misc/nix-daemon.nix
···264 type = types.nullOr types.str;
265 default = null;
266 example = "/root/.ssh/id_buildhost_builduser";
267- description = ''
268 The path to the SSH private key with which to authenticate on
269 the build machine. The private key must not have a passphrase.
270 If null, the building user (root on NixOS machines) must have an
···562 trusted-public-keys = mkOption {
563 type = types.listOf types.str;
564 example = [ "hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=" ];
565- description = ''
566 List of public keys used to sign binary caches. If
567- <option>nix.settings.trusted-public-keys</option> is enabled,
568 then Nix will use a binary from a binary cache if and only
569- if it is signed by <emphasis>any</emphasis> of the keys
570 listed here. By default, only the key for
571- <uri>cache.nixos.org</uri> is included.
572 '';
573 };
574···605 type = types.listOf types.str;
606 default = [ "*" ];
607 example = [ "@wheel" "@builders" "alice" "bob" ];
608- description = ''
609 A list of names of users (separated by whitespace) that are
610 allowed to connect to the Nix daemon. As with
611- <option>nix.settings.trusted-users</option>, you can specify groups by
612- prefixing them with <literal>@</literal>. Also, you can
613- allow all users by specifying <literal>*</literal>. The
614- default is <literal>*</literal>. Note that trusted users are
615 always allowed to connect.
616 '';
617 };
···264 type = types.nullOr types.str;
265 default = null;
266 example = "/root/.ssh/id_buildhost_builduser";
267+ description = lib.mdDoc ''
268 The path to the SSH private key with which to authenticate on
269 the build machine. The private key must not have a passphrase.
270 If null, the building user (root on NixOS machines) must have an
···562 trusted-public-keys = mkOption {
563 type = types.listOf types.str;
564 example = [ "hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=" ];
565+ description = lib.mdDoc ''
566 List of public keys used to sign binary caches. If
567+ {option}`nix.settings.trusted-public-keys` is enabled,
568 then Nix will use a binary from a binary cache if and only
569+ if it is signed by *any* of the keys
570 listed here. By default, only the key for
571+ `cache.nixos.org` is included.
572 '';
573 };
574···605 type = types.listOf types.str;
606 default = [ "*" ];
607 example = [ "@wheel" "@builders" "alice" "bob" ];
608+ description = lib.mdDoc ''
609 A list of names of users (separated by whitespace) that are
610 allowed to connect to the Nix daemon. As with
611+ {option}`nix.settings.trusted-users`, you can specify groups by
612+ prefixing them with `@`. Also, you can
613+ allow all users by specifying `*`. The
614+ default is `*`. Note that trusted users are
615 always allowed to connect.
616 '';
617 };
+1-1
nixos/modules/services/misc/rmfakecloud.nix
···50 type = with types; attrsOf str;
51 default = { };
52 example = { DATADIR = "/custom/path/for/rmfakecloud/data"; };
53- description = ''
54 Extra settings in the form of a set of key-value pairs.
55 For tokens and secrets, use `environmentFile` instead.
56
···50 type = with types; attrsOf str;
51 default = { };
52 example = { DATADIR = "/custom/path/for/rmfakecloud/data"; };
53+ description = lib.mdDoc ''
54 Extra settings in the form of a set of key-value pairs.
55 For tokens and secrets, use `environmentFile` instead.
56
+1-1
nixos/modules/services/misc/zoneminder.nix
···80 webserver = mkOption {
81 type = types.enum [ "nginx" "none" ];
82 default = "nginx";
83- description = ''
84 The webserver to configure for the PHP frontend.
8586 Set it to `none` if you want to configure it yourself. PRs are welcome
···80 webserver = mkOption {
81 type = types.enum [ "nginx" "none" ];
82 default = "nginx";
83+ description = lib.mdDoc ''
84 The webserver to configure for the PHP frontend.
8586 Set it to `none` if you want to configure it yourself. PRs are welcome
+1-1
nixos/modules/services/monitoring/collectd.nix
···5253 buildMinimalPackage = mkOption {
54 default = false;
55- description = ''
56 Build a minimal collectd package with only the configured `services.collectd.plugins`
57 '';
58 type = bool;
···5253 buildMinimalPackage = mkOption {
54 default = false;
55+ description = lib.mdDoc ''
56 Build a minimal collectd package with only the configured `services.collectd.plugins`
57 '';
58 type = bool;
···60 package = mkOption {
61 default = pkgs.datadog-agent;
62 defaultText = literalExpression "pkgs.datadog-agent";
63- description = ''
64 Which DataDog v7 agent package to use. Note that the provided
65 package is expected to have an overridable `pythonPackages`-attribute
66 which configures the Python environment with the Datadog
···168 };
169170 checks = mkOption {
171- description = ''
172 Configuration for all Datadog checks. Keys of this attribute
173 set will be used as the name of the check to create the
174 appropriate configuration in `conf.d/$check.d/conf.yaml`.
···60 package = mkOption {
61 default = pkgs.datadog-agent;
62 defaultText = literalExpression "pkgs.datadog-agent";
63+ description = lib.mdDoc ''
64 Which DataDog v7 agent package to use. Note that the provided
65 package is expected to have an overridable `pythonPackages`-attribute
66 which configures the Python environment with the Datadog
···168 };
169170 checks = mkOption {
171+ description = lib.mdDoc ''
172 Configuration for all Datadog checks. Keys of this attribute
173 set will be used as the name of the check to create the
174 appropriate configuration in `conf.d/$check.d/conf.yaml`.
···20 apiKeyFile = mkOption {
21 type = types.path;
22 example = "/run/keys/mackerel-api-key";
23- description = ''
24 Path to file containing the Mackerel API key. The file should contain a
25 single line of the following form:
2627- <literallayout>apikey = "EXAMPLE_API_KEY"</literallayout>
28 '';
29 };
30
···20 apiKeyFile = mkOption {
21 type = types.path;
22 example = "/run/keys/mackerel-api-key";
23+ description = lib.mdDoc ''
24 Path to file containing the Mackerel API key. The file should contain a
25 single line of the following form:
2627+ `apikey = "EXAMPLE_API_KEY"`
28 '';
29 };
30
+11-11
nixos/modules/services/monitoring/nagios.nix
···91 enable = mkEnableOption ''<link xlink:href="http://www.nagios.org/">Nagios</link> to monitor your system or network.'';
9293 objectDefs = mkOption {
94- description = "
95 A list of Nagios object configuration files that must define
96 the hosts, host groups, services and contacts for the
97 network that you want Nagios to monitor.
98- ";
99 type = types.listOf types.path;
100 example = literalExpression "[ ./objects.cfg ]";
101 };
···104 type = types.listOf types.package;
105 default = with pkgs; [ monitoring-plugins msmtp mailutils ];
106 defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.msmtp pkgs.mailutils]";
107- description = "
108 Packages to be added to the Nagios <envar>PATH</envar>.
109 Typically used to add plugins, but can be anything.
110- ";
111 };
112113 mainConfigFile = mkOption {
114 type = types.nullOr types.package;
115 default = null;
116- description = "
117 If non-null, overrides the main configuration file of Nagios.
118- ";
119 };
120121 extraConfig = mkOption {
···139 type = types.package;
140 default = nagiosCGICfgFile;
141 defaultText = literalExpression "nagiosCGICfgFile";
142- description = "
143 Derivation for the configuration file of Nagios CGI scripts
144 that can be used in web servers for running the Nagios web interface.
145- ";
146 };
147148 enableWebInterface = mkOption {
149 type = types.bool;
150 default = false;
151- description = "
152 Whether to enable the Nagios web interface. You should also
153- enable Apache (<option>services.httpd.enable</option>).
154- ";
155 };
156157 virtualHost = mkOption {
···91 enable = mkEnableOption ''<link xlink:href="http://www.nagios.org/">Nagios</link> to monitor your system or network.'';
9293 objectDefs = mkOption {
94+ description = lib.mdDoc ''
95 A list of Nagios object configuration files that must define
96 the hosts, host groups, services and contacts for the
97 network that you want Nagios to monitor.
98+ '';
99 type = types.listOf types.path;
100 example = literalExpression "[ ./objects.cfg ]";
101 };
···104 type = types.listOf types.package;
105 default = with pkgs; [ monitoring-plugins msmtp mailutils ];
106 defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.msmtp pkgs.mailutils]";
107+ description = ''
108 Packages to be added to the Nagios <envar>PATH</envar>.
109 Typically used to add plugins, but can be anything.
110+ '';
111 };
112113 mainConfigFile = mkOption {
114 type = types.nullOr types.package;
115 default = null;
116+ description = lib.mdDoc ''
117 If non-null, overrides the main configuration file of Nagios.
118+ '';
119 };
120121 extraConfig = mkOption {
···139 type = types.package;
140 default = nagiosCGICfgFile;
141 defaultText = literalExpression "nagiosCGICfgFile";
142+ description = lib.mdDoc ''
143 Derivation for the configuration file of Nagios CGI scripts
144 that can be used in web servers for running the Nagios web interface.
145+ '';
146 };
147148 enableWebInterface = mkOption {
149 type = types.bool;
150 default = false;
151+ description = lib.mdDoc ''
152 Whether to enable the Nagios web interface. You should also
153+ enable Apache ({option}`services.httpd.enable`).
154+ '';
155 };
156157 virtualHost = mkOption {
···251 authorization = mkOption {
252 type = types.nullOr types.attrs;
253 default = null;
254- description = ''
255 Sets the `Authorization` header on every scrape request with the configured credentials.
256 '';
257 };
···664 promTypes.dockerswarm_sd_config = mkDockerSdConfigModule {
665 role = mkOption {
666 type = types.enum [ "services" "tasks" "nodes" ];
667- description = ''
668 Role of the targets to retrieve. Must be `services`, `tasks`, or `nodes`.
669 '';
670 };
···12221223 role = mkOption {
1224 type = types.enum [ "instance" "baremetal" ];
1225- description = ''
1226 Role of the targets to retrieve. Must be `instance` or `baremetal`.
1227 '';
1228 };
···1729 type = with types; either bool (enum [ "syntax-only" ]);
1730 default = true;
1731 example = "syntax-only";
1732- description = ''
1733- Check configuration with <literal>promtool
1734- check</literal>. The call to <literal>promtool</literal> is
1735 subject to sandboxing by Nix.
17361737 If you use credentials stored in external files
1738- (<literal>password_file</literal>, <literal>bearer_token_file</literal>, etc),
1739- they will not be visible to <literal>promtool</literal>
1740 and it will report errors, despite a correct configuration.
1741- To resolve this, you may set this option to <literal>"syntax-only"</literal>
1742 in order to only syntax check the Prometheus configuration.
1743 '';
1744 };
···251 authorization = mkOption {
252 type = types.nullOr types.attrs;
253 default = null;
254+ description = lib.mdDoc ''
255 Sets the `Authorization` header on every scrape request with the configured credentials.
256 '';
257 };
···664 promTypes.dockerswarm_sd_config = mkDockerSdConfigModule {
665 role = mkOption {
666 type = types.enum [ "services" "tasks" "nodes" ];
667+ description = lib.mdDoc ''
668 Role of the targets to retrieve. Must be `services`, `tasks`, or `nodes`.
669 '';
670 };
···12221223 role = mkOption {
1224 type = types.enum [ "instance" "baremetal" ];
1225+ description = lib.mdDoc ''
1226 Role of the targets to retrieve. Must be `instance` or `baremetal`.
1227 '';
1228 };
···1729 type = with types; either bool (enum [ "syntax-only" ]);
1730 default = true;
1731 example = "syntax-only";
1732+ description = lib.mdDoc ''
1733+ Check configuration with `promtool check`. The call to `promtool` is
01734 subject to sandboxing by Nix.
17351736 If you use credentials stored in external files
1737+ (`password_file`, `bearer_token_file`, etc),
1738+ they will not be visible to `promtool`
1739 and it will report errors, despite a correct configuration.
1740+ To resolve this, you may set this option to `"syntax-only"`
1741 in order to only syntax check the Prometheus configuration.
1742 '';
1743 };
···121 It's possible to work around the issue with a config like this:
122 <programlisting>
123 {
124- <link linkend="opt-services.rspamd.locals._name_.text">services.rspamd.locals."multimap.conf".text</link> = '''
125 ALLOWLIST_PROMETHEUS {
126 filter = "email:domain:tld";
127 type = "from";
···121 It's possible to work around the issue with a config like this:
122 <programlisting>
123 {
124+ services.rspamd.locals."multimap.conf".text = '''
125 ALLOWLIST_PROMETHEUS {
126 filter = "email:domain:tld";
127 type = "from";
···10 settings = mkOption {
11 type = types.attrs;
12 default = {};
13- description = ''
14 All settings of nginxlog expressed as an Nix attrset.
1516 Check the official documentation for the corresponding YAML
···10 settings = mkOption {
11 type = types.attrs;
12 default = {};
13+ description = lib.mdDoc ''
14 All settings of nginxlog expressed as an Nix attrset.
1516 Check the official documentation for the corresponding YAML
···12 example = "/run/keys/ldap_pass";
13 description = ''
14 Environment file to contain the credentials to authenticate against
15- <package>openldap</package>.
1617 The file should look like this:
18 <programlisting>
···26 default = "tcp";
27 example = "udp";
28 type = types.str;
29- description = ''
30- Which protocol to use to connect against <package>openldap</package>.
31 '';
32 };
33 ldapAddr = mkOption {
34 default = "localhost:389";
35 type = types.str;
36- description = ''
37- Address of the <package>openldap</package>-instance.
38 '';
39 };
40 metricsPath = mkOption {
···12 example = "/run/keys/ldap_pass";
13 description = ''
14 Environment file to contain the credentials to authenticate against
15+ <literal>openldap</literal>.
1617 The file should look like this:
18 <programlisting>
···26 default = "tcp";
27 example = "udp";
28 type = types.str;
29+ description = lib.mdDoc ''
30+ Which protocol to use to connect against `openldap`.
31 '';
32 };
33 ldapAddr = mkOption {
34 default = "localhost:389";
35 type = types.str;
36+ description = lib.mdDoc ''
37+ Address of the `openldap`-instance.
38 '';
39 };
40 metricsPath = mkOption {
···37 extraArgs = mkOption {
38 type = types.listOf types.str;
39 default = [];
40- description = ''
41 A list of commandline-switches forwarded to a riemann-tool.
42 See for example `riemann-health --help` for available options.
43 '';
···37 extraArgs = mkOption {
38 type = types.listOf types.str;
39 default = [];
40+ description = lib.mdDoc ''
41 A list of commandline-switches forwarded to a riemann-tool.
42 See for example `riemann-health --help` for available options.
43 '';
···111 uuid = mkOption {
112 example = "eacb6bab-f444-4ebf-a06a-3f72d7465e40";
113 type = types.str;
114- description = ''
115 Must be set to a unique identifier, preferably a UUID according to
116 RFC 4122. UUIDs can be generated with `uuidgen` command, found in
117 the `util-linux` package.
···236 uuid = mkOption {
237 example = "eacb6bab-f444-4ebf-a06a-3f72d7465e41";
238 type = types.str;
239- description = ''
240 Must be set to a unique identifier, preferably a UUID according to
241 RFC 4122. UUIDs can be generated with `uuidgen` command, found in
242 the `util-linux` package.
···379 uuid = mkOption {
380 example = "eacb6bab-f444-4ebf-a06a-3f72d7465e42";
381 type = types.str;
382- description = ''
383 Must be set to a unique identifier, preferably a UUID according to
384 RFC 4122. UUIDs can be generated with `uuidgen` command, found in
385 the `util-linux` package.
···111 uuid = mkOption {
112 example = "eacb6bab-f444-4ebf-a06a-3f72d7465e40";
113 type = types.str;
114+ description = lib.mdDoc ''
115 Must be set to a unique identifier, preferably a UUID according to
116 RFC 4122. UUIDs can be generated with `uuidgen` command, found in
117 the `util-linux` package.
···236 uuid = mkOption {
237 example = "eacb6bab-f444-4ebf-a06a-3f72d7465e41";
238 type = types.str;
239+ description = lib.mdDoc ''
240 Must be set to a unique identifier, preferably a UUID according to
241 RFC 4122. UUIDs can be generated with `uuidgen` command, found in
242 the `util-linux` package.
···379 uuid = mkOption {
380 example = "eacb6bab-f444-4ebf-a06a-3f72d7465e42";
381 type = types.str;
382+ description = lib.mdDoc ''
383 Must be set to a unique identifier, preferably a UUID according to
384 RFC 4122. UUIDs can be generated with `uuidgen` command, found in
385 the `util-linux` package.
···13 apiTokenFile = mkOption {
14 type = types.nullOr types.str;
15 default = null;
16- description = ''
17 The path to a file containing the CloudFlare API token.
1819 The file must have the form `CLOUDFLARE_API_TOKEN=...`
···13 apiTokenFile = mkOption {
14 type = types.nullOr types.str;
15 default = null;
16+ description = lib.mdDoc ''
17 The path to a file containing the CloudFlare API token.
1819 The file must have the form `CLOUDFLARE_API_TOKEN=...`
+3-3
nixos/modules/services/networking/create_ap.nix
···12 settings = mkOption {
13 type = with types; attrsOf (oneOf [ int bool str ]);
14 default = {};
15- description = ''
16- Configuration for <package>create_ap</package>.
17- See <link xlink:href="https://raw.githubusercontent.com/lakinduakash/linux-wifi-hotspot/master/src/scripts/create_ap.conf">upstream example configuration</link>
18 for supported values.
19 '';
20 example = {
···12 settings = mkOption {
13 type = with types; attrsOf (oneOf [ int bool str ]);
14 default = {};
15+ description = lib.mdDoc ''
16+ Configuration for `create_ap`.
17+ See [upstream example configuration](https://raw.githubusercontent.com/lakinduakash/linux-wifi-hotspot/master/src/scripts/create_ap.conf)
18 for supported values.
19 '';
20 example = {
+1-1
nixos/modules/services/networking/dhcpcd.nix
···155 type = types.lines;
156 default = "";
157 example = "if [[ $reason =~ BOUND ]]; then echo $interface: Routers are $new_routers - were $old_routers; fi";
158- description = ''
159 Shell code that will be run after all other hooks. See
160 `man dhcpcd-run-hooks` for details on what is possible.
161 '';
···155 type = types.lines;
156 default = "";
157 example = "if [[ $reason =~ BOUND ]]; then echo $interface: Routers are $new_routers - were $old_routers; fi";
158+ description = lib.mdDoc ''
159 Shell code that will be run after all other hooks. See
160 `man dhcpcd-run-hooks` for details on what is possible.
161 '';
+1-1
nixos/modules/services/networking/ferm.nix
···20 enable = mkOption {
21 default = false;
22 type = types.bool;
23- description = ''
24 Whether to enable Ferm Firewall.
25 *Warning*: Enabling this service WILL disable the existing NixOS
26 firewall! Default firewall rules provided by packages are not
···20 enable = mkOption {
21 default = false;
22 type = types.bool;
23+ description = lib.mdDoc ''
24 Whether to enable Ferm Firewall.
25 *Warning*: Enabling this service WILL disable the existing NixOS
26 firewall! Default firewall rules provided by packages are not
···55 type = lib.types.package;
56 default = pkgs.syncstorage-rs;
57 defaultText = lib.literalExpression "pkgs.syncstorage-rs";
58- description = ''
59 Package to use.
60 '';
61 };
···66 # behavior ever change.
67 type = lib.types.strMatching "[a-z_][a-z0-9_]*";
68 default = defaultDatabase;
69- description = ''
70 Database to use for storage. Will be created automatically if it does not exist
71- and <literal>config.${opt.database.createLocally}</literal> is set.
72 '';
73 };
7475 database.user = lib.mkOption {
76 type = lib.types.str;
77 default = defaultUser;
78- description = ''
79 Username for database connections.
80 '';
81 };
···83 database.host = lib.mkOption {
84 type = lib.types.str;
85 default = "localhost";
86- description = ''
87- Database host name. <literal>localhost</literal> is treated specially and inserts
88 systemd dependencies, other hostnames or IP addresses of the local machine do not.
89 '';
90 };
···92 database.createLocally = lib.mkOption {
93 type = lib.types.bool;
94 default = true;
95- description = ''
96 Whether to create database and user on the local machine if they do not exist.
97 This includes enabling unix domain socket authentication for the configured user.
98 '';
···101 logLevel = lib.mkOption {
102 type = lib.types.str;
103 default = "error";
104- description = ''
105- Log level to run with. This can be a simple log level like <literal>error</literal>
106- or <literal>trace</literal>, or a more complicated logging expression.
107 '';
108 };
109110 secrets = lib.mkOption {
111 type = lib.types.path;
112- description = ''
113 A file containing the various secrets. Should be in the format expected by systemd's
114- <literal>EnvironmentFile</literal> directory. Two secrets are currently available:
115- <literal>SYNC_MASTER_SECRET</literal> and
116- <literal>SYNC_TOKENSERVER__FXA_METRICS_HASH_SECRET</literal>.
117 '';
118 };
119···126127 hostname = lib.mkOption {
128 type = lib.types.str;
129- description = ''
130 Host name to use for this service.
131 '';
132 };
···134 capacity = lib.mkOption {
135 type = lib.types.ints.unsigned;
136 default = 10;
137- description = ''
138 How many sync accounts are allowed on this server. Setting this value
139 equal to or less than the number of currently active accounts will
140 effectively deny service to accounts not yet registered here.
···147 defaultText = lib.literalExpression ''
148 ''${if cfg.singleNode.enableTLS then "https" else "http"}://''${config.${opt.singleNode.hostname}}
149 '';
150- description = ''
151 URL of the host. If you are not using the automatic webserver proxy setup you will have
152 to change this setting or your sync server may not be functional.
153 '';
···162 port = lib.mkOption {
163 type = lib.types.port;
164 default = 5000;
165- description = ''
166 Port to bind to.
167 '';
168 };
···170 tokenserver.enabled = lib.mkOption {
171 type = lib.types.bool;
172 default = true;
173- description = ''
174 Whether to enable the token service as well.
175 '';
176 };
177 };
178 };
179 default = { };
180- description = ''
181 Settings for the sync server. These take priority over values computed
182 from NixOS options.
183184- See the doc comments on the <literal>Settings</literal> structs in
185- <link xlink:href="https://github.com/mozilla-services/syncstorage-rs/blob/master/syncstorage/src/settings.rs" />
186 and
187- <link xlink:href="https://github.com/mozilla-services/syncstorage-rs/blob/master/syncstorage/src/tokenserver/settings.rs" />
188 for available options.
189 '';
190 };
···55 type = lib.types.package;
56 default = pkgs.syncstorage-rs;
57 defaultText = lib.literalExpression "pkgs.syncstorage-rs";
58+ description = lib.mdDoc ''
59 Package to use.
60 '';
61 };
···66 # behavior ever change.
67 type = lib.types.strMatching "[a-z_][a-z0-9_]*";
68 default = defaultDatabase;
69+ description = lib.mdDoc ''
70 Database to use for storage. Will be created automatically if it does not exist
71+ and `config.${opt.database.createLocally}` is set.
72 '';
73 };
7475 database.user = lib.mkOption {
76 type = lib.types.str;
77 default = defaultUser;
78+ description = lib.mdDoc ''
79 Username for database connections.
80 '';
81 };
···83 database.host = lib.mkOption {
84 type = lib.types.str;
85 default = "localhost";
86+ description = lib.mdDoc ''
87+ Database host name. `localhost` is treated specially and inserts
88 systemd dependencies, other hostnames or IP addresses of the local machine do not.
89 '';
90 };
···92 database.createLocally = lib.mkOption {
93 type = lib.types.bool;
94 default = true;
95+ description = lib.mdDoc ''
96 Whether to create database and user on the local machine if they do not exist.
97 This includes enabling unix domain socket authentication for the configured user.
98 '';
···101 logLevel = lib.mkOption {
102 type = lib.types.str;
103 default = "error";
104+ description = lib.mdDoc ''
105+ Log level to run with. This can be a simple log level like `error`
106+ or `trace`, or a more complicated logging expression.
107 '';
108 };
109110 secrets = lib.mkOption {
111 type = lib.types.path;
112+ description = lib.mdDoc ''
113 A file containing the various secrets. Should be in the format expected by systemd's
114+ `EnvironmentFile` directory. Two secrets are currently available:
115+ `SYNC_MASTER_SECRET` and
116+ `SYNC_TOKENSERVER__FXA_METRICS_HASH_SECRET`.
117 '';
118 };
119···126127 hostname = lib.mkOption {
128 type = lib.types.str;
129+ description = lib.mdDoc ''
130 Host name to use for this service.
131 '';
132 };
···134 capacity = lib.mkOption {
135 type = lib.types.ints.unsigned;
136 default = 10;
137+ description = lib.mdDoc ''
138 How many sync accounts are allowed on this server. Setting this value
139 equal to or less than the number of currently active accounts will
140 effectively deny service to accounts not yet registered here.
···147 defaultText = lib.literalExpression ''
148 ''${if cfg.singleNode.enableTLS then "https" else "http"}://''${config.${opt.singleNode.hostname}}
149 '';
150+ description = lib.mdDoc ''
151 URL of the host. If you are not using the automatic webserver proxy setup you will have
152 to change this setting or your sync server may not be functional.
153 '';
···162 port = lib.mkOption {
163 type = lib.types.port;
164 default = 5000;
165+ description = lib.mdDoc ''
166 Port to bind to.
167 '';
168 };
···170 tokenserver.enabled = lib.mkOption {
171 type = lib.types.bool;
172 default = true;
173+ description = lib.mdDoc ''
174 Whether to enable the token service as well.
175 '';
176 };
177 };
178 };
179 default = { };
180+ description = lib.mdDoc ''
181 Settings for the sync server. These take priority over values computed
182 from NixOS options.
183184+ See the doc comments on the `Settings` structs in
185+ <https://github.com/mozilla-services/syncstorage-rs/blob/master/syncstorage/src/settings.rs>
186 and
187+ <https://github.com/mozilla-services/syncstorage-rs/blob/master/syncstorage/src/tokenserver/settings.rs>
188 for available options.
189 '';
190 };
+1-1
nixos/modules/services/networking/fireqos.nix
···10 enable = mkOption {
11 type = types.bool;
12 default = false;
13- description = ''
14 If enabled, FireQOS will be launched with the specified
15 configuration given in `config`.
16 '';
···10 enable = mkOption {
11 type = types.bool;
12 default = false;
13+ description = lib.mdDoc ''
14 If enabled, FireQOS will be launched with the specified
15 configuration given in `config`.
16 '';
+3-3
nixos/modules/services/networking/ghostunnel.nix
···37 };
3839 keystore = mkOption {
40- description = ''
41 Path to keystore (combined PEM with cert/key, or PKCS12 keystore).
4243- NB: storepass is not supported because it would expose credentials via <literal>/proc/*/cmdline</literal>.
4445- Specify this or <literal>cert</literal> and <literal>key</literal>.
46 '';
47 type = types.nullOr types.str;
48 default = null;
···37 };
3839 keystore = mkOption {
40+ description = lib.mdDoc ''
41 Path to keystore (combined PEM with cert/key, or PKCS12 keystore).
4243+ NB: storepass is not supported because it would expose credentials via `/proc/*/cmdline`.
4445+ Specify this or `cert` and `key`.
46 '';
47 type = types.nullOr types.str;
48 default = null;
+1-1
nixos/modules/services/networking/gnunet.nix
···123 extraOptions = mkOption {
124 type = types.lines;
125 default = "";
126- description = ''
127 Additional options that will be copied verbatim in `gnunet.conf'.
128 See `gnunet.conf(5)' for details.
129 '';
···123 extraOptions = mkOption {
124 type = types.lines;
125 default = "";
126+ description = lib.mdDoc ''
127 Additional options that will be copied verbatim in `gnunet.conf'.
128 See `gnunet.conf(5)' for details.
129 '';
+1-1
nixos/modules/services/networking/headscale.nix
···216 magicDns = mkOption {
217 type = types.bool;
218 default = true;
219- description = ''
220 Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/).
221 Only works if there is at least a nameserver defined.
222 '';
···216 magicDns = mkOption {
217 type = types.bool;
218 default = true;
219+ description = lib.mdDoc ''
220 Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/).
221 Only works if there is at least a nameserver defined.
222 '';
···77 };
7879 extraConfigFile = mkOption {
80- description = ''
81 Append an additional file's contents to `/etc/iscsid.conf`. Use a non-store path
82 and store passwords in this file. Note: the file specified here must be available
83 in the initrd, see: `boot.initrd.secrets`.
···77 };
7879 extraConfigFile = mkOption {
80+ description = lib.mdDoc ''
81 Append an additional file's contents to `/etc/iscsid.conf`. Use a non-store path
82 and store passwords in this file. Note: the file specified here must be available
83 in the initrd, see: `boot.initrd.secrets`.
···95 network.exit-node = [ "example.loki" "example2.loki" ];
96 }
97 '';
98- description = ''
99 Configuration for Lokinet.
100 Currently, the best way to view the available settings is by
101 generating a config file using `lokinet -g`.
···95 network.exit-node = [ "example.loki" "example2.loki" ];
96 }
97 '';
98+ description = lib.mdDoc ''
99 Configuration for Lokinet.
100 Currently, the best way to view the available settings is by
101 generating a config file using `lokinet -g`.
+1-1
nixos/modules/services/networking/monero.nix
···181 exclusiveNodes = mkOption {
182 type = types.listOf types.str;
183 default = [ ];
184- description = ''
185 List of peer IP addresses to connect to *only*.
186 If given the other peer options will be ignored.
187 '';
···181 exclusiveNodes = mkOption {
182 type = types.listOf types.str;
183 default = [ ];
184+ description = lib.mdDoc ''
185 List of peer IP addresses to connect to *only*.
186 If given the other peer options will be ignored.
187 '';
+1-1
nixos/modules/services/networking/murmur.nix
···219 registerHostname = mkOption {
220 type = types.str;
221 default = "";
222- description = ''
223 DNS hostname where your server can be reached. This is only
224 needed if you want your server to be accessed by its
225 hostname and not IP - but the name *must* resolve on the
···219 registerHostname = mkOption {
220 type = types.str;
221 default = "";
222+ description = lib.mdDoc ''
223 DNS hostname where your server can be reached. This is only
224 needed if you want your server to be accessed by its
225 hostname and not IP - but the name *must* resolve on the
+2-2
nixos/modules/services/networking/mxisd.nix
···49 environmentFile = mkOption {
50 type = types.nullOr types.str;
51 default = null;
52- description = ''
53 Path to an environment-file which may contain secrets to be
54- substituted via <package>envsubst</package>.
55 '';
56 };
57
···49 environmentFile = mkOption {
50 type = types.nullOr types.str;
51 default = null;
52+ description = lib.mdDoc ''
53 Path to an environment-file which may contain secrets to be
54+ substituted via `envsubst`.
55 '';
56 };
57
+1-1
nixos/modules/services/networking/nar-serve.nix
···23 cacheURL = mkOption {
24 type = types.str;
25 default = "https://cache.nixos.org/";
26- description = ''
27 Binary cache URL to connect to.
2829 The URL format is compatible with the nix remote url style, such as:
···23 cacheURL = mkOption {
24 type = types.str;
25 default = "https://cache.nixos.org/";
26+ description = lib.mdDoc ''
27 Binary cache URL to connect to.
2829 The URL format is compatible with the nix remote url style, such as:
+2-2
nixos/modules/services/networking/ncdns.nix
···126 description = ''
127 Path to the file containing the KSK public key.
128 The key can be generated using the <literal>dnssec-keygen</literal>
129- command, provided by the package <package>bind</package> as follows:
130 <programlisting>
131 $ dnssec-keygen -a RSASHA256 -3 -b 2048 -f KSK bit
132 </programlisting>
···147 description = ''
148 Path to the file containing the ZSK public key.
149 The key can be generated using the <literal>dnssec-keygen</literal>
150- command, provided by the package <package>bind</package> as follows:
151 <programlisting>
152 $ dnssec-keygen -a RSASHA256 -3 -b 2048 bit
153 </programlisting>
···126 description = ''
127 Path to the file containing the KSK public key.
128 The key can be generated using the <literal>dnssec-keygen</literal>
129+ command, provided by the package <literal>bind</literal> as follows:
130 <programlisting>
131 $ dnssec-keygen -a RSASHA256 -3 -b 2048 -f KSK bit
132 </programlisting>
···147 description = ''
148 Path to the file containing the ZSK public key.
149 The key can be generated using the <literal>dnssec-keygen</literal>
150+ command, provided by the package <literal>bind</literal> as follows:
151 <programlisting>
152 $ dnssec-keygen -a RSASHA256 -3 -b 2048 bit
153 </programlisting>
+2-2
nixos/modules/services/networking/nix-serve.nix
···39 The path to the file used for signing derivation data.
40 Generate with:
4142- ```
43 nix-store --generate-binary-cache-key key-name secret-key-file public-key-file
44- ```
4546 For more details see <citerefentry><refentrytitle>nix-store</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
47 '';
···39 The path to the file used for signing derivation data.
40 Generate with:
4142+ <programlisting>
43 nix-store --generate-binary-cache-key key-name secret-key-file public-key-file
44+ </programlisting>
4546 For more details see <citerefentry><refentrytitle>nix-store</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
47 '';
+1-1
nixos/modules/services/networking/nixops-dns.nix
···40 dnsmasq = mkOption {
41 type = types.bool;
42 default = true;
43- description = ''
44 Enable dnsmasq forwarding to nixops-dns. This allows to use
45 nixops-dns for `services.nixops-dns.domain` resolution
46 while forwarding the rest of the queries to original resolvers.
···40 dnsmasq = mkOption {
41 type = types.bool;
42 default = true;
43+ description = lib.mdDoc ''
44 Enable dnsmasq forwarding to nixops-dns. This allows to use
45 nixops-dns for `services.nixops-dns.domain` resolution
46 while forwarding the rest of the queries to original resolvers.
+1-1
nixos/modules/services/networking/ocserv.nix
···15 config = mkOption {
16 type = types.lines;
1718- description = ''
19 Configuration content to start an OCServ server.
2021 For a full configuration reference,please refer to the online documentation
···15 config = mkOption {
16 type = types.lines;
1718+ description = lib.mdDoc ''
19 Configuration content to start an OCServ server.
2021 For a full configuration reference,please refer to the online documentation
+2-2
nixos/modules/services/networking/redsocks.nix
···30 type = types.str;
31 default = "stderr";
32 description =
33- ''
34 Where to send logs.
3536 Possible values are:
···122 "Forwarded_ipport" ];
123 default = "false";
124 description =
125- ''
126 Way to disclose client IP to the proxy.
127 - "false": do not disclose
128 http-connect supports the following ways:
···30 type = types.str;
31 default = "stderr";
32 description =
33+ lib.mdDoc ''
34 Where to send logs.
3536 Possible values are:
···122 "Forwarded_ipport" ];
123 default = "false";
124 description =
125+ lib.mdDoc ''
126 Way to disclose client IP to the proxy.
127 - "false": do not disclose
128 http-connect supports the following ways:
+9-9
nixos/modules/services/networking/resilio.nix
···199 ];
200 }
201 ];
202- description = ''
203 Shared folder list. If enabled, web UI must be
204- disabled. Secrets can be generated using <literal>rslsync
205- --generate-secret</literal>. Note that this secret will be
206 put inside the Nix store, so it is realistically not very
207 secret.
208209 If you would like to be able to modify the contents of this
210 directories, it is recommended that you make your user a
211- member of the <literal>rslsync</literal> group.
212213 Directories in this list should be in the
214- <literal>rslsync</literal> group, and that group must have
215 write access to the directory. It is also recommended that
216- <literal>chmod g+s</literal> is applied to the directory
217 so that any sub directories created will also belong to
218- the <literal>rslsync</literal> group. Also,
219- <literal>setfacl -d -m group:rslsync:rwx</literal> and
220- <literal>setfacl -m group:rslsync:rwx</literal> should also
221 be applied so that the sub directories are writable by
222 the group.
223 '';
···199 ];
200 }
201 ];
202+ description = lib.mdDoc ''
203 Shared folder list. If enabled, web UI must be
204+ disabled. Secrets can be generated using `rslsync --generate-secret`.
205+ Note that this secret will be
206 put inside the Nix store, so it is realistically not very
207 secret.
208209 If you would like to be able to modify the contents of this
210 directories, it is recommended that you make your user a
211+ member of the `rslsync` group.
212213 Directories in this list should be in the
214+ `rslsync` group, and that group must have
215 write access to the directory. It is also recommended that
216+ `chmod g+s` is applied to the directory
217 so that any sub directories created will also belong to
218+ the `rslsync` group. Also,
219+ `setfacl -d -m group:rslsync:rwx` and
220+ `setfacl -m group:rslsync:rwx` should also
221 be applied so that the sub directories are writable by
222 the group.
223 '';
+1-1
nixos/modules/services/networking/rpcbind.nix
···13 enable = mkOption {
14 type = types.bool;
15 default = false;
16- description = ''
17 Whether to enable `rpcbind', an ONC RPC directory service
18 notably used by NFS and NIS, and which can be queried
19 using the rpcinfo(1) command. `rpcbind` is a replacement for
···13 enable = mkOption {
14 type = types.bool;
15 default = false;
16+ description = lib.mdDoc ''
17 Whether to enable `rpcbind', an ONC RPC directory service
18 notably used by NFS and NIS, and which can be queried
19 using the rpcinfo(1) command. `rpcbind` is a replacement for
+2-2
nixos/modules/services/networking/v2ray.nix
···51 protocol = "freedom";
52 }];
53 };
54- description = ''
55 The configuration object.
5657 Either `configFile` or `config` must be specified.
5859- See <link xlink:href="https://www.v2fly.org/en_US/config/overview.html"/>.
60 '';
61 };
62 };
···51 protocol = "freedom";
52 }];
53 };
54+ description = lib.mdDoc ''
55 The configuration object.
5657 Either `configFile` or `config` must be specified.
5859+ See <https://www.v2fly.org/en_US/config/overview.html>.
60 '';
61 };
62 };
···189 allowAuxiliaryImperativeNetworks = mkEnableOption "support for imperative & declarative networks" // {
190 description = ''
191 Whether to allow configuring networks "imperatively" (e.g. via
192- <package>wpa_supplicant_gui</package>) and declaratively via
193 <xref linkend="opt-networking.wireless.networks"/>.
194195- Please note that this adds a custom patch to <package>wpa_supplicant</package>.
196 '';
197 };
198
···189 allowAuxiliaryImperativeNetworks = mkEnableOption "support for imperative & declarative networks" // {
190 description = ''
191 Whether to allow configuring networks "imperatively" (e.g. via
192+ <literal>wpa_supplicant_gui</literal>) and declaratively via
193 <xref linkend="opt-networking.wireless.networks"/>.
194195+ Please note that this adds a custom patch to <literal>wpa_supplicant</literal>.
196 '';
197 };
198
+1-1
nixos/modules/services/networking/x2goserver.nix
···50 settings = mkOption {
51 type = types.attrsOf types.attrs;
52 default = {};
53- description = ''
54 x2goserver.conf ini configuration as nix attributes. See
55 `x2goserver.conf(5)` for details
56 '';
···50 settings = mkOption {
51 type = types.attrsOf types.attrs;
52 default = {};
53+ description = lib.mdDoc ''
54 x2goserver.conf ini configuration as nix attributes. See
55 `x2goserver.conf(5)` for details
56 '';
+9-10
nixos/modules/services/networking/yggdrasil.nix
···31 "tcp://0.0.0.0:xxxxx"
32 ];
33 };
34- description = ''
35 Configuration for yggdrasil, as a Nix attribute set.
3637 Warning: this is stored in the WORLD-READABLE Nix store!
38 Therefore, it is not appropriate for private keys. If you
39- wish to specify the keys, use <option>configFile</option>.
4041- If the <option>persistentKeys</option> is enabled then the
42 keys that are generated during activation will override
43- those in <option>config</option> or
44- <option>configFile</option>.
4546 If no keys are specified then ephemeral keys are generated
47 and the Yggdrasil interface will have a random IPv6 address
48 each time the service is started, this is the default.
4950- If both <option>configFile</option> and <option>config</option>
51 are supplied, they will be combined, with values from
52- <option>configFile</option> taking precedence.
5354- You can use the command <literal>nix-shell -p yggdrasil --run
55- "yggdrasil -genconf"</literal> to generate default
56- configuration values with documentation.
57 '';
58 };
59
···31 "tcp://0.0.0.0:xxxxx"
32 ];
33 };
34+ description = lib.mdDoc ''
35 Configuration for yggdrasil, as a Nix attribute set.
3637 Warning: this is stored in the WORLD-READABLE Nix store!
38 Therefore, it is not appropriate for private keys. If you
39+ wish to specify the keys, use {option}`configFile`.
4041+ If the {option}`persistentKeys` is enabled then the
42 keys that are generated during activation will override
43+ those in {option}`config` or
44+ {option}`configFile`.
4546 If no keys are specified then ephemeral keys are generated
47 and the Yggdrasil interface will have a random IPv6 address
48 each time the service is started, this is the default.
4950+ If both {option}`configFile` and {option}`config`
51 are supplied, they will be combined, with values from
52+ {option}`configFile` taking precedence.
5354+ You can use the command `nix-shell -p yggdrasil --run "yggdrasil -genconf"`
55+ to generate default configuration values with documentation.
056 '';
57 };
58
+4-4
nixos/modules/services/networking/znc/options.nix
···118 type = types.listOf types.str;
119 default = [ "webadmin" "adminlog" ];
120 example = [ "partyline" "webadmin" "adminlog" "log" ];
121- description = ''
122 A list of modules to include in the `znc.conf` file.
123 '';
124 };
···127 type = types.listOf types.str;
128 default = [ "chansaver" "controlpanel" ];
129 example = [ "chansaver" "controlpanel" "fish" "push" ];
130- description = ''
131 A list of user modules to include in the `znc.conf` file.
132 '';
133 };
···178 '';
179 type = types.str;
180 description = ''
181- Generate with `nix-shell -p znc --command "znc --makepass"`.
182 This is the password used to log in to the ZNC web admin interface.
183 You can also set this through
184 <option>services.znc.config.User.<username>.Pass.Method</option>
···216 extraZncConf = mkOption {
217 default = "";
218 type = types.lines;
219- description = ''
220 Extra config to `znc.conf` file.
221 '';
222 };
···118 type = types.listOf types.str;
119 default = [ "webadmin" "adminlog" ];
120 example = [ "partyline" "webadmin" "adminlog" "log" ];
121+ description = lib.mdDoc ''
122 A list of modules to include in the `znc.conf` file.
123 '';
124 };
···127 type = types.listOf types.str;
128 default = [ "chansaver" "controlpanel" ];
129 example = [ "chansaver" "controlpanel" "fish" "push" ];
130+ description = lib.mdDoc ''
131 A list of user modules to include in the `znc.conf` file.
132 '';
133 };
···178 '';
179 type = types.str;
180 description = ''
181+ Generate with <command>nix-shell -p znc --command "znc --makepass"</command>.
182 This is the password used to log in to the ZNC web admin interface.
183 You can also set this through
184 <option>services.znc.config.User.<username>.Pass.Method</option>
···216 extraZncConf = mkOption {
217 default = "";
218 type = types.lines;
219+ description = lib.mdDoc ''
220 Extra config to `znc.conf` file.
221 '';
222 };
+1-1
nixos/modules/services/search/meilisearch.nix
···68 };
6970 logLevel = mkOption {
71- description = ''
72 Defines how much detail should be present in MeiliSearch's logs.
73 MeiliSearch currently supports four log levels, listed in order of increasing verbosity:
74 - 'ERROR': only log unexpected events indicating MeiliSearch is not functioning as expected
···68 };
6970 logLevel = mkOption {
71+ description = lib.mdDoc ''
72 Defines how much detail should be present in MeiliSearch's logs.
73 MeiliSearch currently supports four log levels, listed in order of increasing verbosity:
74 - 'ERROR': only log unexpected events indicating MeiliSearch is not functioning as expected
+1-1
nixos/modules/services/security/fail2ban.nix
···73 default = [];
74 type = types.listOf types.package;
75 example = lib.literalExpression "[ pkgs.ipset ]";
76- description = ''
77 Extra packages to be made available to the fail2ban service. The example contains
78 the packages needed by the `iptables-ipset-proto6` action.
79 '';
···73 default = [];
74 type = types.listOf types.package;
75 example = lib.literalExpression "[ pkgs.ipset ]";
76+ description = lib.mdDoc ''
77 Extra packages to be made available to the fail2ban service. The example contains
78 the packages needed by the `iptables-ipset-proto6` action.
79 '';
···10 enable = mkEnableOption "the Infinite Noise TRNG driver";
1112 fillDevRandom = mkOption {
13- description = ''
14 Whether to run the infnoise driver as a daemon to refill /dev/random.
1516 If disabled, you can use the `infnoise` command-line tool to
···10 enable = mkEnableOption "the Infinite Noise TRNG driver";
1112 fillDevRandom = mkOption {
13+ description = lib.mdDoc ''
14 Whether to run the infnoise driver as a daemon to refill /dev/random.
1516 If disabled, you can use the `infnoise` command-line tool to
+3-3
nixos/modules/services/security/oauth2_proxy.nix
···160 domains = mkOption {
161 type = types.listOf types.str;
162 default = [];
163- description = ''
164 Authenticate emails with the specified domains. Use
165- <literal>*</literal> to authenticate any email.
166 '';
167 };
168···347 domain = mkOption {
348 type = types.nullOr types.str;
349 default = null;
350- description = ''
351 Optional cookie domains to force cookies to (ie: `.yourcompany.com`).
352 The longest domain matching the request's host will be used (or the shortest
353 cookie domain if there is no match).
···160 domains = mkOption {
161 type = types.listOf types.str;
162 default = [];
163+ description = lib.mdDoc ''
164 Authenticate emails with the specified domains. Use
165+ `*` to authenticate any email.
166 '';
167 };
168···347 domain = mkOption {
348 type = types.nullOr types.str;
349 default = null;
350+ description = lib.mdDoc ''
351 Optional cookie domains to force cookies to (ie: `.yourcompany.com`).
352 The longest domain matching the request's host will be used (or the shortest
353 cookie domain if there is no match).
+5-5
nixos/modules/services/security/privacyidea.nix
···75 description = ''
76 File to load as environment file. Environment variables
77 from this file will be interpolated into the config file
78- using <package>envsubst</package> which is helpful for specifying
79 secrets:
80 <programlisting>
81 { <xref linkend="opt-services.privacyidea.secretKey"/> = "$SECRET"; }
···204 settings = mkOption {
205 type = with types; attrsOf (attrsOf (oneOf [ str bool int (listOf str) ]));
206 default = {};
207- description = ''
208- Attribute-set containing the settings for <package>privacyidea-ldap-proxy</package>.
209 It's possible to pass secrets using env-vars as substitutes and
210- use the option <xref linkend="opt-services.privacyidea.ldap-proxy.environmentFile"/>
211- to inject them via <package>envsubst</package>.
212 '';
213 };
214
···75 description = ''
76 File to load as environment file. Environment variables
77 from this file will be interpolated into the config file
78+ using <literal>envsubst</literal> which is helpful for specifying
79 secrets:
80 <programlisting>
81 { <xref linkend="opt-services.privacyidea.secretKey"/> = "$SECRET"; }
···204 settings = mkOption {
205 type = with types; attrsOf (attrsOf (oneOf [ str bool int (listOf str) ]));
206 default = {};
207+ description = lib.mdDoc ''
208+ Attribute-set containing the settings for `privacyidea-ldap-proxy`.
209 It's possible to pass secrets using env-vars as substitutes and
210+ use the option [](#opt-services.privacyidea.ldap-proxy.environmentFile)
211+ to inject them via `envsubst`.
212 '';
213 };
214
+2-2
nixos/modules/services/system/cloud-init.nix
···39 btrfs.enable = mkOption {
40 type = types.bool;
41 default = false;
42- description = ''
43 Allow the cloud-init service to operate `btrfs` filesystem.
44 '';
45 };
···47 ext4.enable = mkOption {
48 type = types.bool;
49 default = true;
50- description = ''
51 Allow the cloud-init service to operate `ext4` filesystem.
52 '';
53 };
···39 btrfs.enable = mkOption {
40 type = types.bool;
41 default = false;
42+ description = lib.mdDoc ''
43 Allow the cloud-init service to operate `btrfs` filesystem.
44 '';
45 };
···47 ext4.enable = mkOption {
48 type = types.bool;
49 default = true;
50+ description = lib.mdDoc ''
51 Allow the cloud-init service to operate `ext4` filesystem.
52 '';
53 };
+6-6
nixos/modules/services/system/self-deploy.nix
···4142 default = null;
4344- description = ''
45 Attribute of `nixFile` that builds the current system.
46 '';
47 };
···5152 default = { };
5354- description = ''
55 Arguments to `nix-build` passed as `--argstr` or `--arg` depending on
56 the type.
57 '';
···6263 default = "switch";
6465- description = ''
66 The `switch-to-configuration` subcommand used.
67 '';
68 };
···70 repository = lib.mkOption {
71 type = with lib.types; oneOf [ path str ];
7273- description = ''
74 The repository to fetch from. Must be properly formatted for git.
7576 If this value is set to a path (must begin with `/`) then it's
···99100 default = "master";
101102- description = ''
103 Branch to track
104105 Technically speaking any ref can be specified here, as this is
···113114 default = "hourly";
115116- description = ''
117 The schedule on which to run the `self-deploy` service. Format
118 specified by `systemd.time 7`.
119
···4142 default = null;
4344+ description = lib.mdDoc ''
45 Attribute of `nixFile` that builds the current system.
46 '';
47 };
···5152 default = { };
5354+ description = lib.mdDoc ''
55 Arguments to `nix-build` passed as `--argstr` or `--arg` depending on
56 the type.
57 '';
···6263 default = "switch";
6465+ description = lib.mdDoc ''
66 The `switch-to-configuration` subcommand used.
67 '';
68 };
···70 repository = lib.mkOption {
71 type = with lib.types; oneOf [ path str ];
7273+ description = lib.mdDoc ''
74 The repository to fetch from. Must be properly formatted for git.
7576 If this value is set to a path (must begin with `/`) then it's
···99100 default = "master";
101102+ description = lib.mdDoc ''
103 Branch to track
104105 Technically speaking any ref can be specified here, as this is
···113114 default = "hourly";
115116+ description = lib.mdDoc ''
117 The schedule on which to run the `self-deploy` service. Format
118 specified by `systemd.time 7`.
119
+5-5
nixos/modules/services/torrent/magnetico.nix
···124 Usernames must start with a lowercase ([a-z]) ASCII character, might
125 contain non-consecutive underscores except at the end, and consists of
126 small-case a-z characters and digits 0-9. The
127- <command>htpasswd</command> tool from the <package>apacheHttpd
128- </package> package may be used to generate the hash: <command>htpasswd
129- -bnBC 12 username password</command>
130131 <warning>
132 <para>
···150 start with a lowecase ([a-z]) ASCII character, might contain
151 non-consecutive underscores except at the end, and consists of
152 small-case a-z characters and digits 0-9.
153- The <command>htpasswd</command> tool from the <package>apacheHttpd
154- </package> package may be used to generate the hash:
155 <command>htpasswd -bnBC 12 username password</command>
156 '';
157 };
···124 Usernames must start with a lowercase ([a-z]) ASCII character, might
125 contain non-consecutive underscores except at the end, and consists of
126 small-case a-z characters and digits 0-9. The
127+ <command>htpasswd</command> tool from the <literal>apacheHttpd</literal>
128+ package may be used to generate the hash:
129+ <command>htpasswd -bnBC 12 username password</command>
130131 <warning>
132 <para>
···150 start with a lowecase ([a-z]) ASCII character, might contain
151 non-consecutive underscores except at the end, and consists of
152 small-case a-z characters and digits 0-9.
153+ The <command>htpasswd</command> tool from the <literal>apacheHttpd</literal>
154+ package may be used to generate the hash:
155 <command>htpasswd -bnBC 12 username password</command>
156 '';
157 };
+10-13
nixos/modules/services/web-apps/discourse.nix
···121 max_reqs_per_ip_mode = "warn+block";
122 };
123 '';
124- description = ''
125 Additional settings to put in the
126- <filename>discourse.conf</filename> file.
127128 Look in the
129- <link xlink:href="https://github.com/discourse/discourse/blob/master/config/discourse_defaults.conf">discourse_defaults.conf</link>
130 file in the upstream distribution to find available options.
131132- Setting an option to <literal>null</literal> means
133- <quote>define variable, but leave right-hand side
134- empty</quote>.
135 '';
136 };
137···241 host = lib.mkOption {
242 type = with lib.types; nullOr str;
243 default = null;
244- description = ''
245- Discourse database hostname. <literal>null</literal> means <quote>prefer
246- local unix socket connection</quote>.
247 '';
248 };
249···494 discourse-github
495 ];
496 '';
497- description = ''
498- Plugins to install as part of
499- <productname>Discourse</productname>, expressed as a list of
500- derivations.
501 '';
502 };
503
···121 max_reqs_per_ip_mode = "warn+block";
122 };
123 '';
124+ description = lib.mdDoc ''
125 Additional settings to put in the
126+ {file}`discourse.conf` file.
127128 Look in the
129+ [discourse_defaults.conf](https://github.com/discourse/discourse/blob/master/config/discourse_defaults.conf)
130 file in the upstream distribution to find available options.
131132+ Setting an option to `null` means
133+ “define variable, but leave right-hand side empty”.
0134 '';
135 };
136···240 host = lib.mkOption {
241 type = with lib.types; nullOr str;
242 default = null;
243+ description = lib.mdDoc ''
244+ Discourse database hostname. `null` means
245+ “prefer local unix socket connection”.
246 '';
247 };
248···493 discourse-github
494 ];
495 '';
496+ description = lib.mdDoc ''
497+ Plugins to install as part of Discourse, expressed as a list of derivations.
00498 '';
499 };
500
+9-9
nixos/modules/services/web-apps/hedgedoc.nix
···189 allowAnonymousEdits = mkOption {
190 type = types.bool;
191 default = false;
192- description = ''
193- Whether to allow guests to edit existing notes with the `freely' permission,
194- when <option>allowAnonymous</option> is enabled.
195 '';
196 };
197 allowFreeURL = mkOption {
···937 id = mkOption {
938 type = types.str;
939 default = "";
940- description = ''
941 Attribute map for `id'.
942 Defaults to `NameID' of SAML response.
943 '';
···945 username = mkOption {
946 type = types.str;
947 default = "";
948- description = ''
949 Attribute map for `username'.
950 Defaults to `NameID' of SAML response.
951 '';
···953 email = mkOption {
954 type = types.str;
955 default = "";
956- description = ''
957- Attribute map for `email'.
958- Defaults to `NameID' of SAML response if
959- <option>identifierFormat</option> has
960 the default value.
961 '';
962 };
···189 allowAnonymousEdits = mkOption {
190 type = types.bool;
191 default = false;
192+ description = lib.mdDoc ''
193+ Whether to allow guests to edit existing notes with the `freely` permission,
194+ when {option}`allowAnonymous` is enabled.
195 '';
196 };
197 allowFreeURL = mkOption {
···937 id = mkOption {
938 type = types.str;
939 default = "";
940+ description = lib.mdDoc ''
941 Attribute map for `id'.
942 Defaults to `NameID' of SAML response.
943 '';
···945 username = mkOption {
946 type = types.str;
947 default = "";
948+ description = lib.mdDoc ''
949 Attribute map for `username'.
950 Defaults to `NameID' of SAML response.
951 '';
···953 email = mkOption {
954 type = types.str;
955 default = "";
956+ description = lib.mdDoc ''
957+ Attribute map for `email`.
958+ Defaults to `NameID` of SAML response if
959+ {option}`identifierFormat` has
960 the default value.
961 '';
962 };
+3-3
nixos/modules/services/web-apps/invidious.nix
···246 nginx.enable = lib.mkOption {
247 type = types.bool;
248 default = false;
249- description = ''
250 Whether to configure nginx as a reverse proxy for Invidious.
251252- It serves it under the domain specified in <option>services.invidious.settings.domain</option> with enabled TLS and ACME.
253- Further configuration can be done through <option>services.nginx.virtualHosts.''${config.services.invidious.settings.domain}.*</option>,
254 which can also be used to disable AMCE and TLS.
255 '';
256 };
···246 nginx.enable = lib.mkOption {
247 type = types.bool;
248 default = false;
249+ description = lib.mdDoc ''
250 Whether to configure nginx as a reverse proxy for Invidious.
251252+ It serves it under the domain specified in {option}`services.invidious.settings.domain` with enabled TLS and ACME.
253+ Further configuration can be done through {option}`services.nginx.virtualHosts.''${config.services.invidious.settings.domain}.*`,
254 which can also be used to disable AMCE and TLS.
255 '';
256 };
+3-3
nixos/modules/services/web-apps/isso.nix
···20 '';
2122 settings = mkOption {
23- description = ''
24- Configuration for <package>isso</package>.
2526- See <link xlink:href="https://posativ.org/isso/docs/configuration/server/">Isso Server Configuration</link>
27 for supported values.
28 '';
29
···20 '';
2122 settings = mkOption {
23+ description = lib.mdDoc ''
24+ Configuration for `isso`.
2526+ See [Isso Server Configuration](https://posativ.org/isso/docs/configuration/server/)
27 for supported values.
28 '';
29
+6-6
nixos/modules/services/web-apps/mastodon.nix
···130 };
131132 user = lib.mkOption {
133- description = ''
134 User under which mastodon runs. If it is set to "mastodon",
135 that user will be created, otherwise it should be set to the
136 name of a user created elsewhere. In both cases,
137- <package>mastodon</package> and a package containing only
138- the shell script <literal>mastodon-env</literal> will be added to
139 the user's package set. To run a command from
140- <package>mastodon</package> such as <literal>tootctl</literal>
141 with the environment configured by this module use
142- <literal>mastodon-env</literal>, as in:
143144- <literal>mastodon-env tootctl accounts create newuser --email newuser@example.com</literal>
145 '';
146 type = lib.types.str;
147 default = "mastodon";
···130 };
131132 user = lib.mkOption {
133+ description = lib.mdDoc ''
134 User under which mastodon runs. If it is set to "mastodon",
135 that user will be created, otherwise it should be set to the
136 name of a user created elsewhere. In both cases,
137+ `mastodon` and a package containing only
138+ the shell script `mastodon-env` will be added to
139 the user's package set. To run a command from
140+ `mastodon` such as `tootctl`
141 with the environment configured by this module use
142+ `mastodon-env`, as in:
143144+ `mastodon-env tootctl accounts create newuser --email newuser@example.com`
145 '';
146 type = lib.types.str;
147 default = "mastodon";
+1-1
nixos/modules/services/web-apps/matomo.nix
···57 Name of the web server user that forwards requests to <option>services.phpfpm.pools.<name>.socket</option> the fastcgi socket for Matomo if the nginx
58 option is not used. Either this option or the nginx option is mandatory.
59 If you want to use another webserver than nginx, you need to set this to that server's user
60- and pass fastcgi requests to `index.php`, `matomo.php` and `piwik.php` (legacy name) to this socket.
61 '';
62 };
63
···57 Name of the web server user that forwards requests to <option>services.phpfpm.pools.<name>.socket</option> the fastcgi socket for Matomo if the nginx
58 option is not used. Either this option or the nginx option is mandatory.
59 If you want to use another webserver than nginx, you need to set this to that server's user
60+ and pass fastcgi requests to <literal>index.php</literal>, <literal>matomo.php</literal> and <literal>piwik.php</literal> (legacy name) to this socket.
61 '';
62 };
63
+1-1
nixos/modules/services/web-apps/moodle.nix
···138 createLocally = mkOption {
139 type = types.bool;
140 default = true;
141- description = "Create the database and database user locally.";
142 };
143 };
144
···138 createLocally = mkOption {
139 type = types.bool;
140 default = true;
141+ description = lib.mdDoc "Create the database and database user locally.";
142 };
143 };
144
+4-4
nixos/modules/services/web-apps/nextcloud.nix
···532 here because it has the side-effect that personal information is even accessible to
533 unauthenticated users by default.
534535- By default, the following properties are set to <quote>Show to everyone</quote>
536 if this flag is enabled:
537 <itemizedlist>
538 <listitem><para>About</para></listitem>
···569 secretFile = mkOption {
570 type = types.nullOr types.str;
571 default = null;
572- description = ''
573 Secret options which will be appended to nextcloud's config.php file (written as JSON, in the same
574- form as the <xref linkend="opt-services.nextcloud.extraOptions"/> option), for example
575- <programlisting>{"redis":{"password":"secret"}}</programlisting>.
576 '';
577 };
578
···532 here because it has the side-effect that personal information is even accessible to
533 unauthenticated users by default.
534535+ By default, the following properties are set to “Show to everyone”
536 if this flag is enabled:
537 <itemizedlist>
538 <listitem><para>About</para></listitem>
···569 secretFile = mkOption {
570 type = types.nullOr types.str;
571 default = null;
572+ description = lib.mdDoc ''
573 Secret options which will be appended to nextcloud's config.php file (written as JSON, in the same
574+ form as the [](#opt-services.nextcloud.extraOptions) option), for example
575+ `{"redis":{"password":"secret"}}`.
576 '';
577 };
578
+1-1
nixos/modules/services/web-apps/nexus.nix
···93 '''
94 '';
9596- description = ''
97 Options for the JVM written to `nexus.jvmopts`.
98 Please refer to the docs (https://help.sonatype.com/repomanager3/installation/configuring-the-runtime-environment)
99 for further information.
···93 '''
94 '';
9596+ description = lib.mdDoc ''
97 Options for the JVM written to `nexus.jvmopts`.
98 Please refer to the docs (https://help.sonatype.com/repomanager3/installation/configuring-the-runtime-environment)
99 for further information.
···24 default = pkgs.pgpkeyserver-lite;
25 defaultText = literalExpression "pkgs.pgpkeyserver-lite";
26 type = types.package;
27- description = "
28 Which webgui derivation to use.
29- ";
30 };
3132 hostname = mkOption {
33 type = types.str;
34- description = "
35 Which hostname to set the vHost to that is proxying to sks.
36- ";
37 };
3839 hkpAddress = mkOption {
40 default = builtins.head sksCfg.hkpAddress;
41 defaultText = literalExpression "head config.${sksOpt.hkpAddress}";
42 type = types.str;
43- description = "
44 Wich ip address the sks-keyserver is listening on.
45- ";
46 };
4748 hkpPort = mkOption {
49 default = sksCfg.hkpPort;
50 defaultText = literalExpression "config.${sksOpt.hkpPort}";
51 type = types.int;
52- description = "
53 Which port the sks-keyserver is listening on.
54- ";
55 };
56 };
57 };
···24 default = pkgs.pgpkeyserver-lite;
25 defaultText = literalExpression "pkgs.pgpkeyserver-lite";
26 type = types.package;
27+ description = lib.mdDoc ''
28 Which webgui derivation to use.
29+ '';
30 };
3132 hostname = mkOption {
33 type = types.str;
34+ description = lib.mdDoc ''
35 Which hostname to set the vHost to that is proxying to sks.
36+ '';
37 };
3839 hkpAddress = mkOption {
40 default = builtins.head sksCfg.hkpAddress;
41 defaultText = literalExpression "head config.${sksOpt.hkpAddress}";
42 type = types.str;
43+ description = lib.mdDoc ''
44 Wich ip address the sks-keyserver is listening on.
45+ '';
46 };
4748 hkpPort = mkOption {
49 default = sksCfg.hkpPort;
50 defaultText = literalExpression "config.${sksOpt.hkpPort}";
51 type = types.int;
52+ description = lib.mdDoc ''
53 Which port the sks-keyserver is listening on.
54+ '';
55 };
56 };
57 };
+4-4
nixos/modules/services/web-apps/plausible.nix
···49 url = mkOption {
50 default = "http://localhost:8123/default";
51 type = types.str;
52- description = ''
53- The URL to be used to connect to <package>clickhouse</package>.
54 '';
55 };
56 };
···66 socket = mkOption {
67 default = "/run/postgresql";
68 type = types.str;
69- description = ''
70- Path to the UNIX domain-socket to communicate with <package>postgres</package>.
71 '';
72 };
73 };
···49 url = mkOption {
50 default = "http://localhost:8123/default";
51 type = types.str;
52+ description = lib.mdDoc ''
53+ The URL to be used to connect to `clickhouse`.
54 '';
55 };
56 };
···66 socket = mkOption {
67 default = "/run/postgresql";
68 type = types.str;
69+ description = lib.mdDoc ''
70+ Path to the UNIX domain-socket to communicate with `postgres`.
71 '';
72 };
73 };
+2-2
nixos/modules/services/web-apps/rss-bridge.nix
···66 "Twitter"
67 ]
68 '';
69- description = ''
70 List of bridges to be whitelisted.
71 If the list is empty, rss-bridge will use whitelist.default.txt.
72- Use <literal>[ "*" ]</literal> to whitelist all.
73 '';
74 };
75 };
···66 "Twitter"
67 ]
68 '';
69+ description = lib.mdDoc ''
70 List of bridges to be whitelisted.
71 If the list is empty, rss-bridge will use whitelist.default.txt.
72+ Use `[ "*" ]` to whitelist all.
73 '';
74 };
75 };
+4-4
nixos/modules/services/web-apps/wiki-js.nix
···54 type = mkOption {
55 default = "postgres";
56 type = types.enum [ "postgres" "mysql" "mariadb" "mssql" ];
57- description = ''
58- Database driver to use for persistence. Please note that <literal>sqlite</literal>
59 is currently not supported as the build process for it is currently not implemented
60- in <package>pkgs.wiki-js</package> and it's not recommended by upstream for
61 production use.
62 '';
63 };
···94 };
95 };
96 description = ''
97- Settings to configure <package>wiki-js</package>. This directly
98 corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream configuration options</link>.
99100 Secrets can be injected via the environment by
···54 type = mkOption {
55 default = "postgres";
56 type = types.enum [ "postgres" "mysql" "mariadb" "mssql" ];
57+ description = lib.mdDoc ''
58+ Database driver to use for persistence. Please note that `sqlite`
59 is currently not supported as the build process for it is currently not implemented
60+ in `pkgs.wiki-js` and it's not recommended by upstream for
61 production use.
62 '';
63 };
···94 };
95 };
96 description = ''
97+ Settings to configure <literal>wiki-js</literal>. This directly
98 corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream configuration options</link>.
99100 Secrets can be injected via the environment by
···43 priority = mkOption {
44 type = types.int;
45 default = 1000;
46- description = ''
47 Order of this location block in relation to the others in the vhost.
48 The semantics are the same as with `lib.mkOrder`. Smaller values have
49 a greater priority.
···43 priority = mkOption {
44 type = types.int;
45 default = 1000;
46+ description = lib.mdDoc ''
47 Order of this location block in relation to the others in the vhost.
48 The semantics are the same as with `lib.mkOrder`. Smaller values have
49 a greater priority.
+1-1
nixos/modules/services/web-servers/darkhttpd.nix
···29 address = mkOption {
30 default = "127.0.0.1";
31 type = str;
32- description = ''
33 Address to listen on.
34 Pass `all` to listen on all interfaces.
35 '';
···29 address = mkOption {
30 default = "127.0.0.1";
31 type = str;
32+ description = lib.mdDoc ''
33 Address to listen on.
34 Pass `all` to listen on all interfaces.
35 '';
···122 priority = mkOption {
123 type = types.int;
124 default = 1000;
125- description = ''
126 Order of this location block in relation to the others in the vhost.
127 The semantics are the same as with `lib.mkOrder`. Smaller values have
128 a greater priority.
···122 priority = mkOption {
123 type = types.int;
124 default = 1000;
125+ description = lib.mdDoc ''
126 Order of this location block in relation to the others in the vhost.
127 The semantics are the same as with `lib.mkOrder`. Smaller values have
128 a greater priority.
···197 http3 = mkOption {
198 type = types.bool;
199 default = false;
200- description = ''
201 Whether to enable HTTP 3.
202- This requires using <literal>pkgs.nginxQuic</literal> package
203- which can be achieved by setting <literal>services.nginx.package = pkgs.nginxQuic;</literal>.
204 Note that HTTP 3 support is experimental and
205 *not* yet recommended for production.
206 Read more at https://quic.nginx.org/
···197 http3 = mkOption {
198 type = types.bool;
199 default = false;
200+ description = lib.mdDoc ''
201 Whether to enable HTTP 3.
202+ This requires using `pkgs.nginxQuic` package
203+ which can be achieved by setting `services.nginx.package = pkgs.nginxQuic;`.
204 Note that HTTP 3 support is experimental and
205 *not* yet recommended for production.
206 Read more at https://quic.nginx.org/
+4-4
nixos/modules/services/web-servers/tomcat.nix
···34 purifyOnStart = mkOption {
35 type = types.bool;
36 default = false;
37- description = ''
38 On startup, the `baseDir` directory is populated with various files,
39 subdirectories and symlinks. If this option is enabled, these items
40 (except for the `logs` and `work` subdirectories) are first removed.
···46 baseDir = mkOption {
47 type = lib.types.path;
48 default = "/var/tomcat";
49- description = ''
50 Location where Tomcat stores configuration files, web applications
51 and logfiles. Note that it is partially cleared on each service startup
52 if `purifyOnStart` is enabled.
···112 serverXml = mkOption {
113 type = types.lines;
114 default = "";
115- description = "
116 Verbatim server.xml configuration.
117 This is mutually exclusive with the virtualHosts options.
118- ";
119 };
120121 commonLibs = mkOption {
···34 purifyOnStart = mkOption {
35 type = types.bool;
36 default = false;
37+ description = lib.mdDoc ''
38 On startup, the `baseDir` directory is populated with various files,
39 subdirectories and symlinks. If this option is enabled, these items
40 (except for the `logs` and `work` subdirectories) are first removed.
···46 baseDir = mkOption {
47 type = lib.types.path;
48 default = "/var/tomcat";
49+ description = lib.mdDoc ''
50 Location where Tomcat stores configuration files, web applications
51 and logfiles. Note that it is partially cleared on each service startup
52 if `purifyOnStart` is enabled.
···112 serverXml = mkOption {
113 type = types.lines;
114 default = "";
115+ description = lib.mdDoc ''
116 Verbatim server.xml configuration.
117 This is mutually exclusive with the virtualHosts options.
118+ '';
119 };
120121 commonLibs = mkOption {
···8 services.xserver.desktopManager.runXdgAutostartIfNone = mkOption {
9 type = types.bool;
10 default = false;
11- description = ''
12 Whether to run XDG autostart files for sessions without a desktop manager
13 (with only a window manager), these sessions usually don't handle XDG
14 autostart files by default.
1516- Some services like <option>i18n.inputMethod</option> and
17- <option>service.earlyoom</option> use XDG autostart files to start.
18- If this option is not set to <literal>true</literal> and you are using
19 a window manager without a desktop manager, you need to manually start
20- them or running <package>dex</package> somewhere.
21 '';
22 };
23 };
···8 services.xserver.desktopManager.runXdgAutostartIfNone = mkOption {
9 type = types.bool;
10 default = false;
11+ description = lib.mdDoc ''
12 Whether to run XDG autostart files for sessions without a desktop manager
13 (with only a window manager), these sessions usually don't handle XDG
14 autostart files by default.
1516+ Some services like {option}`i18n.inputMethod` and
17+ {option}`service.earlyoom` use XDG autostart files to start.
18+ If this option is not set to `true` and you are using
19 a window manager without a desktop manager, you need to manually start
20+ them or running `dex` somewhere.
21 '';
22 };
23 };
···92 Whether this activation script supports being dry-activated.
93 These activation scripts will also be executed on dry-activate
94 activations with the environment variable
95- <literal>NIXOS_ACTION</literal> being set to <literal>dry-activate
96- </literal>. it's important that these activation scripts don't
97 modify anything about the system when the variable is set.
98 '';
99 };
···92 Whether this activation script supports being dry-activated.
93 These activation scripts will also be executed on dry-activate
94 activations with the environment variable
95+ <literal>NIXOS_ACTION</literal> being set to <literal>dry-activate</literal>.
96+ it's important that these activation scripts don't
97 modify anything about the system when the variable is set.
98 '';
99 };
+1-1
nixos/modules/system/boot/kernel_config.nix
···91 USB? y
92 DEBUG n
93 '';
94- description = ''
95 The result of converting the structured kernel configuration in settings
96 to an intermediate string that can be parsed by generate-config.pl to
97 answer the kernel `make defconfig`.
···91 USB? y
92 DEBUG n
93 '';
94+ description = lib.mdDoc ''
95 The result of converting the structured kernel configuration in settings
96 to an intermediate string that can be parsed by generate-config.pl to
97 answer the kernel `make defconfig`.
+3-3
nixos/modules/system/boot/luksroot.nix
···532 boot.initrd.luks.reusePassphrases = mkOption {
533 type = types.bool;
534 default = true;
535- description = ''
536 When opening a new LUKS device try reusing last successful
537 passphrase.
538539 Useful for mounting a number of devices that use the same
540 passphrase without retyping it several times.
541542- Such setup can be useful if you use <command>cryptsetup
543- luksSuspend</command>. Different LUKS devices will still have
544 different master keys even when using the same passphrase.
545 '';
546 };
···532 boot.initrd.luks.reusePassphrases = mkOption {
533 type = types.bool;
534 default = true;
535+ description = lib.mdDoc ''
536 When opening a new LUKS device try reusing last successful
537 passphrase.
538539 Useful for mounting a number of devices that use the same
540 passphrase without retyping it several times.
541542+ Such setup can be useful if you use {command}`cryptsetup luksSuspend`.
543+ Different LUKS devices will still have
544 different master keys even when using the same passphrase.
545 '';
546 };
+3-3
nixos/modules/tasks/auto-upgrade.nix
···46 type = types.nullOr types.str;
47 default = null;
48 example = "https://nixos.org/channels/nixos-14.12-small";
49- description = ''
50 The URI of the NixOS channel to use for automatic
51 upgrades. By default, this is the channel set using
52- <command>nix-channel</command> (run <literal>nix-channel
53- --list</literal> to see the current value).
54 '';
55 };
56
···46 type = types.nullOr types.str;
47 default = null;
48 example = "https://nixos.org/channels/nixos-14.12-small";
49+ description = lib.mdDoc ''
50 The URI of the NixOS channel to use for automatic
51 upgrades. By default, this is the channel set using
52+ {command}`nix-channel` (run `nix-channel --list`
53+ to see the current value).
54 '';
55 };
56
+11-12
nixos/modules/tasks/filesystems.nix
···175 }
176 '';
177 type = types.attrsOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
178- description = ''
179 The file systems to be mounted. It must include an entry for
180- the root directory (<literal>mountPoint = "/"</literal>). Each
181 entry in the list is an attribute set with the following fields:
182- <literal>mountPoint</literal>, <literal>device</literal>,
183- <literal>fsType</literal> (a file system type recognised by
184- <command>mount</command>; defaults to
185- <literal>"auto"</literal>), and <literal>options</literal>
186- (the mount options passed to <command>mount</command> using the
187- <option>-o</option> flag; defaults to <literal>[ "defaults" ]</literal>).
188189- Instead of specifying <literal>device</literal>, you can also
190- specify a volume label (<literal>label</literal>) for file
191- systems that support it, such as ext2/ext3 (see <command>mke2fs
192- -L</command>).
193 '';
194 };
195
···175 }
176 '';
177 type = types.attrsOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
178+ description = lib.mdDoc ''
179 The file systems to be mounted. It must include an entry for
180+ the root directory (`mountPoint = "/"`). Each
181 entry in the list is an attribute set with the following fields:
182+ `mountPoint`, `device`,
183+ `fsType` (a file system type recognised by
184+ {command}`mount`; defaults to
185+ `"auto"`), and `options`
186+ (the mount options passed to {command}`mount` using the
187+ {option}`-o` flag; defaults to `[ "defaults" ]`).
188189+ Instead of specifying `device`, you can also
190+ specify a volume label (`label`) for file
191+ systems that support it, such as ext2/ext3 (see {command}`mke2fs -L`).
0192 '';
193 };
194
+1-1
nixos/modules/tasks/filesystems/zfs.nix
···426 type = types.either (types.enum [ "disabled" "all" ]) (types.listOf types.str);
427 default = "disabled";
428 example = [ "tank" "dozer" ];
429- description = ''
430 After importing, expand each device in the specified pools.
431432 Set the value to the plain string "all" to expand all pools on boot:
···426 type = types.either (types.enum [ "disabled" "all" ]) (types.listOf types.str);
427 default = "disabled";
428 example = [ "tank" "dozer" ];
429+ description = lib.mdDoc ''
430 After importing, expand each device in the specified pools.
431432 Set the value to the plain string "all" to expand all pools on boot:
+4-4
nixos/modules/tasks/network-interfaces.nix
···785 default = null;
786 example = "fast";
787 type = types.nullOr types.str;
788- description = ''
789 DEPRECATED, use `driverOptions`.
790 Option specifying the rate in which we'll ask our link partner
791 to transmit LACPDU packets in 802.3ad mode.
···796 default = null;
797 example = 100;
798 type = types.nullOr types.int;
799- description = ''
800 DEPRECATED, use `driverOptions`.
801 Miimon is the number of millisecond in between each round of polling
802 by the device driver for failed links. By default polling is not
···809 default = null;
810 example = "active-backup";
811 type = types.nullOr types.str;
812- description = ''
813 DEPRECATED, use `driverOptions`.
814 The mode which the bond will be running. The default mode for
815 the bonding driver is balance-rr, optimizing for throughput.
···822 default = null;
823 example = "layer2+3";
824 type = types.nullOr types.str;
825- description = ''
826 DEPRECATED, use `driverOptions`.
827 Selects the transmit hash policy to use for slave selection in
828 balance-xor, 802.3ad, and tlb modes.
···785 default = null;
786 example = "fast";
787 type = types.nullOr types.str;
788+ description = lib.mdDoc ''
789 DEPRECATED, use `driverOptions`.
790 Option specifying the rate in which we'll ask our link partner
791 to transmit LACPDU packets in 802.3ad mode.
···796 default = null;
797 example = 100;
798 type = types.nullOr types.int;
799+ description = lib.mdDoc ''
800 DEPRECATED, use `driverOptions`.
801 Miimon is the number of millisecond in between each round of polling
802 by the device driver for failed links. By default polling is not
···809 default = null;
810 example = "active-backup";
811 type = types.nullOr types.str;
812+ description = lib.mdDoc ''
813 DEPRECATED, use `driverOptions`.
814 The mode which the bond will be running. The default mode for
815 the bonding driver is balance-rr, optimizing for throughput.
···822 default = null;
823 example = "layer2+3";
824 type = types.nullOr types.str;
825+ description = lib.mdDoc ''
826 DEPRECATED, use `driverOptions`.
827 Selects the transmit hash policy to use for slave selection in
828 balance-xor, 802.3ad, and tlb modes.
+1-1
nixos/modules/virtualisation/amazon-options.nix
···14 };
1516 datasets = lib.mkOption {
17- description = ''
18 Datasets to create under the `tank` and `boot` zpools.
1920 **NOTE:** This option is used only at image creation time, and
···14 };
1516 datasets = lib.mkOption {
17+ description = lib.mdDoc ''
18 Datasets to create under the `tank` and `boot` zpools.
1920 **NOTE:** This option is used only at image creation time, and
+1-1
nixos/modules/virtualisation/azure-image.nix
···12 type = with types; either (enum [ "auto" ]) int;
13 default = "auto";
14 example = 2048;
15- description = ''
16 Size of disk image. Unit is MB.
17 '';
18 };
···12 type = with types; either (enum [ "auto" ]) int;
13 default = "auto";
14 example = 2048;
15+ description = lib.mdDoc ''
16 Size of disk image. Unit is MB.
17 '';
18 };
···21 type = with types; either (enum [ "auto" ]) int;
22 default = "auto";
23 example = 1536;
24- description = ''
25 Size of disk image. Unit is MB.
26 '';
27 };
···29 virtualisation.googleComputeImage.configFile = mkOption {
30 type = with types; nullOr str;
31 default = null;
32- description = ''
33 A path to a configuration file which will be placed at `/etc/nixos/configuration.nix`
34 and be used when switching to a new configuration.
35 If set to `null`, a default configuration is used, where the only import is
···40 virtualisation.googleComputeImage.compressionLevel = mkOption {
41 type = types.int;
42 default = 6;
43- description = ''
44 GZIP compression level of the resulting disk image (1-9).
45 '';
46 };
···21 type = with types; either (enum [ "auto" ]) int;
22 default = "auto";
23 example = 1536;
24+ description = lib.mdDoc ''
25 Size of disk image. Unit is MB.
26 '';
27 };
···29 virtualisation.googleComputeImage.configFile = mkOption {
30 type = with types; nullOr str;
31 default = null;
32+ description = lib.mdDoc ''
33 A path to a configuration file which will be placed at `/etc/nixos/configuration.nix`
34 and be used when switching to a new configuration.
35 If set to `null`, a default configuration is used, where the only import is
···40 virtualisation.googleComputeImage.compressionLevel = mkOption {
41 type = types.int;
42 default = 6;
43+ description = lib.mdDoc ''
44 GZIP compression level of the resulting disk image (1-9).
45 '';
46 };
+3-3
nixos/modules/virtualisation/hyperv-image.nix
···12 type = with types; either (enum [ "auto" ]) int;
13 default = "auto";
14 example = 2048;
15- description = ''
16 The size of the hyper-v base image in MiB.
17 '';
18 };
19 vmDerivationName = mkOption {
20 type = types.str;
21 default = "nixos-hyperv-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
22- description = ''
23 The name of the derivation for the hyper-v appliance.
24 '';
25 };
26 vmFileName = mkOption {
27 type = types.str;
28 default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vhdx";
29- description = ''
30 The file name of the hyper-v appliance.
31 '';
32 };
···12 type = with types; either (enum [ "auto" ]) int;
13 default = "auto";
14 example = 2048;
15+ description = lib.mdDoc ''
16 The size of the hyper-v base image in MiB.
17 '';
18 };
19 vmDerivationName = mkOption {
20 type = types.str;
21 default = "nixos-hyperv-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
22+ description = lib.mdDoc ''
23 The name of the derivation for the hyper-v appliance.
24 '';
25 };
26 vmFileName = mkOption {
27 type = types.str;
28 default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vhdx";
29+ description = lib.mdDoc ''
30 The file name of the hyper-v appliance.
31 '';
32 };
+4-4
nixos/modules/virtualisation/kvmgt.nix
···10 vgpuOptions = {
11 uuid = mkOption {
12 type = with types; listOf str;
13- description = "UUID(s) of VGPU device. You can generate one with <package>libossp_uuid</package>.";
14 };
15 };
16···31 vgpus = mkOption {
32 default = {};
33 type = with types; attrsOf (submodule [ { options = vgpuOptions; } ]);
34- description = ''
35- Virtual GPUs to be used in Qemu. You can find devices via <command>ls /sys/bus/pci/devices/*/mdev_supported_types</command>
36- and find info about device via <command>cat /sys/bus/pci/devices/*/mdev_supported_types/i915-GVTg_V5_4/description</command>
37 '';
38 example = {
39 i915-GVTg_V5_8.uuid = [ "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" ];
···10 vgpuOptions = {
11 uuid = mkOption {
12 type = with types; listOf str;
13+ description = lib.mdDoc "UUID(s) of VGPU device. You can generate one with `libossp_uuid`.";
14 };
15 };
16···31 vgpus = mkOption {
32 default = {};
33 type = with types; attrsOf (submodule [ { options = vgpuOptions; } ]);
34+ description = lib.mdDoc ''
35+ Virtual GPUs to be used in Qemu. You can find devices via {command}`ls /sys/bus/pci/devices/*/mdev_supported_types`
36+ and find info about device via {command}`cat /sys/bus/pci/devices/*/mdev_supported_types/i915-GVTg_V5_4/description`
37 '';
38 example = {
39 i915-GVTg_V5_8.uuid = [ "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" ];
+1-1
nixos/modules/virtualisation/libvirtd.nix
···81 type = types.package;
82 default = pkgs.qemu;
83 defaultText = literalExpression "pkgs.qemu";
84- description = ''
85 Qemu package to use with libvirt.
86 `pkgs.qemu` can emulate alien architectures (e.g. aarch64 on x86)
87 `pkgs.qemu_kvm` saves disk space allowing to emulate only host architectures.
···81 type = types.package;
82 default = pkgs.qemu;
83 defaultText = literalExpression "pkgs.qemu";
84+ description = lib.mdDoc ''
85 Qemu package to use with libvirt.
86 `pkgs.qemu` can emulate alien architectures (e.g. aarch64 on x86)
87 `pkgs.qemu_kvm` saves disk space allowing to emulate only host architectures.
+2-3
nixos/modules/virtualisation/lxc.nix
···53 type = types.lines;
54 default = "";
55 description =
56- ''
57 This is the config file for managing unprivileged user network
58- administration access in LXC. See <citerefentry><refentrytitle>lxc-usernet</refentrytitle><manvolnum>5</manvolnum>
59- </citerefentry>.
60 '';
61 };
62 };
···53 type = types.lines;
54 default = "";
55 description =
56+ lib.mdDoc ''
57 This is the config file for managing unprivileged user network
58+ administration access in LXC. See {manpage}`lxc-usernet(5)`.
059 '';
60 };
61 };
+5-5
nixos/modules/virtualisation/nixos-containers.nix
···536 type = types.path;
537 default = pkgs.path;
538 defaultText = literalExpression "pkgs.path";
539- description = ''
540 A path to the nixpkgs that provide the modules, pkgs and lib for evaluating the container.
541542- To only change the <literal>pkgs</literal> argument used inside the container modules,
543- set the <literal>nixpkgs.*</literal> options in the container <option>config</option>.
544- Setting <literal>config.nixpkgs.pkgs = pkgs</literal> speeds up the container evaluation
545- by reusing the system pkgs, but the <literal>nixpkgs.config</literal> option in the
546 container config is ignored in this case.
547 '';
548 };
···536 type = types.path;
537 default = pkgs.path;
538 defaultText = literalExpression "pkgs.path";
539+ description = lib.mdDoc ''
540 A path to the nixpkgs that provide the modules, pkgs and lib for evaluating the container.
541542+ To only change the `pkgs` argument used inside the container modules,
543+ set the `nixpkgs.*` options in the container {option}`config`.
544+ Setting `config.nixpkgs.pkgs = pkgs` speeds up the container evaluation
545+ by reusing the system pkgs, but the `nixpkgs.config` option in the
546 container config is ignored in this case.
547 '';
548 };
···15 };
1617 datasets = lib.mkOption {
18- description = ''
19 Datasets to create under the `tank` and `boot` zpools.
2021 **NOTE:** This option is used only at image creation time, and
···15 };
1617 datasets = lib.mkOption {
18+ description = lib.mdDoc ''
19 Datasets to create under the `tank` and `boot` zpools.
2021 **NOTE:** This option is used only at image creation time, and
+1-1
nixos/modules/virtualisation/parallels-guest.nix
···23 autoMountShares = mkOption {
24 type = types.bool;
25 default = true;
26- description = ''
27 Control prlfsmountd service. When this service is running, shares can not be manually
28 mounted through `mount -t prl_fs ...` as this service will remount and trample any set options.
29 Recommended to enable for simple file sharing, but extended share use such as for code should
···23 autoMountShares = mkOption {
24 type = types.bool;
25 default = true;
26+ description = lib.mdDoc ''
27 Control prlfsmountd service. When this service is running, shares can not be manually
28 mounted through `mount -t prl_fs ...` as this service will remount and trample any set options.
29 Recommended to enable for simple file sharing, but extended share use such as for code should
···17 enable = mkOption {
18 type = types.bool;
19 default = false;
20- description = ''
21 Make the Podman and Docker compatibility API available over the network
22 with TLS client certificate authentication.
2324 This allows Docker clients to connect with the equivalents of the Docker
25- CLI <literal>-H</literal> and <literal>--tls*</literal> family of options.
2627 For certificate setup, see https://docs.docker.com/engine/security/protect-access/
2829- This option is independent of <xref linkend="opt-virtualisation.podman.dockerSocket.enable"/>.
30 '';
31 };
32
···17 enable = mkOption {
18 type = types.bool;
19 default = false;
20+ description = lib.mdDoc ''
21 Make the Podman and Docker compatibility API available over the network
22 with TLS client certificate authentication.
2324 This allows Docker clients to connect with the equivalents of the Docker
25+ CLI `-H` and `--tls*` family of options.
2627 For certificate setup, see https://docs.docker.com/engine/security/protect-access/
2829+ This option is independent of [](#opt-virtualisation.podman.dockerSocket.enable).
30 '';
31 };
32
+13-13
nixos/modules/virtualisation/proxmox-image.nix
···10 type = types.str;
11 default = "";
12 example = "order=scsi0;net0";
13- description = ''
14 Default boot device. PVE will try all devices in its default order if this value is empty.
15 '';
16 };
···18 type = types.str;
19 default = "virtio-scsi-pci";
20 example = "lsi";
21- description = ''
22 SCSI controller type. Must be one of the supported values given in
23- <link xlink:href="https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines"/>
24 '';
25 };
26 virtio0 = mkOption {
27 type = types.str;
28 default = "local-lvm:vm-9999-disk-0";
29 example = "ceph:vm-123-disk-0";
30- description = ''
31 Configuration for the default virtio disk. It can be used as a cue for PVE to autodetect the target sotrage.
32 This parameter is required by PVE even if it isn't used.
33 '';
···35 ostype = mkOption {
36 type = types.str;
37 default = "l26";
38- description = ''
39 Guest OS type
40 '';
41 };
42 cores = mkOption {
43 type = types.ints.positive;
44 default = 1;
45- description = ''
46 Guest core count
47 '';
48 };
49 memory = mkOption {
50 type = types.ints.positive;
51 default = 1024;
52- description = ''
53 Guest memory in MB
54 '';
55 };
···58 name = mkOption {
59 type = types.str;
60 default = "nixos-${config.system.nixos.label}";
61- description = ''
62 VM name
63 '';
64 };
65 net0 = mkOption {
66 type = types.commas;
67 default = "virtio=00:00:00:00:00:00,bridge=vmbr0,firewall=1";
68- description = ''
69 Configuration for the default interface. When restoring from VMA, check the
70 "unique" box to ensure device mac is randomized.
71 '';
···74 type = types.str;
75 default = "socket";
76 example = "/dev/ttyS0";
77- description = ''
78 Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0),
79 or create a unix socket on the host side (use qm terminal to open a terminal connection).
80 '';
···83 type = types.bool;
84 apply = x: if x then "1" else "0";
85 default = true;
86- description = ''
87 Expect guest to have qemu agent running
88 '';
89 };
···95 cpu = "host";
96 onboot = 1;
97 }'';
98- description = ''
99 Additional options appended to qemu-server.conf
100 '';
101 };
···103 type = types.str;
104 default = config.proxmox.qemuConf.name;
105 example = "999-nixos_template";
106- description = ''
107 Filename of the image will be vzdump-qemu-''${filenameSuffix}.vma.zstd.
108 This will also determine the default name of the VM on restoring the VMA.
109 Start this value with a number if you want the VMA to be detected as a backup of
···10 type = types.str;
11 default = "";
12 example = "order=scsi0;net0";
13+ description = lib.mdDoc ''
14 Default boot device. PVE will try all devices in its default order if this value is empty.
15 '';
16 };
···18 type = types.str;
19 default = "virtio-scsi-pci";
20 example = "lsi";
21+ description = lib.mdDoc ''
22 SCSI controller type. Must be one of the supported values given in
23+ <https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines>
24 '';
25 };
26 virtio0 = mkOption {
27 type = types.str;
28 default = "local-lvm:vm-9999-disk-0";
29 example = "ceph:vm-123-disk-0";
30+ description = lib.mdDoc ''
31 Configuration for the default virtio disk. It can be used as a cue for PVE to autodetect the target sotrage.
32 This parameter is required by PVE even if it isn't used.
33 '';
···35 ostype = mkOption {
36 type = types.str;
37 default = "l26";
38+ description = lib.mdDoc ''
39 Guest OS type
40 '';
41 };
42 cores = mkOption {
43 type = types.ints.positive;
44 default = 1;
45+ description = lib.mdDoc ''
46 Guest core count
47 '';
48 };
49 memory = mkOption {
50 type = types.ints.positive;
51 default = 1024;
52+ description = lib.mdDoc ''
53 Guest memory in MB
54 '';
55 };
···58 name = mkOption {
59 type = types.str;
60 default = "nixos-${config.system.nixos.label}";
61+ description = lib.mdDoc ''
62 VM name
63 '';
64 };
65 net0 = mkOption {
66 type = types.commas;
67 default = "virtio=00:00:00:00:00:00,bridge=vmbr0,firewall=1";
68+ description = lib.mdDoc ''
69 Configuration for the default interface. When restoring from VMA, check the
70 "unique" box to ensure device mac is randomized.
71 '';
···74 type = types.str;
75 default = "socket";
76 example = "/dev/ttyS0";
77+ description = lib.mdDoc ''
78 Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0),
79 or create a unix socket on the host side (use qm terminal to open a terminal connection).
80 '';
···83 type = types.bool;
84 apply = x: if x then "1" else "0";
85 default = true;
86+ description = lib.mdDoc ''
87 Expect guest to have qemu agent running
88 '';
89 };
···95 cpu = "host";
96 onboot = 1;
97 }'';
98+ description = lib.mdDoc ''
99 Additional options appended to qemu-server.conf
100 '';
101 };
···103 type = types.str;
104 default = config.proxmox.qemuConf.name;
105 example = "999-nixos_template";
106+ description = lib.mdDoc ''
107 Filename of the image will be vzdump-qemu-''${filenameSuffix}.vma.zstd.
108 This will also determine the default name of the VM on restoring the VMA.
109 Start this value with a number if you want the VMA to be detected as a backup of
+4-4
nixos/modules/virtualisation/qemu-vm.nix
···739 type = types.nullOr types.package;
740 default = null;
741 description =
742- ''
743- An alternate BIOS (such as <package>qboot</package>) with which to start the VM.
744- Should contain a file named <literal>bios.bin</literal>.
745- If <literal>null</literal>, QEMU's builtin SeaBIOS will be used.
746 '';
747 };
748
···739 type = types.nullOr types.package;
740 default = null;
741 description =
742+ lib.mdDoc ''
743+ An alternate BIOS (such as `qboot`) with which to start the VM.
744+ Should contain a file named `bios.bin`.
745+ If `null`, QEMU's builtin SeaBIOS will be used.
746 '';
747 };
748
+5-5
nixos/modules/virtualisation/vmware-image.nix
···21 type = with types; either (enum [ "auto" ]) int;
22 default = "auto";
23 example = 2048;
24- description = ''
25 The size of the VMWare base image in MiB.
26 '';
27 };
28 vmDerivationName = mkOption {
29 type = types.str;
30 default = "nixos-vmware-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
31- description = ''
32 The name of the derivation for the VMWare appliance.
33 '';
34 };
35 vmFileName = mkOption {
36 type = types.str;
37 default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vmdk";
38- description = ''
39 The file name of the VMWare appliance.
40 '';
41 };
42 vmSubformat = mkOption {
43 type = types.enum subformats;
44 default = "monolithicSparse";
45- description = "Specifies which VMDK subformat to use.";
46 };
47 vmCompat6 = mkOption {
48 type = types.bool;
49 default = false;
50 example = true;
51- description = "Create a VMDK version 6 image (instead of version 4).";
52 };
53 };
54 };
···21 type = with types; either (enum [ "auto" ]) int;
22 default = "auto";
23 example = 2048;
24+ description = lib.mdDoc ''
25 The size of the VMWare base image in MiB.
26 '';
27 };
28 vmDerivationName = mkOption {
29 type = types.str;
30 default = "nixos-vmware-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
31+ description = lib.mdDoc ''
32 The name of the derivation for the VMWare appliance.
33 '';
34 };
35 vmFileName = mkOption {
36 type = types.str;
37 default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vmdk";
38+ description = lib.mdDoc ''
39 The file name of the VMWare appliance.
40 '';
41 };
42 vmSubformat = mkOption {
43 type = types.enum subformats;
44 default = "monolithicSparse";
45+ description = lib.mdDoc "Specifies which VMDK subformat to use.";
46 };
47 vmCompat6 = mkOption {
48 type = types.bool;
49 default = false;
50 example = true;
51+ description = lib.mdDoc "Create a VMDK version 6 image (instead of version 4).";
52 };
53 };
54 };
···126 # Electron is trying to open udev via dlopen()
127 # and for some reason that doesn't seem to be impacted from the rpath.
128 # Adding udev to LD_LIBRARY_PATH fixes that.
0129 makeWrapper $out/share/1password/1password $out/bin/1password \
130- --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} \
131 --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
132133 runHook postInstall
···126 # Electron is trying to open udev via dlopen()
127 # and for some reason that doesn't seem to be impacted from the rpath.
128 # Adding udev to LD_LIBRARY_PATH fixes that.
129+ # Make xdg-open overrideable at runtime.
130 makeWrapper $out/share/1password/1password $out/bin/1password \
131+ --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \
132 --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
133134 runHook postInstall
+2-1
pkgs/applications/misc/1password-gui/default.nix
···126 # Electron is trying to open udev via dlopen()
127 # and for some reason that doesn't seem to be impacted from the rpath.
128 # Adding udev to LD_LIBRARY_PATH fixes that.
0129 makeWrapper $out/share/1password/1password $out/bin/1password \
130- --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} \
131 --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
132133 runHook postInstall
···126 # Electron is trying to open udev via dlopen()
127 # and for some reason that doesn't seem to be impacted from the rpath.
128 # Adding udev to LD_LIBRARY_PATH fixes that.
129+ # Make xdg-open overrideable at runtime.
130 makeWrapper $out/share/1password/1password $out/bin/1password \
131+ --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \
132 --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
133134 runHook postInstall
+1-1
pkgs/applications/misc/avrdudess/default.nix
···25 export LD_LIBRARY_PATH="${lib.makeLibraryPath [gtk2 mono]}"
26 # We need PATH from user env for xdg-open to find its tools, which
27 # typically depend on the currently running desktop environment.
28- export PATH="${lib.makeBinPath [ avrdude xdg-utils ]}:\$PATH"
2930 # avrdudess must have its resource files in its current working directory
31 cd $out/avrdudess && exec ${mono}/bin/mono "$out/avrdudess/avrdudess.exe" "\$@"
···25 export LD_LIBRARY_PATH="${lib.makeLibraryPath [gtk2 mono]}"
26 # We need PATH from user env for xdg-open to find its tools, which
27 # typically depend on the currently running desktop environment.
28+ export PATH="\$PATH:${lib.makeBinPath [ avrdude xdg-utils ]}"
2930 # avrdudess must have its resource files in its current working directory
31 cd $out/avrdudess && exec ${mono}/bin/mono "$out/avrdudess/avrdudess.exe" "\$@"
···1-{ lib, stdenv, fetchurl, guileSupport ? false, pkg-config, guile }:
00000000000023stdenv.mkDerivation rec {
4 pname = "gnumake";
···19 ./0002-remove-impure-dirs.patch
20 ];
2122- nativeBuildInputs = lib.optionals guileSupport [ pkg-config ];
23- buildInputs = lib.optionals guileSupport [ guile ];
2425- configureFlags = lib.optional guileSupport "--with-guile"
2627 # Make uses this test to decide whether it should keep track of
28 # subseconds. Apple made this possible with APFS and macOS 10.13.
···3536 outputs = [ "out" "man" "info" ];
37 separateDebugInfo = true;
000003839 meta = with lib; {
40 description = "A tool to control the generation of non-source files from sources";
···1+{ lib
2+, stdenv
3+, fetchurl
4+, guileSupport ? false, guile
5+# avoid guile depend on bootstrap to prevent dependency cycles
6+, inBootstrap ? false
7+, pkg-config
8+, gnumake
9+}:
10+11+let
12+ guileEnabled = guileSupport && !inBootstrap;
13+in
1415stdenv.mkDerivation rec {
16 pname = "gnumake";
···31 ./0002-remove-impure-dirs.patch
32 ];
3334+ nativeBuildInputs = lib.optionals guileEnabled [ pkg-config ];
35+ buildInputs = lib.optionals guileEnabled [ guile ];
3637+ configureFlags = lib.optional guileEnabled "--with-guile"
3839 # Make uses this test to decide whether it should keep track of
40 # subseconds. Apple made this possible with APFS and macOS 10.13.
···4748 outputs = [ "out" "man" "info" ];
49 separateDebugInfo = true;
50+51+ passthru.tests = {
52+ # make sure that the override doesn't break bootstrapping
53+ gnumakeWithGuile = gnumake.override { guileSupport = true; };
54+ };
5556 meta = with lib; {
57 description = "A tool to control the generation of non-source files from sources";