nixos/*: convert straggler options to MD

pennae 1d41cff3 e04a0908

Changed files
+153 -144
nixos
+7 -7
nixos/modules/services/backup/znapzend.nix
···
backups. It consists of a series of retention periodes to interval
associations:
-
<literal>
retA=>intA,retB=>intB,...
-
</literal>
Both intervals and retention periods are expressed in standard units
of time or multiples of them. You can use both the full name or a
shortcut according to the following listing:
-
<literal>
second|sec|s, minute|min, hour|h, day|d, week|w, month|mon|m, year|y
-
</literal>
-
See <citerefentry><refentrytitle>znapzendzetup</refentrytitle><manvolnum>1</manvolnum></citerefentry> for more info.
'';
planExample = "1h=>10min,1d=>1h,1w=>1d,1m=>1w,1y=>1m";
···
plan = mkOption {
type = str;
-
description = planDescription;
example = planExample;
};
···
plan = mkOption {
type = str;
-
description = planDescription;
example = planExample;
};
···
backups. It consists of a series of retention periodes to interval
associations:
+
```
retA=>intA,retB=>intB,...
+
```
Both intervals and retention periods are expressed in standard units
of time or multiples of them. You can use both the full name or a
shortcut according to the following listing:
+
```
second|sec|s, minute|min, hour|h, day|d, week|w, month|mon|m, year|y
+
```
+
See {manpage}`znapzendzetup(1)` for more info.
'';
planExample = "1h=>10min,1d=>1h,1w=>1d,1m=>1w,1y=>1m";
···
plan = mkOption {
type = str;
+
description = lib.mdDoc planDescription;
example = planExample;
};
···
plan = mkOption {
type = str;
+
description = lib.mdDoc planDescription;
example = planExample;
};
+3 -3
nixos/modules/services/development/zammad.nix
···
{
}
'';
-
description = ''
-
The <filename>database.yml</filename> configuration file as key value set.
-
See <link xlink:href="TODO"/>
for list of configuration parameters.
'';
};
···
{
}
'';
+
description = lib.mdDoc ''
+
The {file}`database.yml` configuration file as key value set.
+
See \<TODO\>
for list of configuration parameters.
'';
};
+2 -2
nixos/modules/services/games/teeworlds.nix
···
extraOptions = mkOption {
type = types.listOf types.str;
default = [];
-
description = ''
-
Extra configuration lines for the <filename>teeworlds.cfg</filename>. See <link xlink:href="https://www.teeworlds.com/?page=docs&amp;wiki=server_settings">Teeworlds Documentation</link>.
'';
example = [ "sv_map dm1" "sv_gametype dm" ];
};
···
extraOptions = mkOption {
type = types.listOf types.str;
default = [];
+
description = lib.mdDoc ''
+
Extra configuration lines for the {file}`teeworlds.cfg`. See [Teeworlds Documentation](https://www.teeworlds.com/?page=docs&wiki=server_settings).
'';
example = [ "sv_map dm1" "sv_gametype dm" ];
};
+2 -2
nixos/modules/services/mail/pfix-srsd.nix
···
};
secretsFile = mkOption {
-
description = ''
The secret data used to encode the SRS address.
to generate, use a command like:
-
<literal>for n in $(seq 5); do dd if=/dev/urandom count=1 bs=1024 status=none | sha256sum | sed 's/ -$//' | sed 's/^/ /'; done</literal>
'';
type = types.path;
default = "/var/lib/pfix-srsd/secrets";
···
};
secretsFile = mkOption {
+
description = lib.mdDoc ''
The secret data used to encode the SRS address.
to generate, use a command like:
+
`for n in $(seq 5); do dd if=/dev/urandom count=1 bs=1024 status=none | sha256sum | sed 's/ -$//' | sed 's/^/ /'; done`
'';
type = types.path;
default = "/var/lib/pfix-srsd/secrets";
+12 -9
nixos/modules/services/mail/spamassassin.nix
···
config = mkOption {
type = types.lines;
-
description = ''
The SpamAssassin local.cf config
If you are using this configuration:
-
add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_
Then you can Use this sieve filter:
-
require ["fileinto", "reject", "envelope"];
-
if header :contains "X-Spam-Flag" "YES" {
-
fileinto "spam";
-
}
Or this procmail filter:
-
:0:
-
* ^X-Spam-Flag: YES
-
/var/vpopmail/domains/lastlog.de/js/.maildir/.spam/new
To filter your messages based on the additional mail headers added by spamassassin.
'';
···
config = mkOption {
type = types.lines;
+
description = lib.mdDoc ''
The SpamAssassin local.cf config
If you are using this configuration:
+
+
add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_
Then you can Use this sieve filter:
+
+
require ["fileinto", "reject", "envelope"];
+
if header :contains "X-Spam-Flag" "YES" {
+
fileinto "spam";
+
}
Or this procmail filter:
+
+
:0:
+
* ^X-Spam-Flag: YES
+
/var/vpopmail/domains/lastlog.de/js/.maildir/.spam/new
To filter your messages based on the additional mail headers added by spamassassin.
'';
+4 -4
nixos/modules/services/misc/autorandr.nix
···
};
};
});
-
description = ''
Output scale configuration.
Either configure by pixels or a scaling factor. When using pixel method the
-
<citerefentry><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry>
option
-
<parameter class="command">--scale-from</parameter>
will be used; when using factor method the option
-
<parameter class="command">--scale</parameter>
will be used.
This option is a shortcut version of the transform option and they are mutually
···
};
};
});
+
description = lib.mdDoc ''
Output scale configuration.
Either configure by pixels or a scaling factor. When using pixel method the
+
{manpage}`xrandr(1)`
option
+
`--scale-from`
will be used; when using factor method the option
+
`--scale`
will be used.
This option is a shortcut version of the transform option and they are mutually
+6 -6
nixos/modules/services/misc/gitea.nix
···
};
service = {
-
DISABLE_REGISTRATION = mkEnableOption "the registration lock" // {
-
description = ''
-
By default any user can create an account on this <literal>gitea</literal> instance.
This can be disabled by using this option.
-
<emphasis>Note:</emphasis> please keep in mind that this should be added after the initial
-
deploy unless <link linkend="opt-services.gitea.useWizard">services.gitea.useWizard</link>
-
is <literal>true</literal> as the first registered user will be the administrator if
no install wizard is used.
'';
};
···
};
service = {
+
DISABLE_REGISTRATION = mkEnableOption (lib.mdDoc "the registration lock") // {
+
description = lib.mdDoc ''
+
By default any user can create an account on this `gitea` instance.
This can be disabled by using this option.
+
*Note:* please keep in mind that this should be added after the initial
+
deploy unless [](#opt-services.gitea.useWizard)
+
is `true` as the first registered user will be the administrator if
no install wizard is used.
'';
};
+3 -3
nixos/modules/services/misc/gitit.nix
···
templatesDir = mkOption {
type = types.path;
default = gititShared + "/data/templates";
-
description = ''
Specifies the path of the directory containing page templates. If it
does not exist, gitit will create it with default templates. Users
may wish to edit the templates to customize the appearance of their
···
absoluteUrls = mkOption {
type = types.bool;
default = false;
-
description = ''
Make wikilinks absolute with respect to the base-url. So, for
example, in a wiki served at the base URL '/wiki', on a page
-
Sub/Page, the wikilink '[Cactus]()' will produce a link to
'/wiki/Cactus' if absoluteUrls is true, and a relative link to
'Cactus' (referring to '/wiki/Sub/Cactus') if absolute-urls is 'no'.
'';
···
templatesDir = mkOption {
type = types.path;
default = gititShared + "/data/templates";
+
description = lib.mdDoc ''
Specifies the path of the directory containing page templates. If it
does not exist, gitit will create it with default templates. Users
may wish to edit the templates to customize the appearance of their
···
absoluteUrls = mkOption {
type = types.bool;
default = false;
+
description = lib.mdDoc ''
Make wikilinks absolute with respect to the base-url. So, for
example, in a wiki served at the base URL '/wiki', on a page
+
Sub/Page, the wikilink `[Cactus]()` will produce a link to
'/wiki/Cactus' if absoluteUrls is true, and a relative link to
'Cactus' (referring to '/wiki/Sub/Cactus') if absolute-urls is 'no'.
'';
+6 -6
nixos/modules/services/misc/nix-daemon.nix
···
sandbox-paths = { "/bin/sh" = "''${pkgs.busybox-sandbox-shell.out}/bin/busybox"; };
}
'';
-
description = ''
Configuration for Nix, see
-
<link xlink:href="https://nixos.org/manual/nix/stable/#sec-conf-file"/> or
-
<citerefentry><refentrytitle>nix.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> for avalaible options.
The value declared here will be translated directly to the key-value pairs Nix expects.
-
You can use <command>nix-instantiate --eval --strict '&lt;nixpkgs/nixos&gt;' -A config.nix.settings</command>
to view the current value. By default it is empty.
-
Nix configurations defined under <option>nix.*</option> will be translated and applied to this
-
option. In addition, configuration specified in <option>nix.extraOptions</option> which will be appended
verbatim to the resulting config file.
'';
};
···
sandbox-paths = { "/bin/sh" = "''${pkgs.busybox-sandbox-shell.out}/bin/busybox"; };
}
'';
+
description = lib.mdDoc ''
Configuration for Nix, see
+
<https://nixos.org/manual/nix/stable/#sec-conf-file> or
+
{manpage}`nix.conf(5)` for avalaible options.
The value declared here will be translated directly to the key-value pairs Nix expects.
+
You can use {command}`nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.nix.settings`
to view the current value. By default it is empty.
+
Nix configurations defined under {option}`nix.*` will be translated and applied to this
+
option. In addition, configuration specified in {option}`nix.extraOptions` which will be appended
verbatim to the resulting config file.
'';
};
+6 -6
nixos/modules/services/misc/persistent-evdev.nix
···
devices = lib.mkOption {
default = {};
type = with lib.types; attrsOf str;
-
description = ''
A set of virtual proxy device labels with backing physical device ids.
-
Physical devices should already exist in <filename class="devicefile">/dev/input/by-id/</filename>.
-
Proxy devices will be automatically given a <literal>uinput-</literal> prefix.
-
See the <link xlink:href="https://github.com/aiberia/persistent-evdev#example-usage-with-libvirt">project page</link>
for example configuration of virtual devices with libvirt
-
and remember to add <literal>uinput-*</literal> devices to the qemu
-
<literal>cgroup_device_acl</literal> list (see <xref linkend="opt-virtualisation.libvirtd.qemu.verbatimConfig"/>).
'';
example = lib.literalExpression ''
{
···
devices = lib.mkOption {
default = {};
type = with lib.types; attrsOf str;
+
description = lib.mdDoc ''
A set of virtual proxy device labels with backing physical device ids.
+
Physical devices should already exist in {file}`/dev/input/by-id/`.
+
Proxy devices will be automatically given a `uinput-` prefix.
+
See the [project page](https://github.com/aiberia/persistent-evdev#example-usage-with-libvirt)
for example configuration of virtual devices with libvirt
+
and remember to add `uinput-*` devices to the qemu
+
`cgroup_device_acl` list (see [](#opt-virtualisation.libvirtd.qemu.verbatimConfig)).
'';
example = lib.literalExpression ''
{
+3 -3
nixos/modules/services/monitoring/prometheus/exporters.nix
···
example = literalExpression ''
"-i eth0 -p tcp -m tcp --dport ${toString port}"
'';
-
description = ''
Specify a filter for iptables to use when
-
<option>services.prometheus.exporters.${name}.openFirewall</option>
-
is true. It is used as `ip46tables -I nixos-fw <option>firewallFilter</option> -j nixos-fw-accept`.
'';
};
user = mkOption {
···
example = literalExpression ''
"-i eth0 -p tcp -m tcp --dport ${toString port}"
'';
+
description = lib.mdDoc ''
Specify a filter for iptables to use when
+
{option}`services.prometheus.exporters.${name}.openFirewall`
+
is true. It is used as `ip46tables -I nixos-fw firewallFilter -j nixos-fw-accept`.
'';
};
user = mkOption {
+2 -2
nixos/modules/services/monitoring/smartd.nix
···
default = "root";
example = "example@domain.tld";
type = types.str;
-
description = ''
Sender of the notification messages.
-
Acts as the value of <literal>email</literal> in the emails' <literal>From: ... </literal> field.
'';
};
···
default = "root";
example = "example@domain.tld";
type = types.str;
+
description = lib.mdDoc ''
Sender of the notification messages.
+
Acts as the value of `email` in the emails' `From: ...` field.
'';
};
+2 -2
nixos/modules/services/networking/3proxy.nix
···
type = types.listOf types.str;
default = [ ];
example = [ "127.0.0.1" "192.168.1.0/24" ];
-
description = ''
List of target IP ranges, use empty list for any.
May also contain host names instead of addresses.
-
It's possible to use wildmask in the begginning and in the the end of hostname, e.g. *badsite.com or *badcontent*.
Hostname is only checked if hostname presents in request.
'';
};
···
type = types.listOf types.str;
default = [ ];
example = [ "127.0.0.1" "192.168.1.0/24" ];
+
description = lib.mdDoc ''
List of target IP ranges, use empty list for any.
May also contain host names instead of addresses.
+
It's possible to use wildmask in the begginning and in the the end of hostname, e.g. `*badsite.com` or `*badcontent*`.
Hostname is only checked if hostname presents in request.
'';
};
+2 -2
nixos/modules/services/networking/networkmanager.nix
···
type = mkOption {
type = types.enum (attrNames dispatcherTypesSubdirMap);
default = "basic";
-
description = ''
Dispatcher hook type. Look up the hooks described at
-
<link xlink:href="https://developer.gnome.org/NetworkManager/stable/NetworkManager.html">https://developer.gnome.org/NetworkManager/stable/NetworkManager.html</link>
and choose the type depending on the output folder.
You should then filter the event type (e.g., "up"/"down") from within your script.
'';
···
type = mkOption {
type = types.enum (attrNames dispatcherTypesSubdirMap);
default = "basic";
+
description = lib.mdDoc ''
Dispatcher hook type. Look up the hooks described at
+
[https://developer.gnome.org/NetworkManager/stable/NetworkManager.html](https://developer.gnome.org/NetworkManager/stable/NetworkManager.html)
and choose the type depending on the output folder.
You should then filter the event type (e.g., "up"/"down") from within your script.
'';
+13 -12
nixos/modules/services/networking/wireguard.nix
···
default = null;
example = "demo.wireguard.io:12913";
type = with types; nullOr str;
-
description = ''Endpoint IP or hostname of the peer, followed by a colon,
-
and then a port number of the peer.
-
Warning for endpoints with changing IPs:
-
The WireGuard kernel side cannot perform DNS resolution.
-
Thus DNS resolution is done once by the <literal>wg</literal> userspace
-
utility, when setting up WireGuard. Consequently, if the IP address
-
behind the name changes, WireGuard will not notice.
-
This is especially common for dynamic-DNS setups, but also applies to
-
any other DNS-based setup.
-
If you do not use IP endpoints, you likely want to set
-
<option>networking.wireguard.dynamicEndpointRefreshSeconds</option>
-
to refresh the IPs periodically.
'';
};
···
default = null;
example = "demo.wireguard.io:12913";
type = with types; nullOr str;
+
description = lib.mdDoc ''
+
Endpoint IP or hostname of the peer, followed by a colon,
+
and then a port number of the peer.
+
Warning for endpoints with changing IPs:
+
The WireGuard kernel side cannot perform DNS resolution.
+
Thus DNS resolution is done once by the `wg` userspace
+
utility, when setting up WireGuard. Consequently, if the IP address
+
behind the name changes, WireGuard will not notice.
+
This is especially common for dynamic-DNS setups, but also applies to
+
any other DNS-based setup.
+
If you do not use IP endpoints, you likely want to set
+
{option}`networking.wireguard.dynamicEndpointRefreshSeconds`
+
to refresh the IPs periodically.
'';
};
+8 -8
nixos/modules/services/networking/znc/default.nix
···
};
}
'';
-
description = ''
Configuration for ZNC, see
-
<link xlink:href="https://wiki.znc.in/Configuration"/> for details. The
Nix value declared here will be translated directly to the xml-like
format ZNC expects. This is much more flexible than the legacy options
-
under <option>services.znc.confOptions.*</option>, but also can't do
any type checking.
-
You can use <command>nix-instantiate --eval --strict '&lt;nixpkgs/nixos&gt;' -A config.services.znc.config</command>
to view the current value. By default it contains a listener for port
5000 with SSL enabled.
-
Nix attributes called <literal>extraConfig</literal> will be inserted
verbatim into the resulting config file.
-
If <option>services.znc.useLegacyConfig</option> is turned on, the
-
option values in <option>services.znc.confOptions.*</option> will be
gracefully be applied to this option.
If you intend to update the configuration through this option, be sure
-
to enable <option>services.znc.mutable</option>, otherwise none of the
changes here will be applied after the initial deploy.
'';
};
···
};
}
'';
+
description = lib.mdDoc ''
Configuration for ZNC, see
+
<https://wiki.znc.in/Configuration> for details. The
Nix value declared here will be translated directly to the xml-like
format ZNC expects. This is much more flexible than the legacy options
+
under {option}`services.znc.confOptions.*`, but also can't do
any type checking.
+
You can use {command}`nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.services.znc.config`
to view the current value. By default it contains a listener for port
5000 with SSL enabled.
+
Nix attributes called `extraConfig` will be inserted
verbatim into the resulting config file.
+
If {option}`services.znc.useLegacyConfig` is turned on, the
+
option values in {option}`services.znc.confOptions.*` will be
gracefully be applied to this option.
If you intend to update the configuration through this option, be sure
+
to enable {option}`services.znc.mutable`, otherwise none of the
changes here will be applied after the initial deploy.
'';
};
+8 -8
nixos/modules/services/networking/znc/options.nix
···
useLegacyConfig = mkOption {
default = true;
type = types.bool;
-
description = ''
Whether to propagate the legacy options under
-
<option>services.znc.confOptions.*</option> to the znc config. If this
is turned on, the znc config will contain a user with the default name
"znc", global modules "webadmin" and "adminlog" will be enabled by
default, and more, all controlled through the
-
<option>services.znc.confOptions.*</option> options.
-
You can use <command>nix-instantiate --eval --strict '&lt;nixpkgs/nixos&gt;' -A config.services.znc.config</command>
to view the current value of the config.
In any case, if you need more flexibility,
-
<option>services.znc.config</option> can be used to override/add to
all of the legacy options.
'';
};
···
&lt;/Pass&gt;
'';
type = types.str;
-
description = ''
-
Generate with <command>nix-shell -p znc --command "znc --makepass"</command>.
This is the password used to log in to the ZNC web admin interface.
You can also set this through
-
<option>services.znc.config.User.&lt;username&gt;.Pass.Method</option>
and co.
'';
};
···
useLegacyConfig = mkOption {
default = true;
type = types.bool;
+
description = lib.mdDoc ''
Whether to propagate the legacy options under
+
{option}`services.znc.confOptions.*` to the znc config. If this
is turned on, the znc config will contain a user with the default name
"znc", global modules "webadmin" and "adminlog" will be enabled by
default, and more, all controlled through the
+
{option}`services.znc.confOptions.*` options.
+
You can use {command}`nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.services.znc.config`
to view the current value of the config.
In any case, if you need more flexibility,
+
{option}`services.znc.config` can be used to override/add to
all of the legacy options.
'';
};
···
&lt;/Pass&gt;
'';
type = types.str;
+
description = lib.mdDoc ''
+
Generate with {command}`nix-shell -p znc --command "znc --makepass"`.
This is the password used to log in to the ZNC web admin interface.
You can also set this through
+
{option}`services.znc.config.User.<username>.Pass.Method`
and co.
'';
};
+5 -5
nixos/modules/services/security/tor.nix
···
};
relay = {
-
enable = mkEnableOption "tor relaying" // {
-
description = ''
Whether to enable relaying of Tor traffic for others.
-
See <link xlink:href="https://www.torproject.org/docs/tor-doc-relay"/>
for details.
Setting this to true requires setting
-
<option>services.tor.relay.role</option>
and
-
<option>services.tor.settings.ORPort</option>
options.
'';
};
···
};
relay = {
+
enable = mkEnableOption (lib.mdDoc "tor relaying") // {
+
description = lib.mdDoc ''
Whether to enable relaying of Tor traffic for others.
+
See <https://www.torproject.org/docs/tor-doc-relay>
for details.
Setting this to true requires setting
+
{option}`services.tor.relay.role`
and
+
{option}`services.tor.settings.ORPort`
options.
'';
};
+9 -9
nixos/modules/services/security/vaultwarden/default.nix
···
SMTP_FROM_NAME = "example.com Bitwarden server";
}
'';
-
description = ''
The configuration of vaultwarden is done through environment variables,
-
therefore it is recommended to use upper snake case (e.g. <envar>DISABLE_2FA_REMEMBER</envar>).
-
However, camel case (e.g. <literal>disable2FARemember</literal>) is also supported:
The NixOS module will convert it automatically to
-
upper case snake case (e.g. <envar>DISABLE_2FA_REMEMBER</envar>).
In this conversion digits (0-9) are handled just like upper case characters,
-
so <literal>foo2</literal> would be converted to <envar>FOO_2</envar>.
-
Names already in this format remain unchanged, so <literal>FOO2</literal> remains <literal>FOO2</literal> if passed as such,
-
even though <literal>foo2</literal> would have been converted to <envar>FOO_2</envar>.
This allows working around any potential future conflicting naming conventions.
Based on the attributes passed to this config option an environment file will be generated
that is passed to vaultwarden's systemd service.
The available configuration options can be found in
-
<link xlink:href="https://github.com/dani-garcia/vaultwarden/blob/${vaultwarden.version}/.env.template">the environment template file</link>.
-
See <xref linkend="opt-services.vaultwarden.environmentFile"/> for how
to set up access to the Admin UI to invite initial users.
'';
};
···
SMTP_FROM_NAME = "example.com Bitwarden server";
}
'';
+
description = lib.mdDoc ''
The configuration of vaultwarden is done through environment variables,
+
therefore it is recommended to use upper snake case (e.g. {env}`DISABLE_2FA_REMEMBER`).
+
However, camel case (e.g. `disable2FARemember`) is also supported:
The NixOS module will convert it automatically to
+
upper case snake case (e.g. {env}`DISABLE_2FA_REMEMBER`).
In this conversion digits (0-9) are handled just like upper case characters,
+
so `foo2` would be converted to {env}`FOO_2`.
+
Names already in this format remain unchanged, so `FOO2` remains `FOO2` if passed as such,
+
even though `foo2` would have been converted to {env}`FOO_2`.
This allows working around any potential future conflicting naming conventions.
Based on the attributes passed to this config option an environment file will be generated
that is passed to vaultwarden's systemd service.
The available configuration options can be found in
+
[the environment template file](https://github.com/dani-garcia/vaultwarden/blob/${vaultwarden.version}/.env.template).
+
See ()[#opt-services.vaultwarden.environmentFile) for how
to set up access to the Admin UI to invite initial users.
'';
};
+6 -6
nixos/modules/services/torrent/transmission.nix
···
];
options = {
services.transmission = {
-
enable = mkEnableOption "transmission" // {
-
description = ''
Whether to enable the headless Transmission BitTorrent daemon.
Transmission daemon can be controlled via the RPC interface using
transmission-remote, the WebUI (http://127.0.0.1:9091/ by default),
or other clients like stig or tremc.
-
Torrents are downloaded to <xref linkend="opt-services.transmission.home"/>/${downloadsDir} by default and are
accessible to users in the "transmission" group.
'';
};
···
openRPCPort = mkEnableOption (lib.mdDoc "opening of the RPC port in the firewall");
-
performanceNetParameters = mkEnableOption "performance tweaks" // {
-
description = ''
Whether to enable tweaking of kernel parameters
to open many more connections at the same time.
Note that you may also want to increase
-
<literal>peer-limit-global"</literal>.
And be aware that these settings are quite aggressive
and might not suite your regular desktop use.
For instance, SSH sessions may time out more easily.
···
];
options = {
services.transmission = {
+
enable = mkEnableOption (lib.mdDoc "transmission") // {
+
description = lib.mdDoc ''
Whether to enable the headless Transmission BitTorrent daemon.
Transmission daemon can be controlled via the RPC interface using
transmission-remote, the WebUI (http://127.0.0.1:9091/ by default),
or other clients like stig or tremc.
+
Torrents are downloaded to [](#opt-services.transmission.home)/${downloadsDir} by default and are
accessible to users in the "transmission" group.
'';
};
···
openRPCPort = mkEnableOption (lib.mdDoc "opening of the RPC port in the firewall");
+
performanceNetParameters = mkEnableOption (lib.mdDoc "performance tweaks") // {
+
description = lib.mdDoc ''
Whether to enable tweaking of kernel parameters
to open many more connections at the same time.
Note that you may also want to increase
+
`peer-limit-global`.
And be aware that these settings are quite aggressive
and might not suite your regular desktop use.
For instance, SSH sessions may time out more easily.
+9 -4
nixos/modules/services/web-apps/dokuwiki.nix
···
usersFile = mkOption {
type = with types; nullOr str;
default = if config.aclUse then "/var/lib/dokuwiki/${name}/users.auth.php" else null;
-
description = ''
Location of the dokuwiki users file. List of users. Format:
-
login:passwordhash:Real Name:email:groups,comma,separated
-
Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1`
-
Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/users.auth.php.dist"/>
'';
example = "/var/lib/dokuwiki/${name}/users.auth.php";
};
···
usersFile = mkOption {
type = with types; nullOr str;
default = if config.aclUse then "/var/lib/dokuwiki/${name}/users.auth.php" else null;
+
description = lib.mdDoc ''
Location of the dokuwiki users file. List of users. Format:
+
+
login:passwordhash:Real Name:email:groups,comma,separated
+
+
Create passwordHash easily by using:
+
+
mkpasswd -5 password `pwgen 8 1`
+
+
Example: <https://github.com/splitbrain/dokuwiki/blob/master/conf/users.auth.php.dist>
'';
example = "/var/lib/dokuwiki/${name}/users.auth.php";
};
+6 -6
nixos/modules/services/web-apps/jirafeau.nix
···
$cfg['style'] = 'courgette';
$cfg['organisation'] = 'ACME';
'';
-
description = let
documentationLink =
"https://gitlab.com/mojo42/Jirafeau/-/blob/${cfg.package.version}/lib/config.original.php";
in
-
''
-
Jirefeau configuration. Refer to <link xlink:href="${documentationLink}"/> for supported
values.
'';
};
···
description = let
nginxCoreDocumentation = "http://nginx.org/en/docs/http/ngx_http_core_module.html";
in
-
''
Timeout for reading client request bodies and headers. Refer to
-
<link xlink:href="${nginxCoreDocumentation}#client_body_timeout"/> and
-
<link xlink:href="${nginxCoreDocumentation}#client_header_timeout"/> for accepted values.
'';
};
···
$cfg['style'] = 'courgette';
$cfg['organisation'] = 'ACME';
'';
+
description = let
documentationLink =
"https://gitlab.com/mojo42/Jirafeau/-/blob/${cfg.package.version}/lib/config.original.php";
in
+
lib.mdDoc ''
+
Jirefeau configuration. Refer to <${documentationLink}> for supported
values.
'';
};
···
description = let
nginxCoreDocumentation = "http://nginx.org/en/docs/http/ngx_http_core_module.html";
in
+
lib.mdDoc ''
Timeout for reading client request bodies and headers. Refer to
+
<${nginxCoreDocumentation}#client_body_timeout> and
+
<${nginxCoreDocumentation}#client_header_timeout> for accepted values.
'';
};
+6 -6
nixos/modules/services/web-apps/mastodon.nix
···
enable = lib.mkEnableOption (lib.mdDoc "Mastodon, a federated social network server");
configureNginx = lib.mkOption {
-
description = ''
Configure nginx as a reverse proxy for mastodon.
Note that this makes some assumptions on your setup, and sets settings that will
affect other virtualHosts running on your nginx instance, if any.
Alternatively you can configure a reverse-proxy of your choice to serve these paths:
-
<literal>/ -> $(nix-instantiate --eval '&lt;nixpkgs&gt;' -A mastodon.outPath)/public</literal>
-
<literal>/ -> 127.0.0.1:{{ webPort }} </literal>(If there was no file in the directory above.)
-
<literal>/system/ -> /var/lib/mastodon/public-system/</literal>
-
<literal>/api/v1/streaming/ -> 127.0.0.1:{{ streamingPort }}</literal>
Make sure that websockets are forwarded properly. You might want to set up caching
of some requests. Take a look at mastodon's provided nginx configuration at
-
<literal>https://github.com/mastodon/mastodon/blob/master/dist/nginx.conf</literal>.
'';
type = lib.types.bool;
default = false;
···
enable = lib.mkEnableOption (lib.mdDoc "Mastodon, a federated social network server");
configureNginx = lib.mkOption {
+
description = lib.mdDoc ''
Configure nginx as a reverse proxy for mastodon.
Note that this makes some assumptions on your setup, and sets settings that will
affect other virtualHosts running on your nginx instance, if any.
Alternatively you can configure a reverse-proxy of your choice to serve these paths:
+
`/ -> $(nix-instantiate --eval '<nixpkgs>' -A mastodon.outPath)/public`
+
`/ -> 127.0.0.1:{{ webPort }} `(If there was no file in the directory above.)
+
`/system/ -> /var/lib/mastodon/public-system/`
+
`/api/v1/streaming/ -> 127.0.0.1:{{ streamingPort }}`
Make sure that websockets are forwarded properly. You might want to set up caching
of some requests. Take a look at mastodon's provided nginx configuration at
+
`https://github.com/mastodon/mastodon/blob/master/dist/nginx.conf`.
'';
type = lib.types.bool;
default = false;
+3 -3
nixos/modules/services/web-apps/matomo.nix
···
type = types.nullOr types.str;
default = null;
example = "lighttpd";
-
description = ''
-
Name of the web server user that forwards requests to <option>services.phpfpm.pools.&lt;name&gt;.socket</option> the fastcgi socket for Matomo if the nginx
option is not used. Either this option or the nginx option is mandatory.
If you want to use another webserver than nginx, you need to set this to that server's user
-
and pass fastcgi requests to <literal>index.php</literal>, <literal>matomo.php</literal> and <literal>piwik.php</literal> (legacy name) to this socket.
'';
};
···
type = types.nullOr types.str;
default = null;
example = "lighttpd";
+
description = lib.mdDoc ''
+
Name of the web server user that forwards requests to {option}`services.phpfpm.pools.<name>.socket` the fastcgi socket for Matomo if the nginx
option is not used. Either this option or the nginx option is mandatory.
If you want to use another webserver than nginx, you need to set this to that server's user
+
and pass fastcgi requests to `index.php`, `matomo.php` and `piwik.php` (legacy name) to this socket.
'';
};
+3 -3
nixos/modules/services/web-apps/wiki-js.nix
···
'';
};
-
offline = mkEnableOption "offline mode" // {
-
description = ''
Disable latest file updates and enable
-
<link xlink:href="https://docs.requarks.io/install/sideload">sideloading</link>.
'';
};
};
···
'';
};
+
offline = mkEnableOption (lib.mdDoc "offline mode") // {
+
description = lib.mdDoc ''
Disable latest file updates and enable
+
[sideloading](https://docs.requarks.io/install/sideload).
'';
};
};
+4 -4
nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
···
useACMEHost = mkOption {
type = types.nullOr types.str;
default = null;
-
description = ''
A host of an existing Let's Encrypt certificate to use.
This is useful if you have many subdomains and want to avoid hitting the
-
<link xlink:href="https://letsencrypt.org/docs/rate-limits/">rate limit</link>.
-
Alternately, you can generate a certificate through <option>enableACME</option>.
-
<emphasis>Note that this option does not create any certificates, nor it does add subdomains to existing ones – you will need to create them manually using <xref linkend="opt-security.acme.certs"/>.</emphasis>
'';
};
···
useACMEHost = mkOption {
type = types.nullOr types.str;
default = null;
+
description = lib.mdDoc ''
A host of an existing Let's Encrypt certificate to use.
This is useful if you have many subdomains and want to avoid hitting the
+
[rate limit](https://letsencrypt.org/docs/rate-limits).
+
Alternately, you can generate a certificate through {option}`enableACME`.
+
*Note that this option does not create any certificates, nor it does add subdomains to existing ones – you will need to create them manually using [](#opt-security.acme.certs).*
'';
};
+2 -2
nixos/modules/services/web-servers/hitch/default.nix
···
frontend = mkOption {
type = types.either types.str (types.listOf types.str);
default = "[127.0.0.1]:443";
-
description = ''
The port and interface of the listen endpoint in the
-
+ form [HOST]:PORT[+CERT].
'';
apply = toList;
};
···
frontend = mkOption {
type = types.either types.str (types.listOf types.str);
default = "[127.0.0.1]:443";
+
description = lib.mdDoc ''
The port and interface of the listen endpoint in the
+
form [HOST]:PORT[+CERT].
'';
apply = toList;
};
+4 -4
nixos/modules/services/web-servers/nginx/vhost-options.nix
···
useACMEHost = mkOption {
type = types.nullOr types.str;
default = null;
-
description = ''
A host of an existing Let's Encrypt certificate to use.
This is useful if you have many subdomains and want to avoid hitting the
-
<link xlink:href="https://letsencrypt.org/docs/rate-limits/">rate limit</link>.
-
Alternately, you can generate a certificate through <option>enableACME</option>.
-
<emphasis>Note that this option does not create any certificates, nor it does add subdomains to existing ones – you will need to create them manually using <xref linkend="opt-security.acme.certs"/>.</emphasis>
'';
};
···
useACMEHost = mkOption {
type = types.nullOr types.str;
default = null;
+
description = lib.mdDoc ''
A host of an existing Let's Encrypt certificate to use.
This is useful if you have many subdomains and want to avoid hitting the
+
[rate limit](https://letsencrypt.org/docs/rate-limits).
+
Alternately, you can generate a certificate through {option}`enableACME`.
+
*Note that this option does not create any certificates, nor it does add subdomains to existing ones – you will need to create them manually using [](#opt-security.acme.certs).*
'';
};
+2 -2
nixos/modules/system/activation/activation-script.nix
···
supportsDryActivation = mkOption
{ type = types.bool;
default = false;
-
description = ''
Whether this activation script supports being dry-activated.
These activation scripts will also be executed on dry-activate
activations with the environment variable
-
<literal>NIXOS_ACTION</literal> being set to <literal>dry-activate</literal>.
it's important that these activation scripts don't
modify anything about the system when the variable is set.
'';
···
supportsDryActivation = mkOption
{ type = types.bool;
default = false;
+
description = lib.mdDoc ''
Whether this activation script supports being dry-activated.
These activation scripts will also be executed on dry-activate
activations with the environment variable
+
`NIXOS_ACTION` being set to `dry-activate`.
it's important that these activation scripts don't
modify anything about the system when the variable is set.
'';
+2 -2
nixos/modules/system/boot/systemd/initrd.nix
···
in {
options.boot.initrd.systemd = {
-
enable = mkEnableOption "systemd in initrd" // {
-
description = ''
Whether to enable systemd in initrd.
Note: This is in very early development and is highly
···
in {
options.boot.initrd.systemd = {
+
enable = mkEnableOption (lib.mdDoc "systemd in initrd") // {
+
description = lib.mdDoc ''
Whether to enable systemd in initrd.
Note: This is in very early development and is highly
+3 -3
nixos/modules/virtualisation/kvmgt.nix
···
in {
options = {
virtualisation.kvmgt = {
-
enable = mkEnableOption ''
KVMGT (iGVT-g) VGPU support. Allows Qemu/KVM guests to share host's Intel integrated graphics card.
Currently only one graphical device can be shared. To allow users to access the device without root add them
-
to the kvm group: <literal>users.extraUsers.&lt;yourusername&gt;.extraGroups = [ "kvm" ];</literal>
-
'';
# multi GPU support is under the question
device = mkOption {
type = types.str;
···
in {
options = {
virtualisation.kvmgt = {
+
enable = mkEnableOption (lib.mdDoc ''
KVMGT (iGVT-g) VGPU support. Allows Qemu/KVM guests to share host's Intel integrated graphics card.
Currently only one graphical device can be shared. To allow users to access the device without root add them
+
to the kvm group: `users.extraUsers.<yourusername>.extraGroups = [ "kvm" ];`
+
'');
# multi GPU support is under the question
device = mkOption {
type = types.str;