···7available to processes through the `/sys` and
8`/proc` filesystems. It also disables the User Namespaces
9feature of the kernel, which stops Nix from being able to build anything
10-(this particular setting can be overriden via
11[](#opt-security.allowUserNamespaces)). See the
12[profile source](https://github.com/nixos/nixpkgs/tree/master/nixos/modules/profiles/hardened.nix)
13for further detail on which settings are altered.
···7available to processes through the `/sys` and
8`/proc` filesystems. It also disables the User Namespaces
9feature of the kernel, which stops Nix from being able to build anything
10+(this particular setting can be overridden via
11[](#opt-security.allowUserNamespaces)). See the
12[profile source](https://github.com/nixos/nixpkgs/tree/master/nixos/modules/profiles/hardened.nix)
13for further detail on which settings are altered.
···3435An activation script can write to special files instructing
36`switch-to-configuration` to restart/reload units. The script will take these
37-requests into account and will incorperate the unit configuration as described
38above. This means that the activation script will "fake" a modified unit file
39and `switch-to-configuration` will act accordingly. By doing so, configuration
40like [systemd.services.\<name\>.restartIfChanged](#opt-systemd.services) is
···49`/run/nixos/dry-activation-reload-list`. Those files can contain
50newline-separated lists of unit names where duplicates are being ignored. These
51files are not create automatically and activation scripts must take the
52-possiblility into account that they have to create them first.
5354## NixOS snippets {#sec-activation-script-nixos-snippets}
55
···3435An activation script can write to special files instructing
36`switch-to-configuration` to restart/reload units. The script will take these
37+requests into account and will incorporate the unit configuration as described
38above. This means that the activation script will "fake" a modified unit file
39and `switch-to-configuration` will act accordingly. By doing so, configuration
40like [systemd.services.\<name\>.restartIfChanged](#opt-systemd.services) is
···49`/run/nixos/dry-activation-reload-list`. Those files can contain
50newline-separated lists of unit names where duplicates are being ignored. These
51files are not create automatically and activation scripts must take the
52+possibility into account that they have to create them first.
5354## NixOS snippets {#sec-activation-script-nixos-snippets}
55
···345It takes a parameter *`o`*, that should be a set, or a function returning
346a set with an `options` key defining the sub-options. Submodule option
347definitions are type-checked accordingly to the `options` declarations.
348-Of course, you can nest submodule option definitons for even higher
349modularity.
350351The option set can be defined directly
···345It takes a parameter *`o`*, that should be a set, or a function returning
346a set with an `options` key defining the sub-options. Submodule option
347definitions are type-checked accordingly to the `options` declarations.
348+Of course, you can nest submodule option definitions for even higher
349modularity.
350351The option set can be defined directly
···298299: Wait until the supplied regular expressions match a line of the
300 serial console output. This method is useful when OCR is not
301- possibile or accurate enough.
302303`wait_for_window`
304···351`start_job` and `stop_job`.
352353For faster dev cycles it\'s also possible to disable the code-linters
354-(this shouldn\'t be commited though):
355356```nix
357{
···298299: Wait until the supplied regular expressions match a line of the
300 serial console output. This method is useful when OCR is not
301+ possible or accurate enough.
302303`wait_for_window`
304···351`start_job` and `stop_job`.
352353For faster dev cycles it\'s also possible to disable the code-linters
354+(this shouldn\'t be committed though):
355356```nix
357{
···9 available to processes through the <literal>/sys</literal> and
10 <literal>/proc</literal> filesystems. It also disables the User
11 Namespaces feature of the kernel, which stops Nix from being able to
12- build anything (this particular setting can be overriden via
13 <xref linkend="opt-security.allowUserNamespaces" />). See the
14 <link xlink:href="https://github.com/nixos/nixpkgs/tree/master/nixos/modules/profiles/hardened.nix">profile
15 source</link> for further detail on which settings are altered.
···9 available to processes through the <literal>/sys</literal> and
10 <literal>/proc</literal> filesystems. It also disables the User
11 Namespaces feature of the kernel, which stops Nix from being able to
12+ build anything (this particular setting can be overridden via
13 <xref linkend="opt-security.allowUserNamespaces" />). See the
14 <link xlink:href="https://github.com/nixos/nixpkgs/tree/master/nixos/modules/profiles/hardened.nix">profile
15 source</link> for further detail on which settings are altered.
···45 An activation script can write to special files instructing
46 <literal>switch-to-configuration</literal> to restart/reload units.
47 The script will take these requests into account and will
48- incorperate the unit configuration as described above. This means
49 that the activation script will <quote>fake</quote> a modified unit
50 file and <literal>switch-to-configuration</literal> will act
51 accordingly. By doing so, configuration like
···66 <literal>/run/nixos/dry-activation-reload-list</literal>. Those
67 files can contain newline-separated lists of unit names where
68 duplicates are being ignored. These files are not create
69- automatically and activation scripts must take the possiblility into
70 account that they have to create them first.
71 </para>
72 <section xml:id="sec-activation-script-nixos-snippets">
···45 An activation script can write to special files instructing
46 <literal>switch-to-configuration</literal> to restart/reload units.
47 The script will take these requests into account and will
48+ incorporate the unit configuration as described above. This means
49 that the activation script will <quote>fake</quote> a modified unit
50 file and <literal>switch-to-configuration</literal> will act
51 accordingly. By doing so, configuration like
···66 <literal>/run/nixos/dry-activation-reload-list</literal>. Those
67 files can contain newline-separated lists of unit names where
68 duplicates are being ignored. These files are not create
69+ automatically and activation scripts must take the possibility into
70 account that they have to create them first.
71 </para>
72 <section xml:id="sec-activation-script-nixos-snippets">
···712 <literal>options</literal> key defining the sub-options. Submodule
713 option definitions are type-checked accordingly to the
714 <literal>options</literal> declarations. Of course, you can nest
715- submodule option definitons for even higher modularity.
716 </para>
717 <para>
718 The option set can be defined directly
···712 <literal>options</literal> key defining the sub-options. Submodule
713 option definitions are type-checked accordingly to the
714 <literal>options</literal> declarations. Of course, you can nest
715+ submodule option definitions for even higher modularity.
716 </para>
717 <para>
718 The option set can be defined directly
···536 <para>
537 Wait until the supplied regular expressions match a line of
538 the serial console output. This method is useful when OCR is
539- not possibile or accurate enough.
540 </para>
541 </listitem>
542 </varlistentry>
···631 </para>
632 <para>
633 For faster dev cycles it's also possible to disable the
634- code-linters (this shouldn't be commited though):
635 </para>
636 <programlisting language="bash">
637{
···536 <para>
537 Wait until the supplied regular expressions match a line of
538 the serial console output. This method is useful when OCR is
539+ not possible or accurate enough.
540 </para>
541 </listitem>
542 </varlistentry>
···631 </para>
632 <para>
633 For faster dev cycles it's also possible to disable the
634+ code-linters (this shouldn't be committed though):
635 </para>
636 <programlisting language="bash">
637{
···24 </itemizedlist>
25 <para>
26 System images, such as the live installer ones, know how to enforce
27- configuration settings on wich they immediately depend in order to
28 work correctly.
29 </para>
30 <para>
···102 it needs at a minimum for correct functioning, while the installer
103 base image overrides the entire file system layout because there
104 can’t be any other guarantees on a live medium than those given by
105- the live medium itself. The latter is especially true befor
106 formatting the target block device(s). On the other hand, the
107 netboot iso only overrides its minimum dependencies since netboot
108 images are always made-to-target.
···24 </itemizedlist>
25 <para>
26 System images, such as the live installer ones, know how to enforce
27+ configuration settings on which they immediately depend in order to
28 work correctly.
29 </para>
30 <para>
···102 it needs at a minimum for correct functioning, while the installer
103 base image overrides the entire file system layout because there
104 can’t be any other guarantees on a live medium than those given by
105+ the live medium itself. The latter is especially true before
106 formatting the target block device(s). On the other hand, the
107 netboot iso only overrides its minimum dependencies since netboot
108 images are always made-to-target.
···223 <para>
224 You'll likely want to set a root password for your first boot
225 using the configuration files because you won't have a chance to
226- enter a password until after you reboot. You can initalize the
227 root password to an empty one with this line: (and of course
228 don't forget to set one once you've rebooted or to lock the
229 account with <literal>sudo passwd -l root</literal> if you use
···223 <para>
224 You'll likely want to set a root password for your first boot
225 using the configuration files because you won't have a chance to
226+ enter a password until after you reboot. You can initialize the
227 root password to an empty one with this line: (and of course
228 don't forget to set one once you've rebooted or to lock the
229 account with <literal>sudo passwd -l root</literal> if you use
···1-<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-instaling-virtualbox-guest">
2 <title>Installing in a VirtualBox guest</title>
3 <para>
4 Installing NixOS into a VirtualBox guest is convenient for users who
···1+<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-installing-virtualbox-guest">
2 <title>Installing in a VirtualBox guest</title>
3 <para>
4 Installing NixOS into a VirtualBox guest is convenient for users who
···256 </para>
257 <para>
258 On the minimal installer, NetworkManager is not available, so
259- configuration must be perfomed manually. To configure the wifi,
260 first start wpa_supplicant with
261 <literal>sudo systemctl start wpa_supplicant</literal>, then run
262 <literal>wpa_cli</literal>. For most home networks, you need to
···256 </para>
257 <para>
258 On the minimal installer, NetworkManager is not available, so
259+ configuration must be performed manually. To configure the wifi,
260 first start wpa_supplicant with
261 <literal>sudo systemctl start wpa_supplicant</literal>, then run
262 <literal>wpa_cli</literal>. For most home networks, you need to
···545 <literal>services.udev.extraRules</literal> option now writes
546 rules to <literal>99-local.rules</literal> instead of
547 <literal>10-local.rules</literal>. This makes all the user rules
548- apply after others, so their results wouldn't be overriden by
549 anything else.
550 </para>
551 </listitem>
···545 <literal>services.udev.extraRules</literal> option now writes
546 rules to <literal>99-local.rules</literal> instead of
547 <literal>10-local.rules</literal>. This makes all the user rules
548+ apply after others, so their results wouldn't be overridden by
549 anything else.
550 </para>
551 </listitem>
···666 <listitem>
667 <para>
668 <literal>services.firefox.syncserver</literal> now runs by
669- default as a non-root user. To accomodate this change, the
670 default sqlite database location has also been changed.
671 Migration should work automatically. Refer to the description
672 of the options for more details.
···666 <listitem>
667 <para>
668 <literal>services.firefox.syncserver</literal> now runs by
669+ default as a non-root user. To accommodate this change, the
670 default sqlite database location has also been changed.
671 Migration should work automatically. Refer to the description
672 of the options for more details.
···271 <listitem>
272 <para>
273 The versioned <literal>postgresql</literal> have been renamed
274- to use underscore number seperators. For example,
275 <literal>postgresql96</literal> has been renamed to
276 <literal>postgresql_9_6</literal>.
277 </para>
···271 <listitem>
272 <para>
273 The versioned <literal>postgresql</literal> have been renamed
274+ to use underscore number separators. For example,
275 <literal>postgresql96</literal> has been renamed to
276 <literal>postgresql_9_6</literal>.
277 </para>
···498 <listitem>
499 <para>
500 The <literal>prometheus-nginx-exporter</literal> package now
501- uses the offical exporter provided by NGINX Inc. Its metrics
502 are differently structured and are incompatible to the old
503 ones. For information about the metrics, have a look at the
504 <link xlink:href="https://github.com/nginxinc/nginx-prometheus-exporter">official
···524 <para>
525 By default, prometheus exporters are now run with
526 <literal>DynamicUser</literal> enabled. Exporters that need a
527- real user, now run under a seperate user and group which
528 follow the pattern
529 <literal><exporter-name>-exporter</literal>, instead of
530 the previous default <literal>nobody</literal> and
···498 <listitem>
499 <para>
500 The <literal>prometheus-nginx-exporter</literal> package now
501+ uses the official exporter provided by NGINX Inc. Its metrics
502 are differently structured and are incompatible to the old
503 ones. For information about the metrics, have a look at the
504 <link xlink:href="https://github.com/nginxinc/nginx-prometheus-exporter">official
···524 <para>
525 By default, prometheus exporters are now run with
526 <literal>DynamicUser</literal> enabled. Exporters that need a
527+ real user, now run under a separate user and group which
528 follow the pattern
529 <literal><exporter-name>-exporter</literal>, instead of
530 the previous default <literal>nobody</literal> and
···1304 <listitem>
1305 <para>
1306 In the ACME module, the data used to build the hash for the
1307- account directory has changed to accomodate new features to
1308 reduce account rate limit issues. This will trigger new
1309 account creation on the first rebuild following this update.
1310 No issues are expected to arise from this, thanks to the new
···1304 <listitem>
1305 <para>
1306 In the ACME module, the data used to build the hash for the
1307+ account directory has changed to accommodate new features to
1308 reduce account rate limit issues. This will trigger new
1309 account creation on the first rebuild following this update.
1310 No issues are expected to arise from this, thanks to the new
···328 <listitem>
329 <para>
330 <link xlink:href="https://maddy.email/">Maddy</link>, a free
331- an open source mail server. Availabe as
332 <link linkend="opt-services.maddy.enable">services.maddy</link>.
333 </para>
334 </listitem>
···1422 derivation if <literal>name</literal> is
1423 <literal>"vim"</literal> (the default). This
1424 makes the <literal>wrapManual</literal> argument obsolete,
1425- but this behavior can be overriden by setting the
1426 <literal>standalone</literal> argument.
1427 </para>
1428 </listitem>
···328 <listitem>
329 <para>
330 <link xlink:href="https://maddy.email/">Maddy</link>, a free
331+ an open source mail server. Available as
332 <link linkend="opt-services.maddy.enable">services.maddy</link>.
333 </para>
334 </listitem>
···1422 derivation if <literal>name</literal> is
1423 <literal>"vim"</literal> (the default). This
1424 makes the <literal>wrapManual</literal> argument obsolete,
1425+ but this behavior can be overridden by setting the
1426 <literal>standalone</literal> argument.
1427 </para>
1428 </listitem>
···1280 </listitem>
1281 <listitem>
1282 <para>
1283- Option descriptions, examples, and defaults writting in
1284- DocBook are now deprecated. Using CommonMark is preferred and
1285- will become the default in a future release.
1286 </para>
1287 </listitem>
1288 <listitem>
···1280 </listitem>
1281 <listitem>
1282 <para>
1283+ Option descriptions, examples, and defaults writing in DocBook
1284+ are now deprecated. Using CommonMark is preferred and will
1285+ become the default in a future release.
1286 </para>
1287 </listitem>
1288 <listitem>
···114 <link linkend="opt-services.snapserver.openFirewall">services.snapserver.openFirewall</link>
115 module option default value has been changed from
116 <literal>true</literal> to <literal>false</literal>. You will
117- need to explicitely set this option to
118- <literal>true</literal>, or configure your firewall.
119 </para>
120 </listitem>
121 <listitem>
···124 <link linkend="opt-services.tmate-ssh-server.openFirewall">services.tmate-ssh-server.openFirewall</link>
125 module option default value has been changed from
126 <literal>true</literal> to <literal>false</literal>. You will
127- need to explicitely set this option to
128- <literal>true</literal>, or configure your firewall.
129 </para>
130 </listitem>
131 <listitem>
···134 <link linkend="opt-services.unifi-video.openFirewall">services.unifi-video.openFirewall</link>
135 module option default value has been changed from
136 <literal>true</literal> to <literal>false</literal>. You will
137- need to explicitely set this option to
138- <literal>true</literal>, or configure your firewall.
139 </para>
140 </listitem>
141 <listitem>
···114 <link linkend="opt-services.snapserver.openFirewall">services.snapserver.openFirewall</link>
115 module option default value has been changed from
116 <literal>true</literal> to <literal>false</literal>. You will
117+ need to explicitly set this option to <literal>true</literal>,
118+ or configure your firewall.
119 </para>
120 </listitem>
121 <listitem>
···124 <link linkend="opt-services.tmate-ssh-server.openFirewall">services.tmate-ssh-server.openFirewall</link>
125 module option default value has been changed from
126 <literal>true</literal> to <literal>false</literal>. You will
127+ need to explicitly set this option to <literal>true</literal>,
128+ or configure your firewall.
129 </para>
130 </listitem>
131 <listitem>
···134 <link linkend="opt-services.unifi-video.openFirewall">services.unifi-video.openFirewall</link>
135 module option default value has been changed from
136 <literal>true</literal> to <literal>false</literal>. You will
137+ need to explicitly set this option to <literal>true</literal>,
138+ or configure your firewall.
139 </para>
140 </listitem>
141 <listitem>
···9- Combine them with (any of) your host config(s)
1011System images, such as the live installer ones, know how to enforce configuration settings
12-on wich they immediately depend in order to work correctly.
1314However, if you are confident, you can opt to override those
15enforced values with `mkForce`.
···75For example, the iso base image overrides those file systems which it needs at a minimum
76for correct functioning, while the installer base image overrides the entire file system
77layout because there can't be any other guarantees on a live medium than those given
78-by the live medium itself. The latter is especially true befor formatting the target
79block device(s). On the other hand, the netboot iso only overrides its minimum dependencies
80since netboot images are always made-to-target.
···9- Combine them with (any of) your host config(s)
1011System images, such as the live installer ones, know how to enforce configuration settings
12+on which they immediately depend in order to work correctly.
1314However, if you are confident, you can opt to override those
15enforced values with `mkForce`.
···75For example, the iso base image overrides those file systems which it needs at a minimum
76for correct functioning, while the installer base image overrides the entire file system
77layout because there can't be any other guarantees on a live medium than those given
78+by the live medium itself. The latter is especially true before formatting the target
79block device(s). On the other hand, the netboot iso only overrides its minimum dependencies
80since netboot images are always made-to-target.
···158159 You\'ll likely want to set a root password for your first boot using
160 the configuration files because you won\'t have a chance to enter a
161- password until after you reboot. You can initalize the root password
162 to an empty one with this line: (and of course don\'t forget to set
163 one once you\'ve rebooted or to lock the account with
164 `sudo passwd -l root` if you use `sudo`)
···158159 You\'ll likely want to set a root password for your first boot using
160 the configuration files because you won\'t have a chance to enter a
161+ password until after you reboot. You can initialize the root password
162 to an empty one with this line: (and of course don\'t forget to set
163 one once you\'ve rebooted or to lock the account with
164 `sudo passwd -l root` if you use `sudo`)
···1-# Installing in a VirtualBox guest {#sec-instaling-virtualbox-guest}
23Installing NixOS into a VirtualBox guest is convenient for users who
4want to try NixOS without installing it on bare metal. If you want to
···1+# Installing in a VirtualBox guest {#sec-installing-virtualbox-guest}
23Installing NixOS into a VirtualBox guest is convenient for users who
4want to try NixOS without installing it on bare metal. If you want to
···162`systemctl stop NetworkManager`.
163164On the minimal installer, NetworkManager is not available, so
165-configuration must be perfomed manually. To configure the wifi, first
166start wpa_supplicant with `sudo systemctl start wpa_supplicant`, then
167run `wpa_cli`. For most home networks, you need to type in the following
168commands:
···162`systemctl stop NetworkManager`.
163164On the minimal installer, NetworkManager is not available, so
165+configuration must be performed manually. To configure the wifi, first
166start wpa_supplicant with `sudo systemctl start wpa_supplicant`, then
167run `wpa_cli`. For most home networks, you need to type in the following
168commands:
+1-1
nixos/doc/manual/release-notes/rl-1603.section.md
···202 }
203 ```
204205-- `services.udev.extraRules` option now writes rules to `99-local.rules` instead of `10-local.rules`. This makes all the user rules apply after others, so their results wouldn\'t be overriden by anything else.
206207- Large parts of the `services.gitlab` module has been been rewritten. There are new configuration options available. The `stateDir` option was renamned to `statePath` and the `satellitesDir` option was removed. Please review the currently available options.
208
···202 }
203 ```
204205+- `services.udev.extraRules` option now writes rules to `99-local.rules` instead of `10-local.rules`. This makes all the user rules apply after others, so their results wouldn\'t be overridden by anything else.
206207- Large parts of the `services.gitlab` module has been been rewritten. There are new configuration options available. The `stateDir` option was renamned to `statePath` and the `satellitesDir` option was removed. Please review the currently available options.
208
+1-1
nixos/doc/manual/release-notes/rl-1709.section.md
···238239- `cc-wrapper`\'s setup-hook now exports a number of environment variables corresponding to binutils binaries, (e.g. `LD`, `STRIP`, `RANLIB`, etc). This is done to prevent packages\' build systems guessing, which is harder to predict, especially when cross-compiling. However, some packages have broken due to this---their build systems either not supporting, or claiming to support without adequate testing, taking such environment variables as parameters.
240241-- `services.firefox.syncserver` now runs by default as a non-root user. To accomodate this change, the default sqlite database location has also been changed. Migration should work automatically. Refer to the description of the options for more details.
242243- The `compiz` window manager and package was removed. The system support had been broken for several years.
244
···238239- `cc-wrapper`\'s setup-hook now exports a number of environment variables corresponding to binutils binaries, (e.g. `LD`, `STRIP`, `RANLIB`, etc). This is done to prevent packages\' build systems guessing, which is harder to predict, especially when cross-compiling. However, some packages have broken due to this---their build systems either not supporting, or claiming to support without adequate testing, taking such environment variables as parameters.
240241+- `services.firefox.syncserver` now runs by default as a non-root user. To accommodate this change, the default sqlite database location has also been changed. Migration should work automatically. Refer to the description of the options for more details.
242243- The `compiz` window manager and package was removed. The system support had been broken for several years.
244
+1-1
nixos/doc/manual/release-notes/rl-1903.section.md
···7374- OpenSMTPD has been upgraded to version 6.4.0p1. This release makes backwards-incompatible changes to the configuration file format. See `man smtpd.conf` for more information on the new file format.
7576-- The versioned `postgresql` have been renamed to use underscore number seperators. For example, `postgresql96` has been renamed to `postgresql_9_6`.
7778- Package `consul-ui` and passthrough `consul.ui` have been removed. The package `consul` now uses upstream releases that vendor the UI into the binary. See [\#48714](https://github.com/NixOS/nixpkgs/pull/48714#issuecomment-433454834) for details.
79
···7374- OpenSMTPD has been upgraded to version 6.4.0p1. This release makes backwards-incompatible changes to the configuration file format. See `man smtpd.conf` for more information on the new file format.
7576+- The versioned `postgresql` have been renamed to use underscore number separators. For example, `postgresql96` has been renamed to `postgresql_9_6`.
7778- Package `consul-ui` and passthrough `consul.ui` have been removed. The package `consul` now uses upstream releases that vendor the UI into the binary. See [\#48714](https://github.com/NixOS/nixpkgs/pull/48714#issuecomment-433454834) for details.
79
+2-2
nixos/doc/manual/release-notes/rl-1909.section.md
···154155- The setopt declarations will be evaluated at the end of `/etc/zshrc`, so any code in [programs.zsh.interactiveShellInit](options.html#opt-programs.zsh.interactiveShellInit), [programs.zsh.loginShellInit](options.html#opt-programs.zsh.loginShellInit) and [programs.zsh.promptInit](options.html#opt-programs.zsh.promptInit) may break if it relies on those options being set.
156157-- The `prometheus-nginx-exporter` package now uses the offical exporter provided by NGINX Inc. Its metrics are differently structured and are incompatible to the old ones. For information about the metrics, have a look at the [official repo](https://github.com/nginxinc/nginx-prometheus-exporter).
158159- The `shibboleth-sp` package has been updated to version 3. It is largely backward compatible, for further information refer to the [release notes](https://wiki.shibboleth.net/confluence/display/SP3/ReleaseNotes) and [upgrade guide](https://wiki.shibboleth.net/confluence/display/SP3/UpgradingFromV2).
160161 Nodejs 8 is scheduled EOL under the lifetime of 19.09 and has been dropped.
162163-- By default, prometheus exporters are now run with `DynamicUser` enabled. Exporters that need a real user, now run under a seperate user and group which follow the pattern `<exporter-name>-exporter`, instead of the previous default `nobody` and `nogroup`. Only some exporters are affected by the latter, namely the exporters `dovecot`, `node`, `postfix` and `varnish`.
164165- The `ibus-qt` package is not installed by default anymore when [i18n.inputMethod.enabled](options.html#opt-i18n.inputMethod.enabled) is set to `ibus`. If IBus support in Qt 4.x applications is required, add the `ibus-qt` package to your [environment.systemPackages](options.html#opt-environment.systemPackages) manually.
166
···154155- The setopt declarations will be evaluated at the end of `/etc/zshrc`, so any code in [programs.zsh.interactiveShellInit](options.html#opt-programs.zsh.interactiveShellInit), [programs.zsh.loginShellInit](options.html#opt-programs.zsh.loginShellInit) and [programs.zsh.promptInit](options.html#opt-programs.zsh.promptInit) may break if it relies on those options being set.
156157+- The `prometheus-nginx-exporter` package now uses the official exporter provided by NGINX Inc. Its metrics are differently structured and are incompatible to the old ones. For information about the metrics, have a look at the [official repo](https://github.com/nginxinc/nginx-prometheus-exporter).
158159- The `shibboleth-sp` package has been updated to version 3. It is largely backward compatible, for further information refer to the [release notes](https://wiki.shibboleth.net/confluence/display/SP3/ReleaseNotes) and [upgrade guide](https://wiki.shibboleth.net/confluence/display/SP3/UpgradingFromV2).
160161 Nodejs 8 is scheduled EOL under the lifetime of 19.09 and has been dropped.
162163+- By default, prometheus exporters are now run with `DynamicUser` enabled. Exporters that need a real user, now run under a separate user and group which follow the pattern `<exporter-name>-exporter`, instead of the previous default `nobody` and `nogroup`. Only some exporters are affected by the latter, namely the exporters `dovecot`, `node`, `postfix` and `varnish`.
164165- The `ibus-qt` package is not installed by default anymore when [i18n.inputMethod.enabled](options.html#opt-i18n.inputMethod.enabled) is set to `ibus`. If IBus support in Qt 4.x applications is required, add the `ibus-qt` package to your [environment.systemPackages](options.html#opt-environment.systemPackages) manually.
166
+1-1
nixos/doc/manual/release-notes/rl-2105.section.md
···369370- The zookeeper package does not provide `zooInspector.sh` anymore, as that \"contrib\" has been dropped from upstream releases.
371372-- In the ACME module, the data used to build the hash for the account directory has changed to accomodate new features to reduce account rate limit issues. This will trigger new account creation on the first rebuild following this update. No issues are expected to arise from this, thanks to the new account creation handling.
373374- [users.users._name_.createHome](options.html#opt-users.users._name_.createHome) now always ensures home directory permissions to be `0700`. Permissions had previously been ignored for already existing home directories, possibly leaving them readable by others. The option\'s description was incorrect regarding ownership management and has been simplified greatly.
375
···369370- The zookeeper package does not provide `zooInspector.sh` anymore, as that \"contrib\" has been dropped from upstream releases.
371372+- In the ACME module, the data used to build the hash for the account directory has changed to accommodate new features to reduce account rate limit issues. This will trigger new account creation on the first rebuild following this update. No issues are expected to arise from this, thanks to the new account creation handling.
373374- [users.users._name_.createHome](options.html#opt-users.users._name_.createHome) now always ensures home directory permissions to be `0700`. Permissions had previously been ignored for already existing home directories, possibly leaving them readable by others. The option\'s description was incorrect regarding ownership management and has been simplified greatly.
375
+2-2
nixos/doc/manual/release-notes/rl-2205.section.md
···107108- [kanidm](https://kanidm.github.io/kanidm/stable/), an identity management server written in Rust. Available as [services.kanidm](#opt-services.kanidm.enableServer)
109110-- [Maddy](https://maddy.email/), a free an open source mail server. Availabe as [services.maddy](#opt-services.maddy.enable).
111112- [matrix-conduit](https://conduit.rs/), a simple, fast and reliable chat server powered by matrix. Available as [services.matrix-conduit](option.html#opt-services.matrix-conduit.enable).
113···562- `pkgs._7zz` is now correctly licensed as LGPL3+ and BSD3 with optional unfree unRAR licensed code
563564- The `vim.customize` function produced by `vimUtils.makeCustomizable` now has a slightly different interface:
565- * The wrapper now includes everything in the given Vim derivation if `name` is `"vim"` (the default). This makes the `wrapManual` argument obsolete, but this behavior can be overriden by setting the `standalone` argument.
566 * All the executables present in the given derivation (or, in `standalone` mode, only the `*vim` ones) are wrapped. This makes the `wrapGui` argument obsolete.
567 * The `vimExecutableName` and `gvimExecutableName` arguments were replaced by a single `executableName` argument in which the shell variable `$exe` can be used to refer to the wrapped executable's name.
568
···107108- [kanidm](https://kanidm.github.io/kanidm/stable/), an identity management server written in Rust. Available as [services.kanidm](#opt-services.kanidm.enableServer)
109110+- [Maddy](https://maddy.email/), a free an open source mail server. Available as [services.maddy](#opt-services.maddy.enable).
111112- [matrix-conduit](https://conduit.rs/), a simple, fast and reliable chat server powered by matrix. Available as [services.matrix-conduit](option.html#opt-services.matrix-conduit.enable).
113···562- `pkgs._7zz` is now correctly licensed as LGPL3+ and BSD3 with optional unfree unRAR licensed code
563564- The `vim.customize` function produced by `vimUtils.makeCustomizable` now has a slightly different interface:
565+ * The wrapper now includes everything in the given Vim derivation if `name` is `"vim"` (the default). This makes the `wrapManual` argument obsolete, but this behavior can be overridden by setting the `standalone` argument.
566 * All the executables present in the given derivation (or, in `standalone` mode, only the `*vim` ones) are wrapped. This makes the `wrapGui` argument obsolete.
567 * The `vimExecutableName` and `gvimExecutableName` arguments were replaced by a single `executableName` argument in which the shell variable `$exe` can be used to refer to the wrapped executable's name.
568
+1-1
nixos/doc/manual/release-notes/rl-2211.section.md
···385386- memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. It is now the upstream version from https://www.memtest.org/, as coreboot's fork is no longer available.
387388-- Option descriptions, examples, and defaults writting in DocBook are now deprecated. Using CommonMark is preferred and will become the default in a future release.
389390- The `documentation.nixos.options.allowDocBook` option was added to ease the transition to CommonMark option documentation. Setting this option to `false` causes an error for every option included in the manual that uses DocBook documentation; it defaults to `true` to preserve the previous behavior and will be removed once the transition to CommonMark is complete.
391
···385386- memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. It is now the upstream version from https://www.memtest.org/, as coreboot's fork is no longer available.
387388+- Option descriptions, examples, and defaults writing in DocBook are now deprecated. Using CommonMark is preferred and will become the default in a future release.
389390- The `documentation.nixos.options.allowDocBook` option was added to ease the transition to CommonMark option documentation. Setting this option to `false` causes an error for every option included in the manual that uses DocBook documentation; it defaults to `true` to preserve the previous behavior and will be removed once the transition to CommonMark is complete.
391
+3-3
nixos/doc/manual/release-notes/rl-2305.section.md
···3738- `services.sourcehut.dispatch` and the corresponding package (`sourcehut.dispatchsrht`) have been removed due to [upstream deprecation](https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/).
3940-- The [services.snapserver.openFirewall](#opt-services.snapserver.openFirewall) module option default value has been changed from `true` to `false`. You will need to explicitely set this option to `true`, or configure your firewall.
4142-- The [services.tmate-ssh-server.openFirewall](#opt-services.tmate-ssh-server.openFirewall) module option default value has been changed from `true` to `false`. You will need to explicitely set this option to `true`, or configure your firewall.
4344-- The [services.unifi-video.openFirewall](#opt-services.unifi-video.openFirewall) module option default value has been changed from `true` to `false`. You will need to explicitely set this option to `true`, or configure your firewall.
4546- The EC2 image module previously detected and automatically mounted ext3-formatted instance store devices and partitions in stage-1 (initramfs), storing `/tmp` on the first discovered device. This behaviour, which only catered to very specific use cases and could not be disabled, has been removed. Users relying on this should provide their own implementation, and probably use ext4 and perform the mount in stage-2.
47
···3738- `services.sourcehut.dispatch` and the corresponding package (`sourcehut.dispatchsrht`) have been removed due to [upstream deprecation](https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/).
3940+- The [services.snapserver.openFirewall](#opt-services.snapserver.openFirewall) module option default value has been changed from `true` to `false`. You will need to explicitly set this option to `true`, or configure your firewall.
4142+- The [services.tmate-ssh-server.openFirewall](#opt-services.tmate-ssh-server.openFirewall) module option default value has been changed from `true` to `false`. You will need to explicitly set this option to `true`, or configure your firewall.
4344+- The [services.unifi-video.openFirewall](#opt-services.unifi-video.openFirewall) module option default value has been changed from `true` to `false`. You will need to explicitly set this option to `true`, or configure your firewall.
4546- The EC2 image module previously detected and automatically mounted ext3-formatted instance store devices and partitions in stage-1 (initramfs), storing `/tmp` on the first discovered device. This behaviour, which only catered to very specific use cases and could not be disabled, has been removed. Users relying on this should provide their own implementation, and probably use ext4 and perform the mount in stage-2.
47
+1-1
nixos/lib/make-options-doc/default.nix
···19{ pkgs
20, lib
21, options
22-, transformOptions ? lib.id # function for additional tranformations of the options
23, documentType ? "appendix" # TODO deprecate "appendix" in favor of "none"
24 # and/or rename function to moduleOptionDoc for clean slate
25
···19{ pkgs
20, lib
21, options
22+, transformOptions ? lib.id # function for additional transformations of the options
23, documentType ? "appendix" # TODO deprecate "appendix" in favor of "none"
24 # and/or rename function to moduleOptionDoc for clean slate
25
+1-1
nixos/modules/hardware/gpgsmartcards.nix
···8 # https://salsa.debian.org/debian/gnupg2/-/blob/debian/main/debian/scdaemon.udev
910 # the latest rev of the entire debian gnupg2 repo as of 2021-04-28
11- # the scdaemon.udev file was last commited on 2021-01-05 (7817a03):
12 scdaemonUdevRev = "01898735a015541e3ffb43c7245ac1e612f40836";
1314 scdaemonRules = pkgs.fetchurl {
···8 # https://salsa.debian.org/debian/gnupg2/-/blob/debian/main/debian/scdaemon.udev
910 # the latest rev of the entire debian gnupg2 repo as of 2021-04-28
11+ # the scdaemon.udev file was last committed on 2021-01-05 (7817a03):
12 scdaemonUdevRev = "01898735a015541e3ffb43c7245ac1e612f40836";
1314 scdaemonRules = pkgs.fetchurl {
+1-1
nixos/modules/hardware/openrazer.nix
···110 boot.extraModulePackages = [ kernelPackages.openrazer ];
111 boot.kernelModules = drivers;
112113- # Makes the man pages available so you can succesfully run
114 # > systemctl --user help openrazer-daemon
115 environment.systemPackages = [ pkgs.python3Packages.openrazer-daemon.man ];
116
···110 boot.extraModulePackages = [ kernelPackages.openrazer ];
111 boot.kernelModules = drivers;
112113+ # Makes the man pages available so you can successfully run
114 # > systemctl --user help openrazer-daemon
115 environment.systemPackages = [ pkgs.python3Packages.openrazer-daemon.man ];
116
+1-1
nixos/modules/hardware/printers.nix
···100 default = {};
101 description = lib.mdDoc ''
102 Sets PPD options for the printer.
103- {command}`lpoptions [-p printername] -l` shows suported PPD options for the given printer.
104 '';
105 };
106 };
···100 default = {};
101 description = lib.mdDoc ''
102 Sets PPD options for the printer.
103+ {command}`lpoptions [-p printername] -l` shows supported PPD options for the given printer.
104 '';
105 };
106 };
+1-1
nixos/modules/installer/cd-dvd/iso-image.nix
···8182 # The configuration file for syslinux.
8384- # Notes on syslinux configuration and UNetbootin compatiblity:
85 # * Do not use '/syslinux/syslinux.cfg' as the path for this
86 # configuration. UNetbootin will not parse the file and use it as-is.
87 # This results in a broken configuration if the partition label does
···8182 # The configuration file for syslinux.
8384+ # Notes on syslinux configuration and UNetbootin compatibility:
85 # * Do not use '/syslinux/syslinux.cfg' as the path for this
86 # configuration. UNetbootin will not parse the file and use it as-is.
87 # This results in a broken configuration if the partition label does
+1-1
nixos/modules/misc/label.nix
···27 variable (defaults to the value of
28 {option}`system.nixos.version`).
2930- Can be overriden by setting {env}`NIXOS_LABEL`.
3132 Useful for not loosing track of configurations built from different
33 nixos branches/revisions, e.g.:
···27 variable (defaults to the value of
28 {option}`system.nixos.version`).
2930+ Can be overridden by setting {env}`NIXOS_LABEL`.
3132 Useful for not loosing track of configurations built from different
33 nixos branches/revisions, e.g.:
+2-2
nixos/modules/security/acme/default.nix
···714 default = false;
715 description = lib.mdDoc ''
716 Whether to use the root user when generating certs. This is not recommended
717- for security + compatiblity reasons. If a service requires root owned certificates
718 consider following the guide on "Using ACME with services demanding root
719 owned certificates" in the NixOS manual, and only using this as a fallback
720 or for testing.
···765 To use the let's encrypt staging server, use security.acme.server =
766 "https://acme-staging-v02.api.letsencrypt.org/directory".
767 '')
768- (mkRemovedOptionModule [ "security" "acme" "directory" ] "ACME Directory is now hardcoded to /var/lib/acme and its permisisons are managed by systemd. See https://github.com/NixOS/nixpkgs/issues/53852 for more info.")
769 (mkRemovedOptionModule [ "security" "acme" "preDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
770 (mkRemovedOptionModule [ "security" "acme" "activationDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
771 (mkChangedOptionModule [ "security" "acme" "validMin" ] [ "security" "acme" "defaults" "validMinDays" ] (config: config.security.acme.validMin / (24 * 3600)))
···714 default = false;
715 description = lib.mdDoc ''
716 Whether to use the root user when generating certs. This is not recommended
717+ for security + compatibility reasons. If a service requires root owned certificates
718 consider following the guide on "Using ACME with services demanding root
719 owned certificates" in the NixOS manual, and only using this as a fallback
720 or for testing.
···765 To use the let's encrypt staging server, use security.acme.server =
766 "https://acme-staging-v02.api.letsencrypt.org/directory".
767 '')
768+ (mkRemovedOptionModule [ "security" "acme" "directory" ] "ACME Directory is now hardcoded to /var/lib/acme and its permissions are managed by systemd. See https://github.com/NixOS/nixpkgs/issues/53852 for more info.")
769 (mkRemovedOptionModule [ "security" "acme" "preDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
770 (mkRemovedOptionModule [ "security" "acme" "activationDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
771 (mkChangedOptionModule [ "security" "acme" "validMin" ] [ "security" "acme" "defaults" "validMinDays" ] (config: config.security.acme.validMin / (24 * 3600)))
+1-1
nixos/modules/security/apparmor.nix
···202 # (indirectly read from /etc/apparmor.d/*, without recursing into sub-directory).
203 # Note that this does not remove profiles dynamically generated by libvirt.
204 [ "${pkgs.apparmor-utils}/bin/aa-remove-unknown" ] ++
205- # Optionaly kill the processes which are unconfined but now have a profile loaded
206 # (because AppArmor can only start to confine new processes).
207 optional cfg.killUnconfinedConfinables killUnconfinedConfinables;
208 ExecStop = "${pkgs.apparmor-utils}/bin/aa-teardown";
···202 # (indirectly read from /etc/apparmor.d/*, without recursing into sub-directory).
203 # Note that this does not remove profiles dynamically generated by libvirt.
204 [ "${pkgs.apparmor-utils}/bin/aa-remove-unknown" ] ++
205+ # Optionally kill the processes which are unconfined but now have a profile loaded
206 # (because AppArmor can only start to confine new processes).
207 optional cfg.killUnconfinedConfinables killUnconfinedConfinables;
208 ExecStop = "${pkgs.apparmor-utils}/bin/aa-teardown";
+2-2
nixos/modules/security/pam.nix
···282 defaultText = literalExpression "config.security.pam.mount.enable";
283 type = types.bool;
284 description = lib.mdDoc ''
285- Enable PAM mount (pam_mount) system to mount fileystems on user login.
286 '';
287 };
288···305 default = false;
306 type = types.bool;
307 description = lib.mdDoc ''
308- Wheather the delay after typing a wrong password should be disabled.
309 '';
310 };
311
···282 defaultText = literalExpression "config.security.pam.mount.enable";
283 type = types.bool;
284 description = lib.mdDoc ''
285+ Enable PAM mount (pam_mount) system to mount filesystems on user login.
286 '';
287 };
288···305 default = false;
306 type = types.bool;
307 description = lib.mdDoc ''
308+ Whether the delay after typing a wrong password should be disabled.
309 '';
310 };
311
+1-1
nixos/modules/security/pam_mount.nix
···24 type = types.bool;
25 default = false;
26 description = lib.mdDoc ''
27- Enable PAM mount system to mount fileystems on user login.
28 '';
29 };
30
···24 type = types.bool;
25 default = false;
26 description = lib.mdDoc ''
27+ Enable PAM mount system to mount filesystems on user login.
28 '';
29 };
30
+1-1
nixos/modules/security/wrappers/default.nix
···202 internal = true;
203 description = lib.mdDoc ''
204 This option defines the path to the wrapper programs. It
205- should not be overriden.
206 '';
207 };
208 };
···202 internal = true;
203 description = lib.mdDoc ''
204 This option defines the path to the wrapper programs. It
205+ should not be overridden.
206 '';
207 };
208 };
+1-1
nixos/modules/services/audio/icecast.nix
···4849 hostname = mkOption {
50 type = types.nullOr types.str;
51- description = lib.mdDoc "DNS name or IP address that will be used for the stream directory lookups or possibily the playlist generation if a Host header is not provided.";
52 default = config.networking.domain;
53 defaultText = literalExpression "config.networking.domain";
54 };
···4849 hostname = mkOption {
50 type = types.nullOr types.str;
51+ description = lib.mdDoc "DNS name or IP address that will be used for the stream directory lookups or possibly the playlist generation if a Host header is not provided.";
52 default = config.networking.domain;
53 defaultText = literalExpression "config.networking.domain";
54 };
+2-2
nixos/modules/services/backup/zfs-replication.nix
···12 enable = mkEnableOption (lib.mdDoc "ZFS snapshot replication.");
1314 followDelete = mkOption {
15- description = lib.mdDoc "Remove remote snapshots that don't have a local correspondant.";
16 default = true;
17 type = types.bool;
18 };
···30 };
3132 localFilesystem = mkOption {
33- description = lib.mdDoc "Local ZFS fileystem from which snapshots should be sent. Defaults to the attribute name.";
34 example = "pool/file/path";
35 type = types.str;
36 };
···12 enable = mkEnableOption (lib.mdDoc "ZFS snapshot replication.");
1314 followDelete = mkOption {
15+ description = lib.mdDoc "Remove remote snapshots that don't have a local correspondent.";
16 default = true;
17 type = types.bool;
18 };
···30 };
3132 localFilesystem = mkOption {
33+ description = lib.mdDoc "Local ZFS filesystem from which snapshots should be sent. Defaults to the attribute name.";
34 example = "pool/file/path";
35 type = types.str;
36 };
+3-3
nixos/modules/services/backup/znapzend.nix
···9 The znapzend backup plan to use for the source.
1011 The plan specifies how often to backup and for how long to keep the
12- backups. It consists of a series of retention periodes to interval
13 associations:
1415 ```
···268269 mkSrcAttrs = srcCfg: with srcCfg; {
270 enabled = onOff enable;
271- # mbuffer is not referenced by its full path to accomodate non-NixOS systems or differing mbuffer versions between source and target
272 mbuffer = with mbuffer; if enable then "mbuffer"
273 + optionalString (port != null) ":${toString port}" else "off";
274 mbuffer_size = mbuffer.size;
···372 compressed feature which adds the options `-Lce` to
373 the {command}`zfs send` command. When this is enabled, make
374 sure that both the sending and receiving pool have the same relevant
375- features enabled. Using `-c` will skip unneccessary
376 decompress-compress stages, `-L` is for large block
377 support and -e is for embedded data support. see
378 {manpage}`znapzend(1)`
···9 The znapzend backup plan to use for the source.
1011 The plan specifies how often to backup and for how long to keep the
12+ backups. It consists of a series of retention periods to interval
13 associations:
1415 ```
···268269 mkSrcAttrs = srcCfg: with srcCfg; {
270 enabled = onOff enable;
271+ # mbuffer is not referenced by its full path to accommodate non-NixOS systems or differing mbuffer versions between source and target
272 mbuffer = with mbuffer; if enable then "mbuffer"
273 + optionalString (port != null) ":${toString port}" else "off";
274 mbuffer_size = mbuffer.size;
···372 compressed feature which adds the options `-Lce` to
373 the {command}`zfs send` command. When this is enabled, make
374 sure that both the sending and receiving pool have the same relevant
375+ features enabled. Using `-c` will skip unnecessary
376 decompress-compress stages, `-L` is for large block
377 support and -e is for embedded data support. see
378 {manpage}`znapzend(1)`
···51 type = types.bool;
52 default = false;
53 description = lib.mdDoc ''
54- Explictly disables syncing of deposit logs from the execution node.
55 This overrides any previous option that depends on it.
56 Useful if you intend to run a non-validating beacon node.
57 '';
···51 type = types.bool;
52 default = false;
53 description = lib.mdDoc ''
54+ Explicitly disables syncing of deposit logs from the execution node.
55 This overrides any previous option that depends on it.
56 Useful if you intend to run a non-validating beacon node.
57 '';
···2223 bootstrapAddons = mkOption {
24 description = lib.mdDoc ''
25- Bootstrap addons are like regular addons, but they are applied with cluster-admin rigths.
26 They are applied at addon-manager startup only.
27 '';
28 default = { };
···2223 bootstrapAddons = mkOption {
24 description = lib.mdDoc ''
25+ Bootstrap addons are like regular addons, but they are applied with cluster-admin rights.
26 They are applied at addon-manager startup only.
27 '';
28 default = { };
+1-1
nixos/modules/services/cluster/kubernetes/pki.nix
···323 systemctl restart flannel
324 ''}
325326- echo "Node joined succesfully"
327 '')];
328329 # isolate etcd on loopback at the master node
···323 systemctl restart flannel
324 ''}
325326+ echo "Node joined successfully"
327 '')];
328329 # isolate etcd on loopback at the master node
···49 registration token on startup as needed. Make sure the PAT has a scope of
50 `admin:org` for organization-wide registrations or a scope of
51 `repo` for a single repository. Fine-grained PATs need read and write permission
52- to the "Adminstration" resources.
5354 Changing this option or the file's content triggers a new runner registration.
55 '';
···49 registration token on startup as needed. Make sure the PAT has a scope of
50 `admin:org` for organization-wide registrations or a scope of
51 `repo` for a single repository. Fine-grained PATs need read and write permission
52+ to the "Administration" resources.
5354 Changing this option or the file's content triggers a new runner registration.
55 '';
···141 default = false;
142 description = lib.mdDoc ''
143 Finish all remaining jobs before stopping.
144- If not set gitlab-runner will stop immediatly without waiting
145 for jobs to finish, which will lead to failed builds.
146 '';
147 };
···141 default = false;
142 description = lib.mdDoc ''
143 Finish all remaining jobs before stopping.
144+ If not set gitlab-runner will stop immediately without waiting
145 for jobs to finish, which will lead to failed builds.
146 '';
147 };
···15 default = false;
16 description = lib.mdDoc ''
17 Enables the Hail Auto Update Service. Hail can automatically deploy artifacts
18- built by a Hydra Continous Integration server. A common use case is to provide
19- continous deployment for single services or a full NixOS configuration.'';
20 };
21 profile = mkOption {
22 type = types.str;
···15 default = false;
16 description = lib.mdDoc ''
17 Enables the Hail Auto Update Service. Hail can automatically deploy artifacts
18+ built by a Hydra Continuous Integration server. A common use case is to provide
19+ continuous deployment for single services or a full NixOS configuration.'';
20 };
21 profile = mkOption {
22 type = types.str;
+1-1
nixos/modules/services/databases/firebird.nix
···14#
15# Be careful, virtuoso-opensource also provides a different isql command !
1617-# There are at least two ways to run firebird. superserver has been choosen
18# however there are no strong reasons to prefer this or the other one AFAIK
19# Eg superserver is said to be most efficiently using resources according to
20# http://www.firebirdsql.org/manual/qsg25-classic-or-super.html
···14#
15# Be careful, virtuoso-opensource also provides a different isql command !
1617+# There are at least two ways to run firebird. superserver has been chosen
18# however there are no strong reasons to prefer this or the other one AFAIK
19# Eg superserver is said to be most efficiently using resources according to
20# http://www.firebirdsql.org/manual/qsg25-classic-or-super.html
···45 default = !(cfg.settings ? initial_session);
46 defaultText = literalExpression "!(config.services.greetd.settings ? initial_session)";
47 description = lib.mdDoc ''
48- Wether to restart greetd when it terminates (e.g. on failure).
49 This is usually desirable so a user can always log in, but should be disabled when using 'settings.initial_session' (autologin),
50 because every greetd restart will trigger the autologin again.
51 '';
···45 default = !(cfg.settings ? initial_session);
46 defaultText = literalExpression "!(config.services.greetd.settings ? initial_session)";
47 description = lib.mdDoc ''
48+ Whether to restart greetd when it terminates (e.g. on failure).
49 This is usually desirable so a user can always log in, but should be disabled when using 'settings.initial_session' (autologin),
50 because every greetd restart will trigger the autologin again.
51 '';
+3-3
nixos/modules/services/games/asf.nix
···35 description = lib.mdDoc ''
36 If enabled, starts the ArchisSteamFarm service.
37 For configuring the SteamGuard token you will need to use the web-ui, which is enabled by default over on 127.0.0.1:1242.
38- You cannot configure ASF in any way outside of nix, since all the config files get wiped on restart and replaced with the programatically set ones by nix.
39 '';
40 default = false;
41 };
···98 ipcPasswordFile = mkOption {
99 type = types.nullOr types.path;
100 default = null;
101- description = lib.mdDoc "Path to a file containig the password. The file must be readable by the `asf` user/group.";
102 };
103104 ipcSettings = mkOption {
···129 };
130 passwordFile = mkOption {
131 type = types.path;
132- description = lib.mdDoc "Path to a file containig the password. The file must be readable by the `asf` user/group.";
133 };
134 enabled = mkOption {
135 type = types.bool;
···35 description = lib.mdDoc ''
36 If enabled, starts the ArchisSteamFarm service.
37 For configuring the SteamGuard token you will need to use the web-ui, which is enabled by default over on 127.0.0.1:1242.
38+ You cannot configure ASF in any way outside of nix, since all the config files get wiped on restart and replaced with the programnatically set ones by nix.
39 '';
40 default = false;
41 };
···98 ipcPasswordFile = mkOption {
99 type = types.nullOr types.path;
100 default = null;
101+ description = lib.mdDoc "Path to a file containing the password. The file must be readable by the `asf` user/group.";
102 };
103104 ipcSettings = mkOption {
···129 };
130 passwordFile = mkOption {
131 type = types.path;
132+ description = lib.mdDoc "Path to a file containing the password. The file must be readable by the `asf` user/group.";
133 };
134 enabled = mkOption {
135 type = types.bool;
+1-1
nixos/modules/services/games/minetest-server.nix
···62 Path to logfile for logging.
6364 If set to null, logging will be output to stdout which means
65- all output will be catched by systemd.
66 '';
67 };
68
···62 Path to logfile for logging.
6364 If set to null, logging will be output to stdout which means
65+ all output will be caught by systemd.
66 '';
67 };
68
···141 description = lib.mdDoc ''
142 Enable saned network daemon for remote connection to scanners.
143144- saned would be runned from `scanner` user; to allow
145 access to hardware that doesn't have `scanner` group
146 you should add needed groups to this user.
147 '';
···141 description = lib.mdDoc ''
142 Enable saned network daemon for remote connection to scanners.
143144+ saned would be run from `scanner` user; to allow
145 access to hardware that doesn't have `scanner` group
146 you should add needed groups to this user.
147 '';
+1-1
nixos/modules/services/logging/logrotate.nix
···163 default = null;
164 description = lib.mdDoc ''
165 How often to rotate the logs. Defaults to previously set global setting,
166- which itself defauts to weekly.
167 '';
168 };
169
···163 default = null;
164 description = lib.mdDoc ''
165 How often to rotate the logs. Defaults to previously set global setting,
166+ which itself defaults to weekly.
167 '';
168 };
169
+1-1
nixos/modules/services/mail/mailman.nix
···113 type = types.str;
114 example = "/run/secrets/ldap-bind";
115 description = lib.mdDoc ''
116- Path to the file containing the bind password of the servie account
117 defined by [](#opt-services.mailman.ldap.bindDn).
118 '';
119 };
···113 type = types.str;
114 example = "/run/secrets/ldap-bind";
115 description = lib.mdDoc ''
116+ Path to the file containing the bind password of the service account
117 defined by [](#opt-services.mailman.ldap.bindDn).
118 '';
119 };
···39 '';
4041 description = lib.mdDoc ''
42- The package which contains roundcube's sources. Can be overriden to create
43 an environment which contains roundcube and third-party plugins.
44 '';
45 };
···92 default = [];
93 example = literalExpression "with pkgs.aspellDicts; [ en fr de ]";
94 description = lib.mdDoc ''
95- List of aspell dictionnaries for spell checking. If empty, spell checking is disabled.
96 '';
97 };
98
···39 '';
4041 description = lib.mdDoc ''
42+ The package which contains roundcube's sources. Can be overridden to create
43 an environment which contains roundcube and third-party plugins.
44 '';
45 };
···92 default = [];
93 example = literalExpression "with pkgs.aspellDicts; [ en fr de ]";
94 description = lib.mdDoc ''
95+ List of aspell dictionaries for spell checking. If empty, spell checking is disabled.
96 '';
97 };
98
···105 `MAUTRIX_TELEGRAM_TELEGRAM_BOT_TOKEN`.
106107 These environment variables can also be used to set other options by
108- replacing hierachy levels by `.`, converting the name to uppercase
109 and prepending `MAUTRIX_TELEGRAM_`.
110 For example, the first value above maps to
111 {option}`settings.appservice.as_token`.
···140 path = [ pkgs.lottieconverter ];
141142 # mautrix-telegram tries to generate a dotfile in the home directory of
143- # the running user if using a postgresql databse:
144 #
145 # File "python3.10/site-packages/asyncpg/connect_utils.py", line 257, in _dot_postgre>
146 # return (pathlib.Path.home() / '.postgresql' / filename).resolve()
···105 `MAUTRIX_TELEGRAM_TELEGRAM_BOT_TOKEN`.
106107 These environment variables can also be used to set other options by
108+ replacing hierarchy levels by `.`, converting the name to uppercase
109 and prepending `MAUTRIX_TELEGRAM_`.
110 For example, the first value above maps to
111 {option}`settings.appservice.as_token`.
···140 path = [ pkgs.lottieconverter ];
141142 # mautrix-telegram tries to generate a dotfile in the home directory of
143+ # the running user if using a postgresql database:
144 #
145 # File "python3.10/site-packages/asyncpg/connect_utils.py", line 257, in _dot_postgre>
146 # return (pathlib.Path.home() / '.postgresql' / filename).resolve()
+1-1
nixos/modules/services/matrix/synapse.nix
···80 (mkRemovedOptionModule [ "services" "matrix-synapse" "user_creation_max_duration" ] "It is no longer supported by synapse." )
81 (mkRemovedOptionModule [ "services" "matrix-synapse" "verbose" ] "Use a log config instead." )
8283- # options that were moved into rfc42 style settigns
84 (mkRemovedOptionModule [ "services" "matrix-synapse" "app_service_config_files" ] "Use settings.app_service_config_files instead" )
85 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_args" ] "Use settings.database.args instead" )
86 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_name" ] "Use settings.database.args.database instead" )
···80 (mkRemovedOptionModule [ "services" "matrix-synapse" "user_creation_max_duration" ] "It is no longer supported by synapse." )
81 (mkRemovedOptionModule [ "services" "matrix-synapse" "verbose" ] "Use a log config instead." )
8283+ # options that were moved into rfc42 style settings
84 (mkRemovedOptionModule [ "services" "matrix-synapse" "app_service_config_files" ] "Use settings.app_service_config_files instead" )
85 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_args" ] "Use settings.database.args instead" )
86 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_name" ] "Use settings.database.args.database instead" )
+1-1
nixos/modules/services/misc/dysnomia.nix
···114 };
115116 components = mkOption {
117- description = lib.mdDoc "An atttribute set in which each key represents a container and each value an attribute set in which each key represents a component and each value a derivation constructing its initial state";
118 default = {};
119 type = types.attrsOf types.attrs;
120 };
···114 };
115116 components = mkOption {
117+ description = lib.mdDoc "An attribute set in which each key represents a container and each value an attribute set in which each key represents a component and each value a derivation constructing its initial state";
118 default = {};
119 type = types.attrsOf types.attrs;
120 };
+1-1
nixos/modules/services/misc/gammu-smsd.nix
···192 password = mkOption {
193 type = types.nullOr types.str;
194 default = null;
195- description = lib.mdDoc "User password used for connetion to the database";
196 };
197 };
198 };
···192 password = mkOption {
193 type = types.nullOr types.str;
194 default = null;
195+ description = lib.mdDoc "User password used for connection to the database";
196 };
197 };
198 };
+2-2
nixos/modules/services/misc/gitea.nix
···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 };
···487488 # In older versions the secret naming for JWT was kind of confusing.
489 # The file jwt_secret hold the value for LFS_JWT_SECRET and JWT_SECRET
490- # wasn't persistant at all.
491 # To fix that, there is now the file oauth2_jwt_secret containing the
492 # values for JWT_SECRET and the file jwt_secret gets renamed to
493 # lfs_jwt_secret.
···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 chosen by gitea.";
187 example = "gitea-dump";
188 };
189 };
···487488 # In older versions the secret naming for JWT was kind of confusing.
489 # The file jwt_secret hold the value for LFS_JWT_SECRET and JWT_SECRET
490+ # wasn't persistent at all.
491 # To fix that, there is now the file oauth2_jwt_secret containing the
492 # values for JWT_SECRET and the file jwt_secret gets renamed to
493 # lfs_jwt_secret.
+1-1
nixos/modules/services/misc/gitlab.xml
···141 </para>
142143 <para>
144- A list of all availabe rake tasks can be obtained by running:
145<screen>
146<prompt>$ </prompt>sudo -u git -H gitlab-rake -T
147</screen>
···141 </para>
142143 <para>
144+ A list of all available rake tasks can be obtained by running:
145<screen>
146<prompt>$ </prompt>sudo -u git -H gitlab-rake -T
147</screen>
···609610 By default, pseudo-features `nixos-test`, `benchmark`,
611 and `big-parallel` used in Nixpkgs are set, `kvm`
612- is also included in it is avaliable.
613 '';
614 };
615···642 description = lib.mdDoc ''
643 Configuration for Nix, see
644 <https://nixos.org/manual/nix/stable/#sec-conf-file> or
645- {manpage}`nix.conf(5)` for avalaible options.
646 The value declared here will be translated directly to the key-value pairs Nix expects.
647648 You can use {command}`nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.nix.settings`
···609610 By default, pseudo-features `nixos-test`, `benchmark`,
611 and `big-parallel` used in Nixpkgs are set, `kvm`
612+ is also included in it is available.
613 '';
614 };
615···642 description = lib.mdDoc ''
643 Configuration for Nix, see
644 <https://nixos.org/manual/nix/stable/#sec-conf-file> or
645+ {manpage}`nix.conf(5)` for available options.
646 The value declared here will be translated directly to the key-value pairs Nix expects.
647648 You can use {command}`nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.nix.settings`
+1-1
nixos/modules/services/misc/podgrab.nix
···12 example = "/run/secrets/password.env";
13 description = lib.mdDoc ''
14 The path to a file containing the PASSWORD environment variable
15- definition for Podgrab's authentification.
16 '';
17 };
18
···12 example = "/run/secrets/password.env";
13 description = lib.mdDoc ''
14 The path to a file containing the PASSWORD environment variable
15+ definition for Podgrab's authentication.
16 '';
17 };
18
+1-1
nixos/modules/services/misc/portunus.nix
···135 type = types.bool;
136 default = false;
137 description = lib.mdDoc ''
138- Wether to enable LDAPS protocol.
139 This also adds two entries to the `/etc/hosts` file to point [](#opt-services.portunus.domain) to localhost,
140 so that CLIs and programs can use ldaps protocol and verify the certificate without opening the firewall port for the protocol.
141
···135 type = types.bool;
136 default = false;
137 description = lib.mdDoc ''
138+ Whether to enable LDAPS protocol.
139 This also adds two entries to the `/etc/hosts` file to point [](#opt-services.portunus.domain) to localhost,
140 so that CLIs and programs can use ldaps protocol and verify the certificate without opening the firewall port for the protocol.
141
···71 # Note that each systemd service gets its own ${runDir}/config.ini file.
72 ExecStartPre = mkBefore [("+"+pkgs.writeShellScript "${serviceName}-credentials" ''
73 set -x
74- # Replace values begining with a '<' by the content of the file whose name is after.
75 gawk '{ if (match($0,/^([^=]+=)<(.+)/,m)) { getline f < m[2]; print m[1] f } else print $0 }' ${configIni} |
76 ${optionalString (!allowStripe) "gawk '!/^stripe-secret-key=/' |"}
77 install -o ${srvCfg.user} -g root -m 400 /dev/stdin ${runDir}/config.ini
···71 # Note that each systemd service gets its own ${runDir}/config.ini file.
72 ExecStartPre = mkBefore [("+"+pkgs.writeShellScript "${serviceName}-credentials" ''
73 set -x
74+ # Replace values beginning with a '<' by the content of the file whose name is after.
75 gawk '{ if (match($0,/^([^=]+=)<(.+)/,m)) { getline f < m[2]; print m[1] f } else print $0 }' ${configIni} |
76 ${optionalString (!allowStripe) "gawk '!/^stripe-secret-key=/' |"}
77 install -o ${srvCfg.user} -g root -m 400 /dev/stdin ${runDir}/config.ini
···145 in lib.mdDoc ''
146 Whether to enable the Taskwarrior server.
147148- More instructions about NixOS in conjuction with Taskserver can be
149 found [in the NixOS manual](${url}).
150 '';
151 };
···251 client id (such as `task 2.3.0`).
252253 The values `all` or `none` have
254- special meaning. Overidden by any entry in the option
255 {option}`services.taskserver.disallowedClientIDs`.
256 '';
257 };
···145 in lib.mdDoc ''
146 Whether to enable the Taskwarrior server.
147148+ More instructions about NixOS in conjunction with Taskserver can be
149 found [in the NixOS manual](${url}).
150 '';
151 };
···251 client id (such as `task 2.3.0`).
252253 The values `all` or `none` have
254+ special meaning. Overridden by any entry in the option
255 {option}`services.taskserver.disallowedClientIDs`.
256 '';
257 };
+2-2
nixos/modules/services/monitoring/graphite.nix
···154 };
155156 blacklist = mkOption {
157- description = lib.mdDoc "Any metrics received which match one of the experssions will be dropped.";
158 default = null;
159 type = types.nullOr types.str;
160 example = "^some\\.noisy\\.metric\\.prefix\\..*";
161 };
162163 whitelist = mkOption {
164- description = lib.mdDoc "Only metrics received which match one of the experssions will be persisted.";
165 default = null;
166 type = types.nullOr types.str;
167 example = ".*";
···154 };
155156 blacklist = mkOption {
157+ description = lib.mdDoc "Any metrics received which match one of the expressions will be dropped.";
158 default = null;
159 type = types.nullOr types.str;
160 example = "^some\\.noisy\\.metric\\.prefix\\..*";
161 };
162163 whitelist = mkOption {
164+ description = lib.mdDoc "Only metrics received which match one of the expressions will be persisted.";
165 default = null;
166 type = types.nullOr types.str;
167 example = ".*";
···37 by default</link>, via http under <literal>/metrics</literal>. In this
38 example the firewall should just allow incoming connections to the
39 exporter's port on the bridge interface <literal>br0</literal> (this would
40- have to be configured seperately of course). For more information about
41 configuration see <literal>man configuration.nix</literal> or search through
42 the
43 <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available
···179 # for the exporter's systemd service. One of
180 # `serviceOpts.script` and `serviceOpts.serviceConfig.ExecStart`
181 # has to be specified here. This will be merged with the default
182- # service confiuration.
183 # Note that by default 'DynamicUser' is 'true'.
184 serviceOpts = {
185 serviceConfig = {
···37 by default</link>, via http under <literal>/metrics</literal>. In this
38 example the firewall should just allow incoming connections to the
39 exporter's port on the bridge interface <literal>br0</literal> (this would
40+ have to be configured separately of course). For more information about
41 configuration see <literal>man configuration.nix</literal> or search through
42 the
43 <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available
···179 # for the exporter's systemd service. One of
180 # `serviceOpts.script` and `serviceOpts.serviceConfig.ExecStart`
181 # has to be specified here. This will be merged with the default
182+ # service configuration.
183 # Note that by default 'DynamicUser' is 'true'.
184 serviceOpts = {
185 serviceConfig = {
···17 settings that can all be used here: https://github.com/martin-helmich/prometheus-nginxlog-exporter
1819 The `listen` object is already generated by `port`, `listenAddress` and `metricsEndpoint` and
20- will be merged with the value of `settings` before writting it as JSON.
21 '';
22 };
23
···17 settings that can all be used here: https://github.com/martin-helmich/prometheus-nginxlog-exporter
1819 The `listen` object is already generated by `port`, `listenAddress` and `metricsEndpoint` and
20+ will be merged with the value of `settings` before writing it as JSON.
21 '';
22 };
23
+1-1
nixos/modules/services/monitoring/thanos.nix
···300 max-time = mkParamDef types.str "9999-12-31T23:59:59Z" ''
301 End of time range limit to serve.
302303- Thanos Store serves only blocks, which happened eariler than this
304 value. Option can be a constant time in RFC3339 format or time duration
305 relative to current time, such as -1d or 2h45m. Valid duration units are
306 ms, s, m, h, d, w, y.
···300 max-time = mkParamDef types.str "9999-12-31T23:59:59Z" ''
301 End of time range limit to serve.
302303+ Thanos Store serves only blocks, which happened earlier than this
304 value. Option can be a constant time in RFC3339 format or time duration
305 relative to current time, such as -1d or 2h45m. Valid duration units are
306 ms, s, m, h, d, w, y.
+2-2
nixos/modules/services/monitoring/ups.nix
···12 upsOptions = {name, config, ...}:
13 {
14 options = {
15- # This can be infered from the UPS model by looking at
16 # /nix/store/nut/share/driver.list
17 driver = mkOption {
18 type = types.str;
···228 "}
229 '';
230 "nut/upssched.conf".source = cfg.schedulerRules;
231- # These file are containing private informations and thus should not
232 # be stored inside the Nix store.
233 /*
234 "nut/upsd.conf".source = "";
···12 upsOptions = {name, config, ...}:
13 {
14 options = {
15+ # This can be inferred from the UPS model by looking at
16 # /nix/store/nut/share/driver.list
17 driver = mkOption {
18 type = types.str;
···228 "}
229 '';
230 "nut/upssched.conf".source = cfg.schedulerRules;
231+ # These file are containing private information and thus should not
232 # be stored inside the Nix store.
233 /*
234 "nut/upsd.conf".source = "";
···21 fileSystems = mkOption {
22 description = lib.mdDoc ''
23 The orangefs file systems to be mounted.
24- This option is prefered over using {option}`fileSystems` directly since
25 the pvfs client service needs to be running for it to be mounted.
26 '';
27
···21 fileSystems = mkOption {
22 description = lib.mdDoc ''
23 The orangefs file systems to be mounted.
24+ This option is preferred over using {option}`fileSystems` directly since
25 the pvfs client service needs to be running for it to be mounted.
26 '';
27
···209 after = [ "network-online.target" ];
210211 serviceConfig = {
212- # Run as "simple" in forground mode.
213 # This is more reliable
214 ExecStart = ''
215 ${pkgs.orangefs}/bin/pvfs2-server -d \
···209 after = [ "network-online.target" ];
210211 serviceConfig = {
212+ # Run as "simple" in foreground mode.
213 # This is more reliable
214 ExecStart = ''
215 ${pkgs.orangefs}/bin/pvfs2-server -d \
+1-1
nixos/modules/services/networking/3proxy.nix
···158 description = lib.mdDoc ''
159 List of target IP ranges, use empty list for any.
160 May also contain host names instead of addresses.
161- It's possible to use wildmask in the begginning and in the the end of hostname, e.g. `*badsite.com` or `*badcontent*`.
162 Hostname is only checked if hostname presents in request.
163 '';
164 };
···158 description = lib.mdDoc ''
159 List of target IP ranges, use empty list for any.
160 May also contain host names instead of addresses.
161+ It's possible to use wildmask in the beginning and in the the end of hostname, e.g. `*badsite.com` or `*badcontent*`.
162 Hostname is only checked if hostname presents in request.
163 '';
164 };
+2-2
nixos/modules/services/networking/biboumi.nix
···45 default = "/etc/ssl/certs/ca-certificates.crt";
46 description = lib.mdDoc ''
47 Specifies which file should be used as the list of trusted CA
48- when negociating a TLS session.
49 '';
50 };
51 options.db_name = mkOption {
···111 description = lib.mdDoc ''
112 A directory that should contain the policy files,
113 used to customize Botan’s behaviour
114- when negociating the TLS connections with the IRC servers.
115 '';
116 };
117 options.port = mkOption {
···45 default = "/etc/ssl/certs/ca-certificates.crt";
46 description = lib.mdDoc ''
47 Specifies which file should be used as the list of trusted CA
48+ when negotiating a TLS session.
49 '';
50 };
51 options.db_name = mkOption {
···111 description = lib.mdDoc ''
112 A directory that should contain the policy files,
113 used to customize Botan’s behaviour
114+ when negotiating the TLS connections with the IRC servers.
115 '';
116 };
117 options.port = mkOption {
+1-1
nixos/modules/services/networking/bitcoind.nix
···95 }
96 '';
97 type = types.attrsOf (types.submodule rpcUserOpts);
98- description = lib.mdDoc "RPC user information for JSON-RPC connnections.";
99 };
100 };
101
···95 }
96 '';
97 type = types.attrsOf (types.submodule rpcUserOpts);
98+ description = lib.mdDoc "RPC user information for JSON-RPC connections.";
99 };
100 };
101
+1-1
nixos/modules/services/networking/bitlbee.nix
···60 type = types.str;
61 default = "127.0.0.1";
62 description = lib.mdDoc ''
63- The interface the BitlBee deamon will be listening to. If `127.0.0.1`,
64 only clients on the local host can connect to it; if `0.0.0.0`, clients
65 can access it from any network interface.
66 '';
···60 type = types.str;
61 default = "127.0.0.1";
62 description = lib.mdDoc ''
63+ The interface the BitlBee daemon will be listening to. If `127.0.0.1`,
64 only clients on the local host can connect to it; if `0.0.0.0`, clients
65 can access it from any network interface.
66 '';
···32 default = "[::]:4369";
33 description = lib.mdDoc ''
34 the listenStream used by the systemd socket.
35- see https://www.freedesktop.org/software/systemd/man/systemd.socket.html#ListenStream= for more informations.
36 use this to change the port epmd will run on.
37 if not defined, epmd will use "[::]:4369"
38 '';
···32 default = "[::]:4369";
33 description = lib.mdDoc ''
34 the listenStream used by the systemd socket.
35+ see https://www.freedesktop.org/software/systemd/man/systemd.socket.html#ListenStream= for more information.
36 use this to change the port epmd will run on.
37 if not defined, epmd will use "[::]:4369"
38 '';
···268 type = types.attrsOf types.str;
269 default = { };
270 description = lib.mdDoc ''
271- Domain map is used to map incomming users (by their email) to
272 a namespace. The key can be a string, or regex.
273 '';
274 example = {
···326 type = types.nullOr types.path;
327 default = null;
328 description = lib.mdDoc ''
329- Path to a file containg ACL policies.
330 '';
331 };
332
···268 type = types.attrsOf types.str;
269 default = { };
270 description = lib.mdDoc ''
271+ Domain map is used to map incoming users (by their email) to
272 a namespace. The key can be a string, or regex.
273 '';
274 example = {
···326 type = types.nullOr types.path;
327 default = null;
328 description = lib.mdDoc ''
329+ Path to a file containing ACL policies.
330 '';
331 };
332
···96 hardenService =
97 # Add some common systemd service hardening settings,
98 # but allow each service (here) to override
99- # settings by explicitely setting those to `null`.
100 # More hardening would be nice but makes
101 # customizing hylafax setups very difficult.
102 # If at all, it should only be added along
···96 hardenService =
97 # Add some common systemd service hardening settings,
98 # but allow each service (here) to override
99+ # settings by explicitly setting those to `null`.
100 # More hardening would be nice but makes
101 # customizing hylafax setups very difficult.
102 # If at all, it should only be added along
+1-1
nixos/modules/services/networking/i2pd.nix
···473 type = with types; nullOr str;
474 default = null;
475 description = lib.mdDoc ''
476- Router Familiy to trust for first hops.
477 '';
478 };
479
···473 type = with types; nullOr str;
474 default = null;
475 description = lib.mdDoc ''
476+ Router Family to trust for first hops.
477 '';
478 };
479
+1-1
nixos/modules/services/networking/iperf3.nix
···7 port = mkOption {
8 type = types.ints.u16;
9 default = 5201;
10- description = lib.mdDoc "Server port to listen on for iperf3 client requsts.";
11 };
12 affinity = mkOption {
13 type = types.nullOr types.ints.unsigned;
···7 port = mkOption {
8 type = types.ints.u16;
9 default = 5201;
10+ description = lib.mdDoc "Server port to listen on for iperf3 client requests.";
11 };
12 affinity = mkOption {
13 type = types.nullOr types.ints.unsigned;
+4-4
nixos/modules/services/networking/kea.nix
···47 type = listOf str;
48 default = [];
49 description = lib.mdDoc ''
50- List of additonal arguments to pass to the daemon.
51 '';
52 };
53···86 type = listOf str;
87 default = [];
88 description = lib.mdDoc ''
89- List of additonal arguments to pass to the daemon.
90 '';
91 };
92···146 type = listOf str;
147 default = [];
148 description = lib.mdDoc ''
149- List of additonal arguments to pass to the daemon.
150 '';
151 };
152···207 type = listOf str;
208 default = [];
209 description = lib.mdDoc ''
210- List of additonal arguments to pass to the daemon.
211 '';
212 };
213
···47 type = listOf str;
48 default = [];
49 description = lib.mdDoc ''
50+ List of additional arguments to pass to the daemon.
51 '';
52 };
53···86 type = listOf str;
87 default = [];
88 description = lib.mdDoc ''
89+ List of additional arguments to pass to the daemon.
90 '';
91 };
92···146 type = listOf str;
147 default = [];
148 description = lib.mdDoc ''
149+ List of additional arguments to pass to the daemon.
150 '';
151 };
152···207 type = listOf str;
208 default = [];
209 description = lib.mdDoc ''
210+ List of additional arguments to pass to the daemon.
211 '';
212 };
213
+1-1
nixos/modules/services/networking/knot.nix
···43 type = types.listOf types.str;
44 default = [];
45 description = lib.mdDoc ''
46- List of additional command line paramters for knotd
47 '';
48 };
49
···43 type = types.listOf types.str;
44 default = [];
45 description = lib.mdDoc ''
46+ List of additional command line parameters for knotd
47 '';
48 };
49
+1-1
nixos/modules/services/networking/libreswan.nix
···106 type = types.bool;
107 default = true;
108 description = lib.mdDoc ''
109- Whether to disable send and accept redirects for all nework interfaces.
110 See the Libreswan [
111 FAQ](https://libreswan.org/wiki/FAQ#Why_is_it_recommended_to_disable_send_redirects_in_.2Fproc.2Fsys.2Fnet_.3F) page for why this is recommended.
112 '';
···106 type = types.bool;
107 default = true;
108 description = lib.mdDoc ''
109+ Whether to disable send and accept redirects for all network interfaces.
110 See the Libreswan [
111 FAQ](https://libreswan.org/wiki/FAQ#Why_is_it_recommended_to_disable_send_redirects_in_.2Fproc.2Fsys.2Fnet_.3F) page for why this is recommended.
112 '';
···87 };
88 };
89 })
90- # this is seperate so it can be enabled on mirrored hosts
91 (mkIf (cfg.nginx.enable) {
92 # https://github.com/Avature/lxd-image-server/blob/master/resources/nginx/includes/lxd-image-server.pkg.conf
93 services.nginx.virtualHosts = {
···87 };
88 };
89 })
90+ # this is separate so it can be enabled on mirrored hosts
91 (mkIf (cfg.nginx.enable) {
92 # https://github.com/Avature/lxd-image-server/blob/master/resources/nginx/includes/lxd-image-server.pkg.conf
93 services.nginx.virtualHosts = {
+1-1
nixos/modules/services/networking/mosquitto.nix
···479 Directories to be scanned for further config files to include.
480 Directories will processed in the order given,
481 `*.conf` files in the directory will be
482- read in case-sensistive alphabetical order.
483 '';
484 default = [];
485 };
···479 Directories to be scanned for further config files to include.
480 Directories will processed in the order given,
481 `*.conf` files in the directory will be
482+ read in case-sensitive alphabetical order.
483 '';
484 default = [];
485 };
+1-1
nixos/modules/services/networking/ncdns.nix
···85 ```
86 bit. IN NS ns1.example.com.
87 ```
88- If unset ncdns will generate an internal psuedo-hostname under the
89 zone, which will resolve to the value of
90 {option}`services.ncdns.identity.address`.
91 If you are only using ncdns locally you can ignore this.
···85 ```
86 bit. IN NS ns1.example.com.
87 ```
88+ If unset ncdns will generate an internal pseudo-hostname under the
89 zone, which will resolve to the value of
90 {option}`services.ncdns.identity.address`.
91 If you are only using ncdns locally you can ignore this.
+2-2
nixos/modules/services/networking/ndppd.nix
···43 timeout = mkOption {
44 type = types.int;
45 description = lib.mdDoc ''
46- Controls how long to wait for a Neighbor Advertisment Message before
47 invalidating the entry, in milliseconds.
48 '';
49 default = 500;
···74 type = types.nullOr types.str;
75 description = lib.mdDoc ''
76 This is the target address is to match against. If no netmask
77- is provided, /128 is assumed. The addresses of serveral rules
78 may or may not overlap.
79 Defaults to the name of the attrset.
80 '';
···43 timeout = mkOption {
44 type = types.int;
45 description = lib.mdDoc ''
46+ Controls how long to wait for a Neighbor Advertisement Message before
47 invalidating the entry, in milliseconds.
48 '';
49 default = 500;
···74 type = types.nullOr types.str;
75 description = lib.mdDoc ''
76 This is the target address is to match against. If no netmask
77+ is provided, /128 is assumed. The addresses of several rules
78 may or may not overlap.
79 Defaults to the name of the attrset.
80 '';
+1-1
nixos/modules/services/networking/nftables.nix
···37 # Check out https://wiki.nftables.org/ for better documentation.
38 # Table for both IPv4 and IPv6.
39 table inet filter {
40- # Block all incomming connections traffic except SSH and "ping".
41 chain input {
42 type filter hook input priority 0;
43
···37 # Check out https://wiki.nftables.org/ for better documentation.
38 # Table for both IPv4 and IPv6.
39 table inet filter {
40+ # Block all incoming connections traffic except SSH and "ping".
41 chain input {
42 type filter hook input priority 0;
43
+1-1
nixos/modules/services/networking/nsd.nix
···371 default = null;
372 example = "2000::1@1234";
373 description = lib.mdDoc ''
374- This address will be used for zone-transfere requests if configured
375 as a secondary server or notifications in case of a primary server.
376 Supply either a plain IPv4 or IPv6 address with an optional port
377 number (ip@port).
···371 default = null;
372 example = "2000::1@1234";
373 description = lib.mdDoc ''
374+ This address will be used for zone-transfer requests if configured
375 as a secondary server or notifications in case of a primary server.
376 Supply either a plain IPv4 or IPv6 address with an optional port
377 number (ip@port).
+1-1
nixos/modules/services/networking/ostinato.nix
···54 default = "0.0.0.0";
55 description = lib.mdDoc ''
56 By default, the Drone RPC server will listen on all interfaces and
57- local IPv4 adresses for incoming connections from clients. Specify
58 a single IPv4 or IPv6 address if you want to restrict that.
59 To listen on any IPv6 address, use ::
60 '';
···54 default = "0.0.0.0";
55 description = lib.mdDoc ''
56 By default, the Drone RPC server will listen on all interfaces and
57+ local IPv4 addresses for incoming connections from clients. Specify
58 a single IPv4 or IPv6 address if you want to restrict that.
59 To listen on any IPv6 address, use ::
60 '';
+1-1
nixos/modules/services/networking/pleroma.nix
···52 the right place to store any secret
5354 Have a look to Pleroma section in the NixOS manual for more
55- informations.
56 '';
57 };
58
···52 the right place to store any secret
5354 Have a look to Pleroma section in the NixOS manual for more
55+ information.
56 '';
57 };
58
+4-4
nixos/modules/services/networking/prosody.nix
···309 type = types.int;
310 default = 300;
311 description = lib.mdDoc ''
312- Timout after which the room is destroyed or unlocked if not
313 configured, in seconds
314 '';
315 };
···489490 Setting this option to true will prevent you from building a
491 NixOS configuration which won't comply with this standard.
492- You can explicitely decide to ignore this standard if you
493 know what you are doing by setting this option to false.
494495 [1] https://xmpp.org/extensions/xep-0423.html
···649 extraPluginPaths = mkOption {
650 type = types.listOf types.path;
651 default = [];
652- description = lib.mdDoc "Addtional path in which to look find plugins/modules";
653 };
654655 uploadHttp = mkOption {
···733734 Having a server not XEP-0423-compliant might make your XMPP
735 experience terrible. See the NixOS manual for further
736- informations.
737738 If you know what you're doing, you can disable this warning by
739 setting config.services.prosody.xmppComplianceSuite to false.
···309 type = types.int;
310 default = 300;
311 description = lib.mdDoc ''
312+ Timeout after which the room is destroyed or unlocked if not
313 configured, in seconds
314 '';
315 };
···489490 Setting this option to true will prevent you from building a
491 NixOS configuration which won't comply with this standard.
492+ You can explicitly decide to ignore this standard if you
493 know what you are doing by setting this option to false.
494495 [1] https://xmpp.org/extensions/xep-0423.html
···649 extraPluginPaths = mkOption {
650 type = types.listOf types.path;
651 default = [];
652+ description = lib.mdDoc "Additional path in which to look find plugins/modules";
653 };
654655 uploadHttp = mkOption {
···733734 Having a server not XEP-0423-compliant might make your XMPP
735 experience terrible. See the NixOS manual for further
736+ information.
737738 If you know what you're doing, you can disable this warning by
739 setting config.services.prosody.xmppComplianceSuite to false.
+1-1
nixos/modules/services/networking/radicale.nix
···77 <https://radicale.org/3.0.html#documentation/authentication-and-rights>.
78 This option only works in conjunction with {option}`settings`.
79 Setting this will also set {option}`settings.rights.type` and
80- {option}`settings.rights.file` to approriate values.
81 '';
82 default = { };
83 example = literalExpression ''
···77 <https://radicale.org/3.0.html#documentation/authentication-and-rights>.
78 This option only works in conjunction with {option}`settings`.
79 Setting this will also set {option}`settings.rights.type` and
80+ {option}`settings.rights.file` to appropriate values.
81 '';
82 default = { };
83 example = literalExpression ''
+2-2
nixos/modules/services/networking/searx.nix
···124 description = lib.mdDoc ''
125 Whether to run searx in uWSGI as a "vassal", instead of using its
126 built-in HTTP server. This is the recommended mode for public or
127- large instances, but is unecessary for LAN or local-only use.
128129 ::: {.warning}
130 The built-in HTTP server logs all queries by default.
···223 module = "searx.webapp";
224 env = [
225 "SEARX_SETTINGS_PATH=${cfg.settingsFile}"
226- # searxng compatiblity https://github.com/searxng/searxng/issues/1519
227 "SEARXNG_SETTINGS_PATH=${cfg.settingsFile}"
228 ];
229 buffer-size = 32768;
···124 description = lib.mdDoc ''
125 Whether to run searx in uWSGI as a "vassal", instead of using its
126 built-in HTTP server. This is the recommended mode for public or
127+ large instances, but is unnecessary for LAN or local-only use.
128129 ::: {.warning}
130 The built-in HTTP server logs all queries by default.
···223 module = "searx.webapp";
224 env = [
225 "SEARX_SETTINGS_PATH=${cfg.settingsFile}"
226+ # searxng compatibility https://github.com/searxng/searxng/issues/1519
227 "SEARXNG_SETTINGS_PATH=${cfg.settingsFile}"
228 ];
229 buffer-size = 32768;
+1-1
nixos/modules/services/networking/stunnel.nix
···7879 servers = mkOption {
80 description = lib.mdDoc ''
81- Define the server configuations.
8283 See "SERVICE-LEVEL OPTIONS" in {manpage}`stunnel(8)`.
84 '';
···7879 servers = mkOption {
80 description = lib.mdDoc ''
81+ Define the server configurations.
8283 See "SERVICE-LEVEL OPTIONS" in {manpage}`stunnel(8)`.
84 '';
+1-1
nixos/modules/services/networking/unbound.nix
···245 NotifyAccess = "main";
246 Type = "notify";
247248- # FIXME: Which of these do we actualy need, can we drop the chroot flag?
249 AmbientCapabilities = [
250 "CAP_NET_BIND_SERVICE"
251 "CAP_NET_RAW"
···245 NotifyAccess = "main";
246 Type = "notify";
247248+ # FIXME: Which of these do we actually need, can we drop the chroot flag?
249 AmbientCapabilities = [
250 "CAP_NET_BIND_SERVICE"
251 "CAP_NET_RAW"
+1-1
nixos/modules/services/networking/unifi.nix
···76 default = null;
77 example = 4096;
78 description = lib.mdDoc ''
79- Set the maximimum heap size for the JVM in MB. If this option isn't set, the
80 JVM will decide this value at runtime.
81 '';
82 };
···76 default = null;
77 example = 4096;
78 description = lib.mdDoc ''
79+ Set the maximum heap size for the JVM in MB. If this option isn't set, the
80 JVM will decide this value at runtime.
81 '';
82 };
+1-1
nixos/modules/services/networking/vsftpd.nix
···168169 The default is a file containing the users from {option}`userlist`.
170171- If explicitely set to null userlist_file will not be set in vsftpd's config file.
172 '';
173 };
174
···168169 The default is a file containing the users from {option}`userlist`.
170171+ If explicitly set to null userlist_file will not be set in vsftpd's config file.
172 '';
173 };
174
+1-1
nixos/modules/services/networking/wireguard.nix
···303 set -e
304305 # If the parent dir does not already exist, create it.
306- # Otherwise, does nothing, keeping existing permisions intact.
307 mkdir -p --mode 0755 "${dirOf values.privateKeyFile}"
308309 if [ ! -f "${values.privateKeyFile}" ]; then
···303 set -e
304305 # If the parent dir does not already exist, create it.
306+ # Otherwise, does nothing, keeping existing permissions intact.
307 mkdir -p --mode 0755 "${dirOf values.privateKeyFile}"
308309 if [ ! -f "${values.privateKeyFile}" ]; then
+2-2
nixos/modules/services/networking/yggdrasil.xml
···30 settings = {
31 Peers = [
32 # Yggdrasil will automatically connect and "peer" with other nodes it
33- # discovers via link-local multicast annoucements. Unless this is the
34 # case (it probably isn't) a node needs peers within the existing
35 # network that it can tunnel to.
36 "tcp://1.2.3.4:1024"
···78 }];
7980 services.radvd = {
81- # Annouce the 300::/8 prefix to eth0.
82 enable = true;
83 config = ''
84 interface eth0
···30 settings = {
31 Peers = [
32 # Yggdrasil will automatically connect and "peer" with other nodes it
33+ # discovers via link-local multicast announcements. Unless this is the
34 # case (it probably isn't) a node needs peers within the existing
35 # network that it can tunnel to.
36 "tcp://1.2.3.4:1024"
···78 }];
7980 services.radvd = {
81+ # Announce the 300::/8 prefix to eth0.
82 enable = true;
83 config = ''
84 interface eth0
···161 type = types.str;
162 example = "2 4 16 128";
163 description = lib.mdDoc ''
164- "bantime-increment.multipliers" used to calculate next value of ban time instead of formula, coresponding
165 previously ban count and given "bantime.factor" (for multipliers default is 1);
166 following example grows ban time by 1, 2, 4, 8, 16 ... and if last ban count greater as multipliers count,
167 always used last multiplier (64 in example), for factor '1' and original ban time 600 - 10.6 hours
···174 example = true;
175 description = lib.mdDoc ''
176 "bantime-increment.overalljails" (if true) specifies the search of IP in the database will be executed
177- cross over all jails, if false (dafault), only current jail of the ban IP will be searched
178 '';
179 };
180
···161 type = types.str;
162 example = "2 4 16 128";
163 description = lib.mdDoc ''
164+ "bantime-increment.multipliers" used to calculate next value of ban time instead of formula, corresponding
165 previously ban count and given "bantime.factor" (for multipliers default is 1);
166 following example grows ban time by 1, 2, 4, 8, 16 ... and if last ban count greater as multipliers count,
167 always used last multiplier (64 in example), for factor '1' and original ban time 600 - 10.6 hours
···174 example = true;
175 description = lib.mdDoc ''
176 "bantime-increment.overalljails" (if true) specifies the search of IP in the database will be executed
177+ cross over all jails, if false (default), only current jail of the ban IP will be searched
178 '';
179 };
180
+2-2
nixos/modules/services/security/shibboleth-sp.nix
···27 fastcgi.shibAuthorizerPort = mkOption {
28 type = types.int;
29 default = 9100;
30- description = lib.mdDoc "Port for shibauthorizer FastCGI proccess to bind to";
31 };
3233 fastcgi.shibResponderPort = mkOption {
34 type = types.int;
35 default = 9101;
36- description = lib.mdDoc "Port for shibauthorizer FastCGI proccess to bind to";
37 };
38 };
39 };
···27 fastcgi.shibAuthorizerPort = mkOption {
28 type = types.int;
29 default = 9100;
30+ description = lib.mdDoc "Port for shibauthorizer FastCGI process to bind to";
31 };
3233 fastcgi.shibResponderPort = mkOption {
34 type = types.int;
35 default = 9101;
36+ description = lib.mdDoc "Port for shibauthorizer FastCGI process to bind to";
37 };
38 };
39 };
···118 description = lib.mdDoc ''
119 The USBGuard daemon modifies some attributes of controller
120 devices like the default authorization state of new child device
121- instances. Using this setting, you can controll whether the daemon
122 will try to restore the attribute values to the state before
123- modificaton on shutdown.
124 '';
125 };
126
···118 description = lib.mdDoc ''
119 The USBGuard daemon modifies some attributes of controller
120 devices like the default authorization state of new child device
121+ instances. Using this setting, you can control whether the daemon
122 will try to restore the attribute values to the state before
123+ modification on shutdown.
124 '';
125 };
126
+1-1
nixos/modules/services/system/cloud-init.nix
···2728 This configuration is not completely compatible with the
29 NixOS way of doing configuration, as configuration done by
30- cloud-init might be overriden by a subsequent nixos-rebuild
31 call. However, some parts of cloud-init fall outside of
32 NixOS's responsibility, like filesystem resizing and ssh
33 public key provisioning, and cloud-init is useful for that
···2728 This configuration is not completely compatible with the
29 NixOS way of doing configuration, as configuration done by
30+ cloud-init might be overridden by a subsequent nixos-rebuild
31 call. However, some parts of cloud-init fall outside of
32 NixOS's responsibility, like filesystem resizing and ssh
33 public key provisioning, and cloud-init is useful for that
···66 `true`. String values must be quoted, integer and
67 boolean values must not. See
68 <https://git.deluge-torrent.org/deluge/tree/deluge/core/preferencesmanager.py#n41>
69- for the availaible options.
70 '';
71 };
72···117 when {option}`services.deluge.declarative` is set to
118 `true`.
119 See <https://dev.deluge-torrent.org/wiki/UserGuide/Authentication> for
120- more informations.
121 '';
122 };
123
···66 `true`. String values must be quoted, integer and
67 boolean values must not. See
68 <https://git.deluge-torrent.org/deluge/tree/deluge/core/preferencesmanager.py#n41>
69+ for the available options.
70 '';
71 };
72···117 when {option}`services.deluge.declarative` is set to
118 `true`.
119 See <https://dev.deluge-torrent.org/wiki/UserGuide/Authentication> for
120+ more information.
121 '';
122 };
123
+1-1
nixos/modules/services/torrent/magnetico.nix
···143 The path to the file holding the credentials to access the web
144 interface. If unset no authentication will be required.
145146- The file must constain user names and password hashes in the format
147 `username:hash `, one for each line. Usernames must
148 start with a lowecase ([a-z]) ASCII character, might contain
149 non-consecutive underscores except at the end, and consists of
···143 The path to the file holding the credentials to access the web
144 interface. If unset no authentication will be required.
145146+ The file must contain user names and password hashes in the format
147 `username:hash `, one for each line. Usernames must
148 start with a lowecase ([a-z]) ASCII character, might contain
149 non-consecutive underscores except at the end, and consists of
+1-1
nixos/modules/services/torrent/rtorrent.nix
···82 type = types.lines;
83 default = "";
84 description = lib.mdDoc ''
85- The content of {file}`rtorrent.rc`. The [modernized configuration template](https://rtorrent-docs.readthedocs.io/en/latest/cookbook.html#modernized-configuration-template) with the values specified in this module will be prepended using mkBefore. You can use mkForce to overwrite the config completly.
86 '';
87 };
88 };
···82 type = types.lines;
83 default = "";
84 description = lib.mdDoc ''
85+ The content of {file}`rtorrent.rc`. The [modernized configuration template](https://rtorrent-docs.readthedocs.io/en/latest/cookbook.html#modernized-configuration-template) with the values specified in this module will be prepended using mkBefore. You can use mkForce to overwrite the config completely.
86 '';
87 };
88 };
+2-2
nixos/modules/services/torrent/transmission.nix
···44 (each time the service starts).
4546 See [Transmission's Wiki](https://github.com/transmission/transmission/wiki/Editing-Configuration-Files)
47- for documentation of settings not explicitely covered by this module.
48 '';
49 default = {};
50 type = types.submodule {
···355 PrivateUsers = true;
356 ProtectClock = true;
357 ProtectControlGroups = true;
358- # ProtectHome=true would not allow BindPaths= to work accross /home,
359 # and ProtectHome=tmpfs would break statfs(),
360 # preventing transmission-daemon to report the available free space.
361 # However, RootDirectory= is used, so this is not a security concern
···44 (each time the service starts).
4546 See [Transmission's Wiki](https://github.com/transmission/transmission/wiki/Editing-Configuration-Files)
47+ for documentation of settings not explicitly covered by this module.
48 '';
49 default = {};
50 type = types.submodule {
···355 PrivateUsers = true;
356 ProtectClock = true;
357 ProtectControlGroups = true;
358+ # ProtectHome=true would not allow BindPaths= to work across /home,
359 # and ProtectHome=tmpfs would break statfs(),
360 # preventing transmission-daemon to report the available free space.
361 # However, RootDirectory= is used, so this is not a security concern
+1-1
nixos/modules/services/video/unifi-video.nix
···159 default = 1024;
160 example = 4096;
161 description = lib.mdDoc ''
162- Set the maximimum heap size for the JVM in MB.
163 '';
164 };
165
···159 default = 1024;
160 example = 4096;
161 description = lib.mdDoc ''
162+ Set the maximum heap size for the JVM in MB.
163 '';
164 };
165
···98 description = lib.mdDoc ''
99 Environment variables which are read by healthchecks `(local)_settings.py`.
100101- Settings which are explictly covered in options bewlow, are type-checked and/or transformed
102 before added to the environment, everything else is passed as a string.
103104 See <https://healthchecks.io/docs/self_hosted_configuration/>
···98 description = lib.mdDoc ''
99 Environment variables which are read by healthchecks `(local)_settings.py`.
100101+ Settings which are explicitly covered in options bewlow, are type-checked and/or transformed
102 before added to the environment, everything else is passed as a string.
103104 See <https://healthchecks.io/docs/self_hosted_configuration/>
···68 example = {
69 http = ":8000";
70 };
71- description = lib.mdDoc "Additionnal configuration of the UWSGI vassal running ihatemoney. It should notably specify on which interfaces and ports the vassal should listen.";
72 };
73 defaultSender = {
74 name = mkOption {
···68 example = {
69 http = ":8000";
70 };
71+ description = lib.mdDoc "Additional configuration of the UWSGI vassal running ihatemoney. It should notably specify on which interfaces and ports the vassal should listen.";
72 };
73 defaultSender = {
74 name = mkOption {
+1-1
nixos/modules/services/web-apps/invidious.nix
···171 description = lib.mdDoc ''
172 A file including Invidious settings.
173174- It gets merged with the setttings specified in {option}`services.invidious.settings`
175 and can be used to store secrets like `hmac_key` outside of the nix store.
176 '';
177 };
···171 description = lib.mdDoc ''
172 A file including Invidious settings.
173174+ It gets merged with the settings specified in {option}`services.invidious.settings`
175 and can be used to store secrets like `hmac_key` outside of the nix store.
176 '';
177 };
+1-1
nixos/modules/services/web-apps/invoiceplane.nix
···74 type = types.path;
75 default = "/var/lib/invoiceplane/${name}";
76 description = lib.mdDoc ''
77- This directory is used for uploads of attachements and cache.
78 The directory passed here is automatically created and permissions
79 adjusted as required.
80 '';
···74 type = types.path;
75 default = "/var/lib/invoiceplane/${name}";
76 description = lib.mdDoc ''
77+ This directory is used for uploads of attachments and cache.
78 The directory passed here is automatically created and permissions
79 adjusted as required.
80 '';
+1-1
nixos/modules/services/web-apps/jitsi-meet.nix
···28 '');
2930 # Essential config - it's probably not good to have these as option default because
31- # types.attrs doesn't do merging. Let's merge explicitly, can still be overriden if
32 # user desires.
33 defaultCfg = {
34 hosts = {
···28 '');
2930 # Essential config - it's probably not good to have these as option default because
31+ # types.attrs doesn't do merging. Let's merge explicitly, can still be overridden if
32 # user desires.
33 defaultCfg = {
34 hosts = {
+1-1
nixos/modules/services/web-apps/matomo.nix
···174 CURRENT_PACKAGE=$(readlink ${dataDir}/current-package)
175 NEW_PACKAGE=${cfg.package}
176 if [ "$CURRENT_PACKAGE" != "$NEW_PACKAGE" ]; then
177- # keeping tmp arround between upgrades seems to bork stuff, so delete it
178 rm -rf ${dataDir}/tmp
179 fi
180 elif [ -e ${dataDir}/tmp ]; then
···174 CURRENT_PACKAGE=$(readlink ${dataDir}/current-package)
175 NEW_PACKAGE=${cfg.package}
176 if [ "$CURRENT_PACKAGE" != "$NEW_PACKAGE" ]; then
177+ # keeping tmp around between upgrades seems to bork stuff, so delete it
178 rm -rf ${dataDir}/tmp
179 fi
180 elif [ -e ${dataDir}/tmp ]; then
+1-1
nixos/modules/services/web-apps/mattermost.nix
···170 type = types.attrs;
171 default = { };
172 description = lib.mdDoc ''
173- Addtional configuration options as Nix attribute set in config.json schema.
174 '';
175 };
176
···170 type = types.attrs;
171 default = { };
172 description = lib.mdDoc ''
173+ Additional configuration options as Nix attribute set in config.json schema.
174 '';
175 };
176
+1-1
nixos/modules/services/web-apps/mediawiki.nix
···129130 ## Set $wgCacheDirectory to a writable directory on the web server
131 ## to make your wiki go slightly faster. The directory should not
132- ## be publically accessible from the web.
133 $wgCacheDirectory = "${cacheDir}";
134135 # Site language code, should be one of the list in ./languages/data/Names.php
···129130 ## Set $wgCacheDirectory to a writable directory on the web server
131 ## to make your wiki go slightly faster. The directory should not
132+ ## be publicly accessible from the web.
133 $wgCacheDirectory = "${cacheDir}";
134135 # Site language code, should be one of the list in ./languages/data/Names.php
+1-1
nixos/modules/services/web-apps/netbox.nix
···135 type = types.path;
136 default = "";
137 description = lib.mdDoc ''
138- Path to the Configuration-File for LDAP-Authentification, will be loaded as `ldap_config.py`.
139 See the [documentation](https://netbox.readthedocs.io/en/stable/installation/6-ldap/#configuration) for possible options.
140 '';
141 };
···135 type = types.path;
136 default = "";
137 description = lib.mdDoc ''
138+ Path to the Configuration-File for LDAP-Authentication, will be loaded as `ldap_config.py`.
139 See the [documentation](https://netbox.readthedocs.io/en/stable/installation/6-ldap/#configuration) for possible options.
140 '';
141 };
+7-7
nixos/modules/services/web-apps/nextcloud.nix
···16 # disable default openssl extension
17 (lib.filter (e: e.pname != "php-openssl") enabled)
18 # use OpenSSL 1.1 for RC4 Nextcloud encryption if user
19- # has acknowledged the brokeness of the ciphers (RC4).
20 # TODO: remove when https://github.com/nextcloud/server/issues/32003 is fixed.
21 ++ (if cfg.enableBrokenCiphersForSSE then [ cfg.phpPackage.extensions.openssl-legacy ] else [ cfg.phpPackage.extensions.openssl ])
22 ++ optional cfg.enableImagemagick imagick
···76 * setting `listen.owner` & `listen.group` in the phpfpm-pool to a different value
7778 Further details about this can be found in the `Nextcloud`-section of the NixOS-manual
79- (which can be openend e.g. by running `nixos-help`).
80 '')
81 (mkRemovedOptionModule [ "services" "nextcloud" "disableImagemagick" ] ''
82 Use services.nextcloud.nginx.enableImagemagick instead.
···388 default = [];
389 description = lib.mdDoc ''
390 Trusted domains, from which the nextcloud installation will be
391- acessible. You don't need to add
392 `services.nextcloud.hostname` here.
393 '';
394 };
···698699 services.nextcloud.enableBrokenCiphersForSSE = false;
700701- If you need to use server-side encryption you can ignore this waring.
702 Otherwise you'd have to disable server-side encryption first in order
703 to be able to safely disable this option and get rid of this warning.
704 See <https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/encryption_configuration.html#disabling-encryption> on how to achieve this.
···758759 nextcloud-setup = let
760 c = cfg.config;
761- writePhpArrary = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
762 requiresReadSecretFunction = c.dbpassFile != null || c.objectstore.s3.enable;
763 objectstoreConfig = let s3 = c.objectstore.s3; in optionalString s3.enable ''
764 'objectstore' => [
···838 ''
839 }
840 'dbtype' => '${c.dbtype}',
841- 'trusted_domains' => ${writePhpArrary ([ cfg.hostName ] ++ c.extraTrustedDomains)},
842- 'trusted_proxies' => ${writePhpArrary (c.trustedProxies)},
843 ${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
844 ${optionalString (nextcloudGreaterOrEqualThan "23") "'profile.enabled' => ${boolToString cfg.globalProfiles},"}
845 ${objectstoreConfig}
···16 # disable default openssl extension
17 (lib.filter (e: e.pname != "php-openssl") enabled)
18 # use OpenSSL 1.1 for RC4 Nextcloud encryption if user
19+ # has acknowledged the brokenness of the ciphers (RC4).
20 # TODO: remove when https://github.com/nextcloud/server/issues/32003 is fixed.
21 ++ (if cfg.enableBrokenCiphersForSSE then [ cfg.phpPackage.extensions.openssl-legacy ] else [ cfg.phpPackage.extensions.openssl ])
22 ++ optional cfg.enableImagemagick imagick
···76 * setting `listen.owner` & `listen.group` in the phpfpm-pool to a different value
7778 Further details about this can be found in the `Nextcloud`-section of the NixOS-manual
79+ (which can be opened e.g. by running `nixos-help`).
80 '')
81 (mkRemovedOptionModule [ "services" "nextcloud" "disableImagemagick" ] ''
82 Use services.nextcloud.nginx.enableImagemagick instead.
···388 default = [];
389 description = lib.mdDoc ''
390 Trusted domains, from which the nextcloud installation will be
391+ accessible. You don't need to add
392 `services.nextcloud.hostname` here.
393 '';
394 };
···698699 services.nextcloud.enableBrokenCiphersForSSE = false;
700701+ If you need to use server-side encryption you can ignore this warning.
702 Otherwise you'd have to disable server-side encryption first in order
703 to be able to safely disable this option and get rid of this warning.
704 See <https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/encryption_configuration.html#disabling-encryption> on how to achieve this.
···758759 nextcloud-setup = let
760 c = cfg.config;
761+ writePhpArray = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
762 requiresReadSecretFunction = c.dbpassFile != null || c.objectstore.s3.enable;
763 objectstoreConfig = let s3 = c.objectstore.s3; in optionalString s3.enable ''
764 'objectstore' => [
···838 ''
839 }
840 'dbtype' => '${c.dbtype}',
841+ 'trusted_domains' => ${writePhpArray ([ cfg.hostName ] ++ c.extraTrustedDomains)},
842+ 'trusted_proxies' => ${writePhpArray (c.trustedProxies)},
843 ${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
844 ${optionalString (nextcloudGreaterOrEqualThan "23") "'profile.enabled' => ${boolToString cfg.globalProfiles},"}
845 ${objectstoreConfig}
+1-1
nixos/modules/services/web-apps/nextcloud.xml
···283284 <para>
285 If major-releases will be abandoned by upstream, we should check first if those are needed
286- in NixOS for a safe upgrade-path before removing those. In that case we shold keep those
287 packages, but mark them as insecure in an expression like this (in
288 <literal><nixpkgs/pkgs/servers/nextcloud/default.nix></literal>):
289<programlisting>/* ... */
···283284 <para>
285 If major-releases will be abandoned by upstream, we should check first if those are needed
286+ in NixOS for a safe upgrade-path before removing those. In that case we should keep those
287 packages, but mark them as insecure in an expression like this (in
288 <literal><nixpkgs/pkgs/servers/nextcloud/default.nix></literal>):
289<programlisting>/* ... */
+1-1
nixos/modules/services/web-apps/onlyoffice.nix
···54 postgresName = mkOption {
55 type = types.str;
56 default = "onlyoffice";
57- description = lib.mdDoc "The name of databse OnlyOffice should user.";
58 };
5960 postgresPasswordFile = mkOption {
···54 postgresName = mkOption {
55 type = types.str;
56 default = "onlyoffice";
57+ description = lib.mdDoc "The name of database OnlyOffice should user.";
58 };
5960 postgresPasswordFile = mkOption {
+1-1
nixos/modules/services/web-apps/outline.nix
···465 options = {
466 host = lib.mkOption {
467 type = lib.types.str;
468- description = lib.mdDoc "Host name or IP adress of the SMTP server.";
469 };
470 port = lib.mkOption {
471 type = lib.types.port;
···465 options = {
466 host = lib.mkOption {
467 type = lib.types.str;
468+ description = lib.mdDoc "Host name or IP address of the SMTP server.";
469 };
470 port = lib.mkOption {
471 type = lib.types.port;
···130 ldapConfigPath = mkOption {
131 type = types.path;
132 description = lib.mdDoc ''
133- Path to the Configuration-File for LDAP-Authentification, will be loaded as `ldap_config.py`.
134 See the [documentation](https://peering-manager.readthedocs.io/en/stable/setup/6-ldap/#configuration) for possible options.
135 '';
136 };
···130 ldapConfigPath = mkOption {
131 type = types.path;
132 description = lib.mdDoc ''
133+ Path to the Configuration-File for LDAP-Authentication, will be loaded as `ldap_config.py`.
134 See the [documentation](https://peering-manager.readthedocs.io/en/stable/setup/6-ldap/#configuration) for possible options.
135 '';
136 };
···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 };
47
···41 defaultText = literalExpression "head config.${sksOpt.hkpAddress}";
42 type = types.str;
43 description = lib.mdDoc ''
44+ Which ip address the sks-keyserver is listening on.
45 '';
46 };
47
···49 Replacement-filepath mapping for sogo.conf.
50 Every key is replaced with the contents of the file specified as value.
5152- In the example, every occurence of LDAP_BINDPW will be replaced with the text of the
53 specified file.
54 '';
55 type = attrsOf str;
···49 Replacement-filepath mapping for sogo.conf.
50 Every key is replaced with the contents of the file specified as value.
5152+ In the example, every occurrence of LDAP_BINDPW will be replaced with the text of the
53 specified file.
54 '';
55 type = attrsOf str;
+1-1
nixos/modules/services/web-apps/wiki-js.nix
···17 default = null;
18 example = "/root/wiki-js.env";
19 description = lib.mdDoc ''
20- Environment fiel to inject e.g. secrets into the configuration.
21 '';
22 };
23
···17 default = null;
18 example = "/root/wiki-js.env";
19 description = lib.mdDoc ''
20+ Environment file to inject e.g. secrets into the configuration.
21 '';
22 };
23
+1-1
nixos/modules/services/web-servers/agate.nix
···43 type = types.listOf types.str;
44 description = lib.mdDoc ''
45 Domain name of this Gemini server, enables checking hostname and port
46- in requests. (multiple occurences means basic vhosts)
47 '';
48 };
49
···43 type = types.listOf types.str;
44 description = lib.mdDoc ''
45 Domain name of this Gemini server, enables checking hostname and port
46+ in requests. (multiple occurrences means basic vhosts)
47 '';
48 };
49
···6162 description = lib.mdDoc ''
63 Listen addresses for this virtual host.
64- Compared to `listen` this only sets the addreses
65 and the ports are chosen automatically.
66 '';
67 default = [ "*" ];
···6162 description = lib.mdDoc ''
63 Listen addresses for this virtual host.
64+ Compared to `listen` this only sets the addresses
65 and the ports are chosen automatically.
66 '';
67 default = [ "*" ];
···140141 # On deploy this will load our app, by moving it into the incoming dir
142 # If the bundle content changes, this will run again.
143- # Because the bundle content contains the nix path to the exectuable,
144 # we inherit nix based cache busting.
145 systemd.services.load-keter-bundle = {
146 description = "load keter bundle into incoming folder";
···140141 # On deploy this will load our app, by moving it into the incoming dir
142 # If the bundle content changes, this will run again.
143+ # Because the bundle content contains the nix path to the executable,
144 # we inherit nix based cache busting.
145 systemd.services.load-keter-bundle = {
146 description = "load keter bundle into incoming folder";
···5455 description = lib.mdDoc ''
56 Listen addresses for this virtual host.
57- Compared to `listen` this only sets the addreses
58- and the ports are choosen automatically.
5960 Note: This option overrides `enableIPv6`
61 '';
···5455 description = lib.mdDoc ''
56 Listen addresses for this virtual host.
57+ Compared to `listen` this only sets the addresses
58+ and the ports are chosen automatically.
5960 Note: This option overrides `enableIPv6`
61 '';
+1-1
nixos/modules/services/web-servers/ttyd.nix
···163 assertions =
164 [ { assertion = cfg.enableSSL
165 -> cfg.certFile != null && cfg.keyFile != null && cfg.caFile != null;
166- message = "SSL is enabled for ttyd, but no certFile, keyFile or caFile has been specefied."; }
167 { assertion = ! (cfg.interface != null && cfg.socket != null);
168 message = "Cannot set both interface and socket for ttyd."; }
169 { assertion = (cfg.username != null) == (cfg.passwordFile != null);
···163 assertions =
164 [ { assertion = cfg.enableSSL
165 -> cfg.certFile != null && cfg.keyFile != null && cfg.caFile != null;
166+ message = "SSL is enabled for ttyd, but no certFile, keyFile or caFile has been specified."; }
167 { assertion = ! (cfg.interface != null && cfg.socket != null);
168 message = "Cannot set both interface and socket for ttyd."; }
169 { assertion = (cfg.username != null) == (cfg.passwordFile != null);
+1-1
nixos/modules/services/web-servers/zope2.nix
···95 };
96 }
97 '';
98- description = lib.mdDoc "zope2 instances to be created automaticaly by the system.";
99 };
100 };
101
···95 };
96 }
97 '';
98+ description = lib.mdDoc "zope2 instances to be created automatically by the system.";
99 };
100 };
101
···123 };
124 };
125 description = lib.mdDoc ''
126- Extra settings merged in and overwritting defaults in sddm.conf.
127 '';
128 };
129
···123 };
124 };
125 description = lib.mdDoc ''
126+ Extra settings merged in and overwriting defaults in sddm.conf.
127 '';
128 };
129
+1-1
nixos/modules/services/x11/hardware/libinput.nix
···171 lib.mdDoc ''
172 Enables or disables drag lock during tapping behavior. When enabled, a finger up during tap-
173 and-drag will not immediately release the button. If the finger is set down again within the
174- timeout, the draging process continues.
175 '';
176 };
177
···171 lib.mdDoc ''
172 Enables or disables drag lock during tapping behavior. When enabled, a finger up during tap-
173 and-drag will not immediately release the button. If the finger is set down again within the
174+ timeout, the dragging process continues.
175 '';
176 };
177
+2-2
nixos/modules/services/x11/imwheel.nix
···37 Window class translation rules.
38 /etc/X11/imwheelrc is generated based on this config
39 which means this config is global for all users.
40- See [offical man pages](http://imwheel.sourceforge.net/imwheel.1.html)
41- for more informations.
42 '';
43 };
44 };
···37 Window class translation rules.
38 /etc/X11/imwheelrc is generated based on this config
39 which means this config is global for all users.
40+ See [official man pages](http://imwheel.sourceforge.net/imwheel.1.html)
41+ for more information.
42 '';
43 };
44 };
+1-1
nixos/modules/services/x11/xautolock.nix
···71 type = types.nullOr types.str;
7273 description = lib.mdDoc ''
74- The script to use when nothing has happend for as long as {option}`killtime`
75 '';
76 };
77
···71 type = types.nullOr types.str;
7273 description = lib.mdDoc ''
74+ The script to use when nothing has happened for as long as {option}`killtime`
75 '';
76 };
77
+1-1
nixos/modules/virtualisation/appvm.nix
···20 user = mkOption {
21 type = types.str;
22 description = lib.mdDoc ''
23- AppVM user login. Currenly only AppVMs are supported for a single user only.
24 '';
25 };
26 };
···20 user = mkOption {
21 type = types.str;
22 description = lib.mdDoc ''
23+ AppVM user login. Currently only AppVMs are supported for a single user only.
24 '';
25 };
26 };
+1-1
nixos/modules/virtualisation/proxmox-image.nix
···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 '';
34 };
···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 storage.
32 This parameter is required by PVE even if it isn't used.
33 '';
34 };
···277 };
278 };
279280- # Test compatiblity with Caddy
281 # It only supports useACMEHost, hence not using mkServerConfigs
282 } // (let
283 baseCaddyConfig = { nodes, config, ... }: {
···277 };
278 };
279280+ # Test compatibility with Caddy
281 # It only supports useACMEHost, hence not using mkServerConfigs
282 } // (let
283 baseCaddyConfig = { nodes, config, ... }: {
+1-1
nixos/tests/cockroachdb.nix
···8# Cluster joins that are outside this window will fail, and nodes that skew
9# outside the window after joining will promptly get kicked out.
10#
11-# To accomodate this, we use QEMU/virtio infrastructure and load the 'ptp_kvm'
12# driver inside a guest. This driver allows the host machine to pass its clock
13# through to the guest as a hardware clock that appears as a Precision Time
14# Protocol (PTP) Clock device, generally /dev/ptp0. PTP devices can be measured
···8# Cluster joins that are outside this window will fail, and nodes that skew
9# outside the window after joining will promptly get kicked out.
10#
11+# To accommodate this, we use QEMU/virtio infrastructure and load the 'ptp_kvm'
12# driver inside a guest. This driver allows the host machine to pass its clock
13# through to the guest as a hardware clock that appears as a Precision Time
14# Protocol (PTP) Clock device, generally /dev/ptp0. PTP devices can be measured
+1-1
nixos/tests/common/ec2.nix
···46 # Note: we use net=169.0.0.0/8 rather than
47 # net=169.254.0.0/16 to prevent dhcpcd from getting horribly
48 # confused. (It would get a DHCP lease in the 169.254.*
49- # range, which it would then configure and prompty delete
50 # again when it deletes link-local addresses.) Ideally we'd
51 # turn off the DHCP server, but qemu does not have an option
52 # to do that.
···46 # Note: we use net=169.0.0.0/8 rather than
47 # net=169.254.0.0/16 to prevent dhcpcd from getting horribly
48 # confused. (It would get a DHCP lease in the 169.254.*
49+ # range, which it would then configure and promptly delete
50 # again when it deletes link-local addresses.) Ideally we'd
51 # turn off the DHCP server, but qemu does not have an option
52 # to do that.
···120 start_all()
121122 # Parse the package path out of the systemd unit, as we cannot
123- # access the final package, that is overriden inside the module,
124 # by any other means.
125 pattern = re.compile(r"path=(?P<path>[\/a-z0-9-.]+)\/bin\/hass")
126 response = hass.execute("systemctl show -p ExecStart home-assistant.service")[1]
···120 start_all()
121122 # Parse the package path out of the systemd unit, as we cannot
123+ # access the final package, that is overridden inside the module,
124 # by any other means.
125 pattern = re.compile(r"path=(?P<path>[\/a-z0-9-.]+)\/bin\/hass")
126 response = hass.execute("systemctl show -p ExecStart home-assistant.service")[1]
+1-1
nixos/tests/networking-proxy.nix
···37 default-config //
38 {
39 networking.proxy = {
40- # useless because overriden by the next options
41 default = "http://user:pass@host:port";
42 # advanced proxy setup
43 httpProxy = "123-http://user:pass@http-host:port";
···37 default-config //
38 {
39 networking.proxy = {
40+ # useless because overridden by the next options
41 default = "http://user:pass@host:port";
42 # advanced proxy setup
43 httpProxy = "123-http://user:pass@http-host:port";
+1-1
nixos/tests/pgadmin4-standalone.nix
···1import ./make-test-python.nix ({ pkgs, lib, ... }:
2- # This is seperate from pgadmin4 since we don't want both running at once
34 {
5 name = "pgadmin4-standalone";
···1import ./make-test-python.nix ({ pkgs, lib, ... }:
2+ # This is separate from pgadmin4 since we don't want both running at once
34 {
5 name = "pgadmin4-standalone";
+1-1
nixos/tests/pgadmin4.nix
···106 && sed -i 's|driver_local.maximize_window()||' web/regression/runtests.py"
107 )
108109- # Don't bother to test LDAP or kerberos authentification
110 with subtest("run browser test"):
111 machine.succeed(
112 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
···106 && sed -i 's|driver_local.maximize_window()||' web/regression/runtests.py"
107 )
108109+ # Don't bother to test LDAP or kerberos authentication
110 with subtest("run browser test"):
111 machine.succeed(
112 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
+1-1
nixos/tests/vaultwarden.nix
···164 with subtest("configure the cli"):
165 client.succeed("bw --nointeraction config server http://server")
166167- with subtest("can't login to nonexistant account"):
168 client.fail(
169 "bw --nointeraction --raw login ${userEmail} ${userPassword}"
170 )
···164 with subtest("configure the cli"):
165 client.succeed("bw --nointeraction config server http://server")
166167+ with subtest("can't login to nonexistent account"):
168 client.fail(
169 "bw --nointeraction --raw login ${userEmail} ${userPassword}"
170 )