Merge pull request #185474 from pennae/option-docs-md
nixos/*: more options md conversion
This commit is contained in:
commit
50f9b3107a
|
@ -26,13 +26,12 @@ in
|
||||||
{ "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }
|
{ "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }
|
||||||
'';
|
'';
|
||||||
type = types.attrsOf sysctlOption;
|
type = types.attrsOf sysctlOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Runtime parameters of the Linux kernel, as set by
|
Runtime parameters of the Linux kernel, as set by
|
||||||
<citerefentry><refentrytitle>sysctl</refentrytitle>
|
{manpage}`sysctl(8)`. Note that sysctl
|
||||||
<manvolnum>8</manvolnum></citerefentry>. Note that sysctl
|
|
||||||
parameters names must be enclosed in quotes
|
parameters names must be enclosed in quotes
|
||||||
(e.g. <literal>"vm.swappiness"</literal> instead of
|
(e.g. `"vm.swappiness"` instead of
|
||||||
<literal>vm.swappiness</literal>). The value of each
|
`vm.swappiness`). The value of each
|
||||||
parameter may be a string, integer, boolean, or null
|
parameter may be a string, integer, boolean, or null
|
||||||
(signifying the option will not appear at all).
|
(signifying the option will not appear at all).
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -39,26 +39,23 @@ in
|
||||||
environment.profileRelativeSessionVariables = mkOption {
|
environment.profileRelativeSessionVariables = mkOption {
|
||||||
type = types.attrsOf (types.listOf types.str);
|
type = types.attrsOf (types.listOf types.str);
|
||||||
example = { PATH = [ "/bin" ]; MANPATH = [ "/man" "/share/man" ]; };
|
example = { PATH = [ "/bin" ]; MANPATH = [ "/man" "/share/man" ]; };
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Attribute set of environment variable used in the global
|
Attribute set of environment variable used in the global
|
||||||
environment. These variables will be set by PAM early in the
|
environment. These variables will be set by PAM early in the
|
||||||
login process.
|
login process.
|
||||||
|
|
||||||
Variable substitution is available as described in
|
Variable substitution is available as described in
|
||||||
<citerefentry>
|
{manpage}`pam_env.conf(5)`.
|
||||||
<refentrytitle>pam_env.conf</refentrytitle>
|
|
||||||
<manvolnum>5</manvolnum>
|
|
||||||
</citerefentry>.
|
|
||||||
|
|
||||||
Each attribute maps to a list of relative paths. Each relative
|
Each attribute maps to a list of relative paths. Each relative
|
||||||
path is appended to the each profile of
|
path is appended to the each profile of
|
||||||
<option>environment.profiles</option> to form the content of
|
{option}`environment.profiles` to form the content of
|
||||||
the corresponding environment variable.
|
the corresponding environment variable.
|
||||||
|
|
||||||
Also, these variables are merged into
|
Also, these variables are merged into
|
||||||
<xref linkend="opt-environment.profileRelativeEnvVars"/> and it is
|
[](#opt-environment.profileRelativeEnvVars) and it is
|
||||||
therefore not possible to use PAM style variables such as
|
therefore not possible to use PAM style variables such as
|
||||||
<literal>@{HOME}</literal>.
|
`@{HOME}`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -454,23 +454,23 @@ in
|
||||||
|
|
||||||
isoImage.isoName = mkOption {
|
isoImage.isoName = mkOption {
|
||||||
default = "${config.isoImage.isoBaseName}.iso";
|
default = "${config.isoImage.isoBaseName}.iso";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Name of the generated ISO image file.
|
Name of the generated ISO image file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
isoImage.isoBaseName = mkOption {
|
isoImage.isoBaseName = mkOption {
|
||||||
default = "nixos";
|
default = "nixos";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Prefix of the name of the generated ISO image file.
|
Prefix of the name of the generated ISO image file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
isoImage.compressImage = mkOption {
|
isoImage.compressImage = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether the ISO image should be compressed using
|
Whether the ISO image should be compressed using
|
||||||
<command>zstd</command>.
|
{command}`zstd`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -481,7 +481,7 @@ in
|
||||||
+ lib.optionalString isAarch "-Xbcj arm"
|
+ lib.optionalString isAarch "-Xbcj arm"
|
||||||
+ lib.optionalString (isPower && is32bit && isBigEndian) "-Xbcj powerpc"
|
+ lib.optionalString (isPower && is32bit && isBigEndian) "-Xbcj powerpc"
|
||||||
+ lib.optionalString (isSparc) "-Xbcj sparc";
|
+ lib.optionalString (isSparc) "-Xbcj sparc";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Compression settings to use for the squashfs nix store.
|
Compression settings to use for the squashfs nix store.
|
||||||
'';
|
'';
|
||||||
example = "zstd -Xcompression-level 6";
|
example = "zstd -Xcompression-level 6";
|
||||||
|
@ -489,7 +489,7 @@ in
|
||||||
|
|
||||||
isoImage.edition = mkOption {
|
isoImage.edition = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies which edition string to use in the volume ID of the generated
|
Specifies which edition string to use in the volume ID of the generated
|
||||||
ISO image.
|
ISO image.
|
||||||
'';
|
'';
|
||||||
|
@ -498,7 +498,7 @@ in
|
||||||
isoImage.volumeID = mkOption {
|
isoImage.volumeID = mkOption {
|
||||||
# nixos-$EDITION-$RELEASE-$ARCH
|
# nixos-$EDITION-$RELEASE-$ARCH
|
||||||
default = "nixos${optionalString (config.isoImage.edition != "") "-${config.isoImage.edition}"}-${config.system.nixos.release}-${pkgs.stdenv.hostPlatform.uname.processor}";
|
default = "nixos${optionalString (config.isoImage.edition != "") "-${config.isoImage.edition}"}-${config.system.nixos.release}-${pkgs.stdenv.hostPlatform.uname.processor}";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the label or volume ID of the generated ISO image.
|
Specifies the label or volume ID of the generated ISO image.
|
||||||
Note that the label is used by stage 1 of the boot process to
|
Note that the label is used by stage 1 of the boot process to
|
||||||
mount the CD, so it should be reasonably distinctive.
|
mount the CD, so it should be reasonably distinctive.
|
||||||
|
@ -512,7 +512,7 @@ in
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option lists files to be copied to fixed locations in the
|
This option lists files to be copied to fixed locations in the
|
||||||
generated ISO image.
|
generated ISO image.
|
||||||
'';
|
'';
|
||||||
|
@ -520,7 +520,7 @@ in
|
||||||
|
|
||||||
isoImage.storeContents = mkOption {
|
isoImage.storeContents = mkOption {
|
||||||
example = literalExpression "[ pkgs.stdenv ]";
|
example = literalExpression "[ pkgs.stdenv ]";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option lists additional derivations to be included in the
|
This option lists additional derivations to be included in the
|
||||||
Nix store in the generated ISO image.
|
Nix store in the generated ISO image.
|
||||||
'';
|
'';
|
||||||
|
@ -528,7 +528,7 @@ in
|
||||||
|
|
||||||
isoImage.includeSystemBuildDependencies = mkOption {
|
isoImage.includeSystemBuildDependencies = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Set this option to include all the needed sources etc in the
|
Set this option to include all the needed sources etc in the
|
||||||
image. It significantly increases image size. Use that when
|
image. It significantly increases image size. Use that when
|
||||||
you want to be able to keep all the sources needed to build your
|
you want to be able to keep all the sources needed to build your
|
||||||
|
@ -539,14 +539,14 @@ in
|
||||||
|
|
||||||
isoImage.makeEfiBootable = mkOption {
|
isoImage.makeEfiBootable = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether the ISO image should be an efi-bootable volume.
|
Whether the ISO image should be an efi-bootable volume.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
isoImage.makeUsbBootable = mkOption {
|
isoImage.makeUsbBootable = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether the ISO image should be bootable from CD as well as USB.
|
Whether the ISO image should be bootable from CD as well as USB.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -556,7 +556,7 @@ in
|
||||||
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png";
|
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png";
|
||||||
sha256 = "18lfwmp8yq923322nlb9gxrh5qikj1wsk6g5qvdh31c4h5b1538x";
|
sha256 = "18lfwmp8yq923322nlb9gxrh5qikj1wsk6g5qvdh31c4h5b1538x";
|
||||||
};
|
};
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The splash image to use in the EFI bootloader.
|
The splash image to use in the EFI bootloader.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -566,7 +566,7 @@ in
|
||||||
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png";
|
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png";
|
||||||
sha256 = "1wp822zrhbg4fgfbwkr7cbkr4labx477209agzc0hr6k62fr6rxd";
|
sha256 = "1wp822zrhbg4fgfbwkr7cbkr4labx477209agzc0hr6k62fr6rxd";
|
||||||
};
|
};
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The splash image to use in the legacy-boot bootloader.
|
The splash image to use in the legacy-boot bootloader.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -574,7 +574,7 @@ in
|
||||||
isoImage.grubTheme = mkOption {
|
isoImage.grubTheme = mkOption {
|
||||||
default = pkgs.nixos-grub2-theme;
|
default = pkgs.nixos-grub2-theme;
|
||||||
type = types.nullOr (types.either types.path types.package);
|
type = types.nullOr (types.either types.path types.package);
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The grub2 theme used for UEFI boot.
|
The grub2 theme used for UEFI boot.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -605,7 +605,7 @@ in
|
||||||
MENU COLOR SEL 7;37;40 #FFFFFFFF #FF5277C3 std
|
MENU COLOR SEL 7;37;40 #FFFFFFFF #FF5277C3 std
|
||||||
'';
|
'';
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The syslinux theme used for BIOS boot.
|
The syslinux theme used for BIOS boot.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -613,12 +613,12 @@ in
|
||||||
isoImage.appendToMenuLabel = mkOption {
|
isoImage.appendToMenuLabel = mkOption {
|
||||||
default = " Installer";
|
default = " Installer";
|
||||||
example = " Live System";
|
example = " Live System";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The string to append after the menu label for the NixOS system.
|
The string to append after the menu label for the NixOS system.
|
||||||
This will be directly appended (without whitespace) to the NixOS version
|
This will be directly appended (without whitespace) to the NixOS version
|
||||||
string, like for example if it is set to <literal>XXX</literal>:
|
string, like for example if it is set to `XXX`:
|
||||||
|
|
||||||
<literal>NixOS 99.99-pre666XXX</literal>
|
`NixOS 99.99-pre666XXX`
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ with lib;
|
||||||
|
|
||||||
netboot.storeContents = mkOption {
|
netboot.storeContents = mkOption {
|
||||||
example = literalExpression "[ pkgs.stdenv ]";
|
example = literalExpression "[ pkgs.stdenv ]";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option lists additional derivations to be included in the
|
This option lists additional derivations to be included in the
|
||||||
Nix store in the generated netboot image.
|
Nix store in the generated netboot image.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -160,9 +160,9 @@ in
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to install documentation of packages from
|
Whether to install documentation of packages from
|
||||||
<option>environment.systemPackages</option> into the generated system path.
|
{option}`environment.systemPackages` into the generated system path.
|
||||||
|
|
||||||
See "Multiple-output packages" chapter in the nixpkgs manual for more info.
|
See "Multiple-output packages" chapter in the nixpkgs manual for more info.
|
||||||
'';
|
'';
|
||||||
|
@ -172,9 +172,9 @@ in
|
||||||
man.enable = mkOption {
|
man.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to install manual pages.
|
Whether to install manual pages.
|
||||||
This also includes <literal>man</literal> outputs.
|
This also includes `man` outputs.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -193,8 +193,8 @@ in
|
||||||
info.enable = mkOption {
|
info.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to install info pages and the <command>info</command> command.
|
Whether to install info pages and the {command}`info` command.
|
||||||
This also includes "info" outputs.
|
This also includes "info" outputs.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -202,8 +202,8 @@ in
|
||||||
doc.enable = mkOption {
|
doc.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to install documentation distributed in packages' <literal>/share/doc</literal>.
|
Whether to install documentation distributed in packages' `/share/doc`.
|
||||||
Usually plain text and/or HTML.
|
Usually plain text and/or HTML.
|
||||||
This also includes "doc" outputs.
|
This also includes "doc" outputs.
|
||||||
'';
|
'';
|
||||||
|
@ -230,8 +230,7 @@ in
|
||||||
Whether to install NixOS's own documentation.
|
Whether to install NixOS's own documentation.
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>This includes man pages like
|
<listitem><para>This includes man pages like
|
||||||
<citerefentry><refentrytitle>configuration.nix</refentrytitle>
|
<citerefentry><refentrytitle>configuration.nix</refentrytitle><manvolnum>5</manvolnum></citerefentry> if <option>documentation.man.enable</option> is
|
||||||
<manvolnum>5</manvolnum></citerefentry> if <option>documentation.man.enable</option> is
|
|
||||||
set.</para></listitem>
|
set.</para></listitem>
|
||||||
<listitem><para>This includes the HTML manual and the <command>nixos-help</command> command if
|
<listitem><para>This includes the HTML manual and the <command>nixos-help</command> command if
|
||||||
<option>documentation.doc.enable</option> is set.</para></listitem>
|
<option>documentation.doc.enable</option> is set.</para></listitem>
|
||||||
|
@ -250,7 +249,7 @@ in
|
||||||
nixos.options.splitBuild = mkOption {
|
nixos.options.splitBuild = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to split the option docs build into a cacheable and an uncacheable part.
|
Whether to split the option docs build into a cacheable and an uncacheable part.
|
||||||
Splitting the build can substantially decrease the amount of time needed to build
|
Splitting the build can substantially decrease the amount of time needed to build
|
||||||
the manual, but some user modules may be incompatible with this splitting.
|
the manual, but some user modules may be incompatible with this splitting.
|
||||||
|
@ -260,7 +259,7 @@ in
|
||||||
nixos.options.warningsAreErrors = mkOption {
|
nixos.options.warningsAreErrors = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Treat warning emitted during the option documentation build (eg for missing option
|
Treat warning emitted during the option documentation build (eg for missing option
|
||||||
descriptions) as errors.
|
descriptions) as errors.
|
||||||
'';
|
'';
|
||||||
|
@ -269,18 +268,18 @@ in
|
||||||
nixos.includeAllModules = mkOption {
|
nixos.includeAllModules = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether the generated NixOS's documentation should include documentation for all
|
Whether the generated NixOS's documentation should include documentation for all
|
||||||
the options from all the NixOS modules included in the current
|
the options from all the NixOS modules included in the current
|
||||||
<literal>configuration.nix</literal>. Disabling this will make the manual
|
`configuration.nix`. Disabling this will make the manual
|
||||||
generator to ignore options defined outside of <literal>baseModules</literal>.
|
generator to ignore options defined outside of `baseModules`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos.extraModuleSources = mkOption {
|
nixos.extraModuleSources = mkOption {
|
||||||
type = types.listOf (types.either types.path types.str);
|
type = types.listOf (types.either types.path types.str);
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Which extra NixOS module paths the generated NixOS's documentation should strip
|
Which extra NixOS module paths the generated NixOS's documentation should strip
|
||||||
from options.
|
from options.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -39,16 +39,15 @@ in
|
||||||
type = str;
|
type = str;
|
||||||
default = "02:15";
|
default = "02:15";
|
||||||
example = "hourly";
|
example = "hourly";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Update the locate database at this interval. Updates by
|
Update the locate database at this interval. Updates by
|
||||||
default at 2:15 AM every day.
|
default at 2:15 AM every day.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
|
|
||||||
To disable automatic updates, set to <literal>"never"</literal>
|
To disable automatic updates, set to `"never"`
|
||||||
and run <command>updatedb</command> manually.
|
and run {command}`updatedb` manually.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -157,12 +157,12 @@ in
|
||||||
{ allowBroken = true; allowUnfree = true; }
|
{ allowBroken = true; allowUnfree = true; }
|
||||||
'';
|
'';
|
||||||
type = configType;
|
type = configType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The configuration of the Nix Packages collection. (For
|
The configuration of the Nix Packages collection. (For
|
||||||
details, see the Nixpkgs documentation.) It allows you to set
|
details, see the Nixpkgs documentation.) It allows you to set
|
||||||
package configuration options.
|
package configuration options.
|
||||||
|
|
||||||
Ignored when <literal>nixpkgs.pkgs</literal> is set.
|
Ignored when `nixpkgs.pkgs` is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -180,17 +180,17 @@ in
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
type = types.listOf overlayType;
|
type = types.listOf overlayType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of overlays to use with the Nix Packages collection.
|
List of overlays to use with the Nix Packages collection.
|
||||||
(For details, see the Nixpkgs documentation.) It allows
|
(For details, see the Nixpkgs documentation.) It allows
|
||||||
you to override packages globally. Each function in the list
|
you to override packages globally. Each function in the list
|
||||||
takes as an argument the <emphasis>original</emphasis> Nixpkgs.
|
takes as an argument the *original* Nixpkgs.
|
||||||
The first argument should be used for finding dependencies, and
|
The first argument should be used for finding dependencies, and
|
||||||
the second should be used for overriding recipes.
|
the second should be used for overriding recipes.
|
||||||
|
|
||||||
If <literal>nixpkgs.pkgs</literal> is set, overlays specified here
|
If `nixpkgs.pkgs` is set, overlays specified here
|
||||||
will be applied after the overlays that were already present
|
will be applied after the overlays that were already present
|
||||||
in <literal>nixpkgs.pkgs</literal>.
|
in `nixpkgs.pkgs`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -202,12 +202,12 @@ in
|
||||||
apply = lib.systems.elaborate;
|
apply = lib.systems.elaborate;
|
||||||
defaultText = literalExpression
|
defaultText = literalExpression
|
||||||
''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
|
''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the platform where the NixOS configuration will run.
|
Specifies the platform where the NixOS configuration will run.
|
||||||
|
|
||||||
To cross-compile, set also <literal>nixpkgs.buildPlatform</literal>.
|
To cross-compile, set also `nixpkgs.buildPlatform`.
|
||||||
|
|
||||||
Ignored when <literal>nixpkgs.pkgs</literal> is set.
|
Ignored when `nixpkgs.pkgs` is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ in
|
||||||
apply = lib.systems.elaborate;
|
apply = lib.systems.elaborate;
|
||||||
defaultText = literalExpression
|
defaultText = literalExpression
|
||||||
''config.nixpkgs.hostPlatform'';
|
''config.nixpkgs.hostPlatform'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the platform on which NixOS should be built.
|
Specifies the platform on which NixOS should be built.
|
||||||
By default, NixOS is built on the system where it runs, but you can
|
By default, NixOS is built on the system where it runs, but you can
|
||||||
change where it's built. Setting this option will cause NixOS to be
|
change where it's built. Setting this option will cause NixOS to be
|
||||||
|
@ -230,7 +230,7 @@ in
|
||||||
or if you're building machines, you can set this to match your
|
or if you're building machines, you can set this to match your
|
||||||
development system and/or build farm.
|
development system and/or build farm.
|
||||||
|
|
||||||
Ignored when <literal>nixpkgs.pkgs</literal> is set.
|
Ignored when `nixpkgs.pkgs` is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -243,25 +243,25 @@ in
|
||||||
apply = lib.systems.elaborate;
|
apply = lib.systems.elaborate;
|
||||||
defaultText = literalExpression
|
defaultText = literalExpression
|
||||||
''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
|
''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Systems with a recently generated <literal>hardware-configuration.nix</literal>
|
Systems with a recently generated `hardware-configuration.nix`
|
||||||
do not need to specify this option, unless cross-compiling, in which case
|
do not need to specify this option, unless cross-compiling, in which case
|
||||||
you should set <emphasis>only</emphasis> <option>nixpkgs.buildPlatform</option>.
|
you should set *only* {option}`nixpkgs.buildPlatform`.
|
||||||
|
|
||||||
If this is somehow not feasible, you may fall back to removing the
|
If this is somehow not feasible, you may fall back to removing the
|
||||||
<option>nixpkgs.hostPlatform</option> line from the generated config and
|
{option}`nixpkgs.hostPlatform` line from the generated config and
|
||||||
use the old options.
|
use the old options.
|
||||||
|
|
||||||
Specifies the platform on which NixOS should be built. When
|
Specifies the platform on which NixOS should be built. When
|
||||||
<literal>nixpkgs.crossSystem</literal> is unset, it also specifies
|
`nixpkgs.crossSystem` is unset, it also specifies
|
||||||
the platform <emphasis>for</emphasis> which NixOS should be
|
the platform *for* which NixOS should be
|
||||||
built. If this option is unset, it defaults to the platform
|
built. If this option is unset, it defaults to the platform
|
||||||
type of the machine where evaluation happens. Specifying this
|
type of the machine where evaluation happens. Specifying this
|
||||||
option is useful when doing distributed multi-platform
|
option is useful when doing distributed multi-platform
|
||||||
deployment, or when building virtual machines. See its
|
deployment, or when building virtual machines. See its
|
||||||
description in the Nixpkgs manual for more details.
|
description in the Nixpkgs manual for more details.
|
||||||
|
|
||||||
Ignored when <literal>nixpkgs.pkgs</literal> or <literal>hostPlatform</literal> is set.
|
Ignored when `nixpkgs.pkgs` or `hostPlatform` is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -272,20 +272,20 @@ in
|
||||||
type = types.nullOr types.attrs; # TODO utilize lib.systems.parsedPlatform
|
type = types.nullOr types.attrs; # TODO utilize lib.systems.parsedPlatform
|
||||||
default = null;
|
default = null;
|
||||||
example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
|
example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Systems with a recently generated <literal>hardware-configuration.nix</literal>
|
Systems with a recently generated `hardware-configuration.nix`
|
||||||
may instead specify <emphasis>only</emphasis> <option>nixpkgs.buildPlatform</option>,
|
may instead specify *only* {option}`nixpkgs.buildPlatform`,
|
||||||
or fall back to removing the <option>nixpkgs.hostPlatform</option> line from the generated config.
|
or fall back to removing the {option}`nixpkgs.hostPlatform` line from the generated config.
|
||||||
|
|
||||||
Specifies the platform for which NixOS should be
|
Specifies the platform for which NixOS should be
|
||||||
built. Specify this only if it is different from
|
built. Specify this only if it is different from
|
||||||
<literal>nixpkgs.localSystem</literal>, the platform
|
`nixpkgs.localSystem`, the platform
|
||||||
<emphasis>on</emphasis> which NixOS should be built. In other
|
*on* which NixOS should be built. In other
|
||||||
words, specify this to cross-compile NixOS. Otherwise it
|
words, specify this to cross-compile NixOS. Otherwise it
|
||||||
should be set as null, the default. See its description in the
|
should be set as null, the default. See its description in the
|
||||||
Nixpkgs manual for more details.
|
Nixpkgs manual for more details.
|
||||||
|
|
||||||
Ignored when <literal>nixpkgs.pkgs</literal> or <literal>hostPlatform</literal> is set.
|
Ignored when `nixpkgs.pkgs` or `hostPlatform` is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ in
|
||||||
|
|
||||||
installer.cloneConfig = mkOption {
|
installer.cloneConfig = mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Try to clone the installation-device configuration by re-using it's
|
Try to clone the installation-device configuration by re-using it's
|
||||||
profile from the list of imported modules.
|
profile from the list of imported modules.
|
||||||
'';
|
'';
|
||||||
|
@ -70,14 +70,14 @@ in
|
||||||
installer.cloneConfigIncludes = mkOption {
|
installer.cloneConfigIncludes = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "./nixos/modules/hardware/network/rt73.nix" ];
|
example = [ "./nixos/modules/hardware/network/rt73.nix" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of modules used to re-build this installation device profile.
|
List of modules used to re-build this installation device profile.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
installer.cloneConfigExtra = mkOption {
|
installer.cloneConfigExtra = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra text to include in the cloned configuration.nix included in this
|
Extra text to include in the cloned configuration.nix included in this
|
||||||
installer.
|
installer.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -451,10 +451,9 @@ let
|
||||||
renewInterval = mkOption {
|
renewInterval = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
inherit (defaultAndText "renewInterval" "daily") default defaultText;
|
inherit (defaultAndText "renewInterval" "daily") default defaultText;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Systemd calendar expression when to check for renewal. See
|
Systemd calendar expression when to check for renewal. See
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ in
|
||||||
if you want this service to do such killing
|
if you want this service to do such killing
|
||||||
by sending a <literal>SIGTERM</literal> to those running processes'';
|
by sending a <literal>SIGTERM</literal> to those running processes'';
|
||||||
policies = mkOption {
|
policies = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
AppArmor policies.
|
AppArmor policies.
|
||||||
'';
|
'';
|
||||||
type = types.attrsOf (types.submodule ({ name, config, ... }: {
|
type = types.attrsOf (types.submodule ({ name, config, ... }: {
|
||||||
|
@ -50,7 +50,7 @@ in
|
||||||
enable = mkDisableOption "loading of the profile into the kernel";
|
enable = mkDisableOption "loading of the profile into the kernel";
|
||||||
enforce = mkDisableOption "enforcing of the policy or only complain in the logs";
|
enforce = mkDisableOption "enforcing of the policy or only complain in the logs";
|
||||||
profile = mkOption {
|
profile = mkOption {
|
||||||
description = "The policy of the profile.";
|
description = lib.mdDoc "The policy of the profile.";
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
apply = pkgs.writeText name;
|
apply = pkgs.writeText name;
|
||||||
};
|
};
|
||||||
|
@ -61,16 +61,16 @@ in
|
||||||
includes = mkOption {
|
includes = mkOption {
|
||||||
type = types.attrsOf types.lines;
|
type = types.attrsOf types.lines;
|
||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of paths to be added to AppArmor's searched paths
|
List of paths to be added to AppArmor's searched paths
|
||||||
when resolving <literal>include</literal> directives.
|
when resolving `include` directives.
|
||||||
'';
|
'';
|
||||||
apply = mapAttrs pkgs.writeText;
|
apply = mapAttrs pkgs.writeText;
|
||||||
};
|
};
|
||||||
packages = mkOption {
|
packages = mkOption {
|
||||||
type = types.listOf types.package;
|
type = types.listOf types.package;
|
||||||
default = [];
|
default = [];
|
||||||
description = "List of packages to be added to AppArmor's include path";
|
description = lib.mdDoc "List of packages to be added to AppArmor's include path";
|
||||||
};
|
};
|
||||||
enableCache = mkEnableOption ''
|
enableCache = mkEnableOption ''
|
||||||
caching of AppArmor policies
|
caching of AppArmor policies
|
||||||
|
|
|
@ -314,8 +314,7 @@ let
|
||||||
Attribute set describing resource limits. Defaults to the
|
Attribute set describing resource limits. Defaults to the
|
||||||
value of <option>security.pam.loginLimits</option>.
|
value of <option>security.pam.loginLimits</option>.
|
||||||
The meaning of the values is explained in <citerefentry>
|
The meaning of the values is explained in <citerefentry>
|
||||||
<refentrytitle>limits.conf</refentrytitle><manvolnum>5</manvolnum>
|
<refentrytitle>limits.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||||
</citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -756,8 +755,7 @@ in
|
||||||
<varname>domain</varname>, <varname>type</varname>,
|
<varname>domain</varname>, <varname>type</varname>,
|
||||||
<varname>item</varname>, and <varname>value</varname>
|
<varname>item</varname>, and <varname>value</varname>
|
||||||
attribute. The syntax and semantics of these attributes
|
attribute. The syntax and semantics of these attributes
|
||||||
must be that described in <citerefentry><refentrytitle>limits.conf</refentrytitle>
|
must be that described in <citerefentry><refentrytitle>limits.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||||
<manvolnum>5</manvolnum></citerefentry>.
|
|
||||||
|
|
||||||
Note that these limits do not apply to systemd services,
|
Note that these limits do not apply to systemd services,
|
||||||
whose limits can be changed via <option>systemd.extraConfig</option>
|
whose limits can be changed via <option>systemd.extraConfig</option>
|
||||||
|
@ -838,17 +836,14 @@ in
|
||||||
control = mkOption {
|
control = mkOption {
|
||||||
default = "sufficient";
|
default = "sufficient";
|
||||||
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
|
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option sets pam "control".
|
This option sets pam "control".
|
||||||
If you want to have multi factor authentication, use "required".
|
If you want to have multi factor authentication, use "required".
|
||||||
If you want to use the PKCS#11 device instead of the regular password,
|
If you want to use the PKCS#11 device instead of the regular password,
|
||||||
use "sufficient".
|
use "sufficient".
|
||||||
|
|
||||||
Read
|
Read
|
||||||
<citerefentry>
|
{manpage}`pam.conf(5)`
|
||||||
<refentrytitle>pam.conf</refentrytitle>
|
|
||||||
<manvolnum>5</manvolnum>
|
|
||||||
</citerefentry>
|
|
||||||
for better understanding of this option.
|
for better understanding of this option.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -929,16 +924,13 @@ in
|
||||||
control = mkOption {
|
control = mkOption {
|
||||||
default = "sufficient";
|
default = "sufficient";
|
||||||
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
|
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option sets pam "control".
|
This option sets pam "control".
|
||||||
If you want to have multi factor authentication, use "required".
|
If you want to have multi factor authentication, use "required".
|
||||||
If you want to use U2F device instead of regular password, use "sufficient".
|
If you want to use U2F device instead of regular password, use "sufficient".
|
||||||
|
|
||||||
Read
|
Read
|
||||||
<citerefentry>
|
{manpage}`pam.conf(5)`
|
||||||
<refentrytitle>pam.conf</refentrytitle>
|
|
||||||
<manvolnum>5</manvolnum>
|
|
||||||
</citerefentry>
|
|
||||||
for better understanding of this option.
|
for better understanding of this option.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -1047,17 +1039,14 @@ in
|
||||||
control = mkOption {
|
control = mkOption {
|
||||||
default = "sufficient";
|
default = "sufficient";
|
||||||
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
|
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option sets pam "control".
|
This option sets pam "control".
|
||||||
If you want to have multi factor authentication, use "required".
|
If you want to have multi factor authentication, use "required".
|
||||||
If you want to use the SSH certificate instead of the regular password,
|
If you want to use the SSH certificate instead of the regular password,
|
||||||
use "sufficient".
|
use "sufficient".
|
||||||
|
|
||||||
Read
|
Read
|
||||||
<citerefentry>
|
{manpage}`pam.conf(5)`
|
||||||
<refentrytitle>pam.conf</refentrytitle>
|
|
||||||
<manvolnum>5</manvolnum>
|
|
||||||
</citerefentry>
|
|
||||||
for better understanding of this option.
|
for better understanding of this option.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -1082,16 +1071,13 @@ in
|
||||||
control = mkOption {
|
control = mkOption {
|
||||||
default = "sufficient";
|
default = "sufficient";
|
||||||
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
|
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option sets pam "control".
|
This option sets pam "control".
|
||||||
If you want to have multi factor authentication, use "required".
|
If you want to have multi factor authentication, use "required".
|
||||||
If you want to use Yubikey instead of regular password, use "sufficient".
|
If you want to use Yubikey instead of regular password, use "sufficient".
|
||||||
|
|
||||||
Read
|
Read
|
||||||
<citerefentry>
|
{manpage}`pam.conf(5)`
|
||||||
<refentrytitle>pam.conf</refentrytitle>
|
|
||||||
<manvolnum>5</manvolnum>
|
|
||||||
</citerefentry>
|
|
||||||
for better understanding of this option.
|
for better understanding of this option.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,12 +10,10 @@ in {
|
||||||
options.confinement.enable = lib.mkOption {
|
options.confinement.enable = lib.mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If set, all the required runtime store paths for this service are
|
If set, all the required runtime store paths for this service are
|
||||||
bind-mounted into a <literal>tmpfs</literal>-based <citerefentry>
|
bind-mounted into a `tmpfs`-based
|
||||||
<refentrytitle>chroot</refentrytitle>
|
{manpage}`chroot(2)`.
|
||||||
<manvolnum>2</manvolnum>
|
|
||||||
</citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -63,16 +61,13 @@ in {
|
||||||
default = toplevelConfig.environment.binsh;
|
default = toplevelConfig.environment.binsh;
|
||||||
defaultText = lib.literalExpression "config.environment.binsh";
|
defaultText = lib.literalExpression "config.environment.binsh";
|
||||||
example = lib.literalExpression ''"''${pkgs.dash}/bin/dash"'';
|
example = lib.literalExpression ''"''${pkgs.dash}/bin/dash"'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The program to make available as <filename>/bin/sh</filename> inside
|
The program to make available as {file}`/bin/sh` inside
|
||||||
the chroot. If this is set to <literal>null</literal>, no
|
the chroot. If this is set to `null`, no
|
||||||
<filename>/bin/sh</filename> is provided at all.
|
{file}`/bin/sh` is provided at all.
|
||||||
|
|
||||||
This is useful for some applications, which for example use the
|
This is useful for some applications, which for example use the
|
||||||
<citerefentry>
|
{manpage}`system(3)` library function to execute commands.
|
||||||
<refentrytitle>system</refentrytitle>
|
|
||||||
<manvolnum>3</manvolnum>
|
|
||||||
</citerefentry> library function to execute commands.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -88,10 +83,8 @@ in {
|
||||||
name space.
|
name space.
|
||||||
|
|
||||||
If this is set to <literal>chroot-only</literal>, only the file
|
If this is set to <literal>chroot-only</literal>, only the file
|
||||||
system name space is set up along with the call to <citerefentry>
|
system name space is set up along with the call to
|
||||||
<refentrytitle>chroot</refentrytitle>
|
<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
|
||||||
<manvolnum>2</manvolnum>
|
|
||||||
</citerefentry>.
|
|
||||||
|
|
||||||
<note><para>This doesn't cover network namespaces and is solely for
|
<note><para>This doesn't cover network namespaces and is solely for
|
||||||
file system level isolation.</para></note>
|
file system level isolation.</para></note>
|
||||||
|
|
|
@ -54,10 +54,7 @@ let
|
||||||
description = ''
|
description = ''
|
||||||
A comma-separated list of capabilities to be given to the wrapper
|
A comma-separated list of capabilities to be given to the wrapper
|
||||||
program. For capabilities supported by the system check the
|
program. For capabilities supported by the system check the
|
||||||
<citerefentry>
|
<citerefentry><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||||
<refentrytitle>capabilities</refentrytitle>
|
|
||||||
<manvolnum>7</manvolnum>
|
|
||||||
</citerefentry>
|
|
||||||
manual page.
|
manual page.
|
||||||
|
|
||||||
<note><para>
|
<note><para>
|
||||||
|
|
|
@ -320,13 +320,12 @@ in {
|
||||||
startAt = mkOption {
|
startAt = mkOption {
|
||||||
type = with types; either str (listOf str);
|
type = with types; either str (listOf str);
|
||||||
default = "daily";
|
default = "daily";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
When or how often the backup should run.
|
When or how often the backup should run.
|
||||||
Must be in the format described in
|
Must be in the format described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
If you do not want the backup to start
|
If you do not want the backup to start
|
||||||
automatically, use <literal>[ ]</literal>.
|
automatically, use `[ ]`.
|
||||||
It will generate a systemd service borgbackup-job-NAME.
|
It will generate a systemd service borgbackup-job-NAME.
|
||||||
You may trigger it manually via systemctl restart borgbackup-job-NAME.
|
You may trigger it manually via systemctl restart borgbackup-job-NAME.
|
||||||
'';
|
'';
|
||||||
|
@ -336,10 +335,9 @@ in {
|
||||||
default = false;
|
default = false;
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
example = true;
|
example = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Set the <literal>persistentTimer</literal> option for the
|
Set the `persistentTimer` option for the
|
||||||
<citerefentry><refentrytitle>systemd.timer</refentrytitle>
|
{manpage}`systemd.timer(5)`
|
||||||
<manvolnum>5</manvolnum></citerefentry>
|
|
||||||
which triggers the backup immediately if the last trigger
|
which triggers the backup immediately if the last trigger
|
||||||
was missed (e.g. if the system was powered down).
|
was missed (e.g. if the system was powered down).
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -27,30 +27,27 @@ in
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
example = [ "/home" ];
|
example = [ "/home" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of paths to include into the backups. See the FILE SELECTION
|
List of paths to include into the backups. See the FILE SELECTION
|
||||||
section in <citerefentry><refentrytitle>duplicity</refentrytitle>
|
section in {manpage}`duplicity(1)` for details on the syntax.
|
||||||
<manvolnum>1</manvolnum></citerefentry> for details on the syntax.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
exclude = mkOption {
|
exclude = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of paths to exclude from backups. See the FILE SELECTION section in
|
List of paths to exclude from backups. See the FILE SELECTION section in
|
||||||
<citerefentry><refentrytitle>duplicity</refentrytitle>
|
{manpage}`duplicity(1)` for details on the syntax.
|
||||||
<manvolnum>1</manvolnum></citerefentry> for details on the syntax.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
targetUrl = mkOption {
|
targetUrl = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "s3://host:port/prefix";
|
example = "s3://host:port/prefix";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Target url to backup to. See the URL FORMAT section in
|
Target url to backup to. See the URL FORMAT section in
|
||||||
<citerefentry><refentrytitle>duplicity</refentrytitle>
|
{manpage}`duplicity(1)` for supported urls.
|
||||||
<manvolnum>1</manvolnum></citerefentry> for supported urls.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,8 +57,7 @@ in
|
||||||
description = ''
|
description = ''
|
||||||
Path of a file containing secrets (gpg passphrase, access key...) in
|
Path of a file containing secrets (gpg passphrase, access key...) in
|
||||||
the format of EnvironmentFile as described by
|
the format of EnvironmentFile as described by
|
||||||
<citerefentry><refentrytitle>systemd.exec</refentrytitle>
|
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>. For example:
|
||||||
<manvolnum>5</manvolnum></citerefentry>. For example:
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
PASSPHRASE=«...»
|
PASSPHRASE=«...»
|
||||||
AWS_ACCESS_KEY_ID=«...»
|
AWS_ACCESS_KEY_ID=«...»
|
||||||
|
@ -73,10 +69,9 @@ in
|
||||||
frequency = mkOption {
|
frequency = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = "daily";
|
default = "daily";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Run duplicity with the given frequency (see
|
Run duplicity with the given frequency (see
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)` for the format).
|
||||||
<manvolnum>7</manvolnum></citerefentry> for the format).
|
|
||||||
If null, do not run automatically.
|
If null, do not run automatically.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -85,10 +80,9 @@ in
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
example = [ "--backend-retry-delay" "100" ];
|
example = [ "--backend-retry-delay" "100" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra command-line flags passed to duplicity. See
|
Extra command-line flags passed to duplicity. See
|
||||||
<citerefentry><refentrytitle>duplicity</refentrytitle>
|
{manpage}`duplicity(1)`.
|
||||||
<manvolnum>1</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -118,12 +118,11 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "hourly";
|
default = "hourly";
|
||||||
example = "daily";
|
example = "daily";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Run sanoid at this interval. The default is to run hourly.
|
Run sanoid at this interval. The default is to run hourly.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -89,12 +89,11 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "hourly";
|
default = "hourly";
|
||||||
example = "*-*-* *:15:00";
|
example = "*-*-* *:15:00";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Run syncoid at this interval. The default is to run hourly.
|
Run syncoid at this interval. The default is to run hourly.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -140,12 +140,11 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "01:15";
|
default = "01:15";
|
||||||
example = "hourly";
|
example = "hourly";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Create archive at this interval.
|
Create archive at this interval.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,9 @@ with lib;
|
||||||
"fs.defaultFS" = "hdfs://localhost";
|
"fs.defaultFS" = "hdfs://localhost";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Hadoop core-site.xml definition
|
Hadoop core-site.xml definition
|
||||||
<link xlink:href="https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml"/>
|
<https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
coreSiteInternal = mkOption {
|
coreSiteInternal = mkOption {
|
||||||
|
@ -38,7 +38,7 @@ with lib;
|
||||||
"dfs.namenode.http-bind-host" = "0.0.0.0";
|
"dfs.namenode.http-bind-host" = "0.0.0.0";
|
||||||
};
|
};
|
||||||
type = types.attrsOf types.anything;
|
type = types.attrsOf types.anything;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Default options for hdfs-site.xml
|
Default options for hdfs-site.xml
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -50,9 +50,9 @@ with lib;
|
||||||
"dfs.nameservices" = "namenode1";
|
"dfs.nameservices" = "namenode1";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Additional options and overrides for hdfs-site.xml
|
Additional options and overrides for hdfs-site.xml
|
||||||
<link xlink:href="https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml"/>
|
<https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
hdfsSiteInternal = mkOption {
|
hdfsSiteInternal = mkOption {
|
||||||
|
@ -80,7 +80,7 @@ with lib;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
type = types.attrsOf types.anything;
|
type = types.attrsOf types.anything;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Default options for mapred-site.xml
|
Default options for mapred-site.xml
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -92,9 +92,9 @@ with lib;
|
||||||
"mapreduce.map.java.opts" = "-Xmx900m -XX:+UseParallelGC";
|
"mapreduce.map.java.opts" = "-Xmx900m -XX:+UseParallelGC";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Additional options and overrides for mapred-site.xml
|
Additional options and overrides for mapred-site.xml
|
||||||
<link xlink:href="https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml"/>
|
<https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ with lib;
|
||||||
"yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler";
|
"yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler";
|
||||||
};
|
};
|
||||||
type = types.attrsOf types.anything;
|
type = types.attrsOf types.anything;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Default options for yarn-site.xml
|
Default options for yarn-site.xml
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -125,9 +125,9 @@ with lib;
|
||||||
"yarn.resourcemanager.hostname" = "''${config.networking.hostName}";
|
"yarn.resourcemanager.hostname" = "''${config.networking.hostName}";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Additional options and overrides for yarn-site.xml
|
Additional options and overrides for yarn-site.xml
|
||||||
<link xlink:href="https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml"/>
|
<https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
yarnSiteInternal = mkOption {
|
yarnSiteInternal = mkOption {
|
||||||
|
@ -147,9 +147,9 @@ with lib;
|
||||||
"hadoop.http.max.threads" = 500;
|
"hadoop.http.max.threads" = 500;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Hadoop httpfs-site.xml definition
|
Hadoop httpfs-site.xml definition
|
||||||
<link xlink:href="https://hadoop.apache.org/docs/current/hadoop-hdfs-httpfs/httpfs-default.html"/>
|
<https://hadoop.apache.org/docs/current/hadoop-hdfs-httpfs/httpfs-default.html>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ with lib;
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
"''${pkgs.hadoop}/lib/''${pkgs.hadoop.untarDir}/etc/hadoop/log4j.properties";
|
"''${pkgs.hadoop}/lib/''${pkgs.hadoop.untarDir}/etc/hadoop/log4j.properties";
|
||||||
'';
|
'';
|
||||||
description = "log4j.properties file added to HADOOP_CONF_DIR";
|
description = lib.mdDoc "log4j.properties file added to HADOOP_CONF_DIR";
|
||||||
};
|
};
|
||||||
|
|
||||||
containerExecutorCfg = mkOption {
|
containerExecutorCfg = mkOption {
|
||||||
|
@ -179,9 +179,9 @@ with lib;
|
||||||
"feature.terminal.enabled" = 0;
|
"feature.terminal.enabled" = 0;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Yarn container-executor.cfg definition
|
Yarn container-executor.cfg definition
|
||||||
<link xlink:href="https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/SecureContainer.html"/>
|
<https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/SecureContainer.html>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ with lib;
|
||||||
./extraYARNConfs
|
./extraYARNConfs
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
description = "Directories containing additional config files to be added to HADOOP_CONF_DIR";
|
description = lib.mdDoc "Directories containing additional config files to be added to HADOOP_CONF_DIR";
|
||||||
};
|
};
|
||||||
|
|
||||||
gatewayRole.enable = mkEnableOption "gateway role for deploying hadoop configs";
|
gatewayRole.enable = mkEnableOption "gateway role for deploying hadoop configs";
|
||||||
|
|
|
@ -109,10 +109,9 @@ in
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra configuration for <literal>slurmdbd.conf</literal> See also:
|
Extra configuration for `slurmdbd.conf` See also:
|
||||||
<citerefentry><refentrytitle>slurmdbd.conf</refentrytitle>
|
{manpage}`slurmdbd.conf(8)`.
|
||||||
<manvolnum>8</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,22 +24,22 @@ in
|
||||||
|
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
default = "rethinkdb";
|
default = "rethinkdb";
|
||||||
description = "User account under which RethinkDB runs.";
|
description = lib.mdDoc "User account under which RethinkDB runs.";
|
||||||
};
|
};
|
||||||
|
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
default = "rethinkdb";
|
default = "rethinkdb";
|
||||||
description = "Group which rethinkdb user belongs to.";
|
description = lib.mdDoc "Group which rethinkdb user belongs to.";
|
||||||
};
|
};
|
||||||
|
|
||||||
dbpath = mkOption {
|
dbpath = mkOption {
|
||||||
default = "/var/db/rethinkdb";
|
default = "/var/db/rethinkdb";
|
||||||
description = "Location where RethinkDB stores its data, 1 data directory per instance.";
|
description = lib.mdDoc "Location where RethinkDB stores its data, 1 data directory per instance.";
|
||||||
};
|
};
|
||||||
|
|
||||||
pidpath = mkOption {
|
pidpath = mkOption {
|
||||||
default = "/run/rethinkdb";
|
default = "/run/rethinkdb";
|
||||||
description = "Location where each instance's pid file is located.";
|
description = lib.mdDoc "Location where each instance's pid file is located.";
|
||||||
};
|
};
|
||||||
|
|
||||||
#cfgpath = mkOption {
|
#cfgpath = mkOption {
|
||||||
|
|
|
@ -39,14 +39,14 @@ in {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Whether to enable the deprecated example Pipewire session manager";
|
description = lib.mdDoc "Whether to enable the deprecated example Pipewire session manager";
|
||||||
};
|
};
|
||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.pipewire-media-session;
|
default = pkgs.pipewire-media-session;
|
||||||
defaultText = literalExpression "pkgs.pipewire-media-session";
|
defaultText = literalExpression "pkgs.pipewire-media-session";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The pipewire-media-session derivation to use.
|
The pipewire-media-session derivation to use.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -54,7 +54,7 @@ in {
|
||||||
config = {
|
config = {
|
||||||
media-session = mkOption {
|
media-session = mkOption {
|
||||||
type = json.type;
|
type = json.type;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Configuration for the media session core. For details see
|
Configuration for the media session core. For details see
|
||||||
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
|
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
|
||||||
'';
|
'';
|
||||||
|
@ -63,7 +63,7 @@ in {
|
||||||
|
|
||||||
alsa-monitor = mkOption {
|
alsa-monitor = mkOption {
|
||||||
type = json.type;
|
type = json.type;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Configuration for the alsa monitor. For details see
|
Configuration for the alsa monitor. For details see
|
||||||
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
|
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
|
||||||
'';
|
'';
|
||||||
|
@ -72,7 +72,7 @@ in {
|
||||||
|
|
||||||
bluez-monitor = mkOption {
|
bluez-monitor = mkOption {
|
||||||
type = json.type;
|
type = json.type;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Configuration for the bluez5 monitor. For details see
|
Configuration for the bluez5 monitor. For details see
|
||||||
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
|
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
|
||||||
'';
|
'';
|
||||||
|
@ -81,7 +81,7 @@ in {
|
||||||
|
|
||||||
v4l2-monitor = mkOption {
|
v4l2-monitor = mkOption {
|
||||||
type = json.type;
|
type = json.type;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Configuration for the V4L2 monitor. For details see
|
Configuration for the V4L2 monitor. For details see
|
||||||
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
|
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -29,7 +29,7 @@ in {
|
||||||
ip = mkOption {
|
ip = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
IP address Jupyter will be listening on.
|
IP address Jupyter will be listening on.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -41,7 +41,7 @@ in {
|
||||||
# saving a rebuild.
|
# saving a rebuild.
|
||||||
default = pkgs.python3.pkgs.notebook;
|
default = pkgs.python3.pkgs.notebook;
|
||||||
defaultText = literalExpression "pkgs.python3.pkgs.notebook";
|
defaultText = literalExpression "pkgs.python3.pkgs.notebook";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Jupyter package to use.
|
Jupyter package to use.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -50,7 +50,7 @@ in {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "jupyter-notebook";
|
default = "jupyter-notebook";
|
||||||
example = "jupyter-lab";
|
example = "jupyter-lab";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Which command the service runs. Note that not all jupyter packages
|
Which command the service runs. Note that not all jupyter packages
|
||||||
have all commands, e.g. jupyter-lab isn't present in the default package.
|
have all commands, e.g. jupyter-lab isn't present in the default package.
|
||||||
'';
|
'';
|
||||||
|
@ -59,7 +59,7 @@ in {
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 8888;
|
default = 8888;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Port number Jupyter will be listening on.
|
Port number Jupyter will be listening on.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -67,7 +67,7 @@ in {
|
||||||
notebookDir = mkOption {
|
notebookDir = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "~/";
|
default = "~/";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Root directory for notebooks.
|
Root directory for notebooks.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -75,7 +75,7 @@ in {
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "jupyter";
|
default = "jupyter";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Name of the user used to run the jupyter service.
|
Name of the user used to run the jupyter service.
|
||||||
For security reason, jupyter should really not be run as root.
|
For security reason, jupyter should really not be run as root.
|
||||||
If not set (jupyter), the service will create a jupyter user with appropriate settings.
|
If not set (jupyter), the service will create a jupyter user with appropriate settings.
|
||||||
|
@ -86,7 +86,7 @@ in {
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "jupyter";
|
default = "jupyter";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Name of the group used to run the jupyter service.
|
Name of the group used to run the jupyter service.
|
||||||
Use this if you want to create a group of users that are able to view the notebook directory's content.
|
Use this if you want to create a group of users that are able to view the notebook directory's content.
|
||||||
'';
|
'';
|
||||||
|
@ -95,7 +95,7 @@ in {
|
||||||
|
|
||||||
password = mkOption {
|
password = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Password to use with notebook.
|
Password to use with notebook.
|
||||||
Can be generated using:
|
Can be generated using:
|
||||||
In [1]: from notebook.auth import passwd
|
In [1]: from notebook.auth import passwd
|
||||||
|
@ -112,7 +112,7 @@ in {
|
||||||
notebookConfig = mkOption {
|
notebookConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Raw jupyter config.
|
Raw jupyter config.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,7 +13,7 @@ with lib;
|
||||||
"Python 3"
|
"Python 3"
|
||||||
"Python 3 for Data Science"
|
"Python 3 for Data Science"
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Name that will be shown to the user.
|
Name that will be shown to the user.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -27,7 +27,7 @@ with lib;
|
||||||
"-f"
|
"-f"
|
||||||
"{connection_file}"
|
"{connection_file}"
|
||||||
];
|
];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Command and arguments to start the kernel.
|
Command and arguments to start the kernel.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -35,7 +35,7 @@ with lib;
|
||||||
language = mkOption {
|
language = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "python";
|
example = "python";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Language of the environment. Typically the name of the binary.
|
Language of the environment. Typically the name of the binary.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -44,7 +44,7 @@ with lib;
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-32x32.png"'';
|
example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-32x32.png"'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to 32x32 logo png.
|
Path to 32x32 logo png.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -52,7 +52,7 @@ with lib;
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-64x64.png"'';
|
example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-64x64.png"'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to 64x64 logo png.
|
Path to 64x64 logo png.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -61,7 +61,7 @@ with lib;
|
||||||
type = types.attrsOf types.path;
|
type = types.attrsOf types.path;
|
||||||
default = { };
|
default = { };
|
||||||
example = literalExpression ''"{ examples = ''${env.sitePack}/IRkernel/kernelspec/kernel.js"; }'';
|
example = literalExpression ''"{ examples = ''${env.sitePack}/IRkernel/kernelspec/kernel.js"; }'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra paths to link in kernel directory
|
Extra paths to link in kernel directory
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,7 +35,7 @@ in {
|
||||||
authentication = mkOption {
|
authentication = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "jupyterhub.auth.PAMAuthenticator";
|
default = "jupyterhub.auth.PAMAuthenticator";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Jupyterhub authentication to use
|
Jupyterhub authentication to use
|
||||||
|
|
||||||
There are many authenticators available including: oauth, pam,
|
There are many authenticators available including: oauth, pam,
|
||||||
|
@ -46,7 +46,7 @@ in {
|
||||||
spawner = mkOption {
|
spawner = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "systemdspawner.SystemdSpawner";
|
default = "systemdspawner.SystemdSpawner";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Jupyterhub spawner to use
|
Jupyterhub spawner to use
|
||||||
|
|
||||||
There are many spawners available including: local process,
|
There are many spawners available including: local process,
|
||||||
|
@ -57,7 +57,7 @@ in {
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra contents appended to the jupyterhub configuration
|
Extra contents appended to the jupyterhub configuration
|
||||||
|
|
||||||
Jupyterhub configuration is a normal python file using
|
Jupyterhub configuration is a normal python file using
|
||||||
|
@ -84,7 +84,7 @@ in {
|
||||||
jupyterhub-systemdspawner
|
jupyterhub-systemdspawner
|
||||||
])
|
])
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Python environment to run jupyterhub
|
Python environment to run jupyterhub
|
||||||
|
|
||||||
Customizing will affect the packages available in the hub and
|
Customizing will affect the packages available in the hub and
|
||||||
|
@ -106,7 +106,7 @@ in {
|
||||||
jupyterlab
|
jupyterlab
|
||||||
])
|
])
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Python environment to run jupyterlab
|
Python environment to run jupyterlab
|
||||||
|
|
||||||
Customizing will affect the packages available in the
|
Customizing will affect the packages available in the
|
||||||
|
@ -146,7 +146,7 @@ in {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Declarative kernel config
|
Declarative kernel config
|
||||||
|
|
||||||
Kernels can be declared in any language that supports and has
|
Kernels can be declared in any language that supports and has
|
||||||
|
@ -159,7 +159,7 @@ in {
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8000;
|
default = 8000;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Port number Jupyterhub will be listening on
|
Port number Jupyterhub will be listening on
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -167,7 +167,7 @@ in {
|
||||||
host = mkOption {
|
host = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "0.0.0.0";
|
default = "0.0.0.0";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Bind IP JupyterHub will be listening on
|
Bind IP JupyterHub will be listening on
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -175,7 +175,7 @@ in {
|
||||||
stateDirectory = mkOption {
|
stateDirectory = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "jupyterhub";
|
default = "jupyterhub";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Directory for jupyterhub state (token + database)
|
Directory for jupyterhub state (token + database)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,11 +35,10 @@ in
|
||||||
LIBPATH /path/to/serial_reader.so
|
LIBPATH /path/to/serial_reader.so
|
||||||
CHANNELID 1
|
CHANNELID 1
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Configuration for devices that aren't hotpluggable.
|
Configuration for devices that aren't hotpluggable.
|
||||||
|
|
||||||
See <citerefentry><refentrytitle>reader.conf</refentrytitle>
|
See {manpage}`reader.conf(5)` for valid options.
|
||||||
<manvolnum>5</manvolnum></citerefentry> for valid options.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -121,11 +121,9 @@ in
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "hourly";
|
example = "hourly";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specification of the time at which awstats will get updated.
|
Specification of the time at which awstats will get updated.
|
||||||
(in the format described by <citerefentry>
|
(in the format described by {manpage}`systemd.time(7)`)
|
||||||
<refentrytitle>systemd.time</refentrytitle>
|
|
||||||
<manvolnum>7</manvolnum></citerefentry>)
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -86,10 +86,9 @@ in
|
||||||
maintInterval = mkOption {
|
maintInterval = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "20min";
|
default = "20min";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Time interval between mlmmj-maintd runs, see
|
Time interval between mlmmj-maintd runs, see
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)` for format information.
|
||||||
<manvolnum>7</manvolnum></citerefentry> for format information.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -535,9 +535,8 @@ in
|
||||||
canonical = mkOption {
|
canonical = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Entries for the <citerefentry><refentrytitle>canonical</refentrytitle>
|
Entries for the {manpage}`canonical(5)` table.
|
||||||
<manvolnum>5</manvolnum></citerefentry> table.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -52,8 +52,7 @@ in
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = ''
|
||||||
Environment file as defined in <citerefentry>
|
Environment file as defined in <citerefentry>
|
||||||
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
|
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||||
</citerefentry>.
|
|
||||||
Secrets may be passed to the service without adding them to the world-readable
|
Secrets may be passed to the service without adding them to the world-readable
|
||||||
Nix store, by specifying placeholder variables as the option value in Nix and
|
Nix store, by specifying placeholder variables as the option value in Nix and
|
||||||
setting these variables accordingly in the environment file. Currently only used
|
setting these variables accordingly in the environment file. Currently only used
|
||||||
|
|
|
@ -70,27 +70,27 @@ in
|
||||||
homeserverUrl = mkOption {
|
homeserverUrl = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://matrix.org";
|
default = "https://matrix.org";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Where the homeserver is located (client-server URL).
|
Where the homeserver is located (client-server URL).
|
||||||
|
|
||||||
If <literal>pantalaimon.enable</literal> is <literal>true</literal>, this option will become the homeserver to which <literal>pantalaimon</literal> connects.
|
If `pantalaimon.enable` is `true`, this option will become the homeserver to which `pantalaimon` connects.
|
||||||
The listen address of <literal>pantalaimon</literal> will then become the <literal>homeserverUrl</literal> of <literal>mjolnir</literal>.
|
The listen address of `pantalaimon` will then become the `homeserverUrl` of `mjolnir`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
accessTokenFile = mkOption {
|
accessTokenFile = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
File containing the matrix access token for the <literal>mjolnir</literal> user.
|
File containing the matrix access token for the `mjolnir` user.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
pantalaimon = mkOption {
|
pantalaimon = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
<literal>pantalaimon</literal> options (enables E2E Encryption support).
|
`pantalaimon` options (enables E2E Encryption support).
|
||||||
|
|
||||||
This will create a <literal>pantalaimon</literal> instance with the name "mjolnir".
|
This will create a `pantalaimon` instance with the name "mjolnir".
|
||||||
'';
|
'';
|
||||||
default = { };
|
default = { };
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
|
@ -102,22 +102,22 @@ in
|
||||||
|
|
||||||
username = mkOption {
|
username = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "The username to login with.";
|
description = lib.mdDoc "The username to login with.";
|
||||||
};
|
};
|
||||||
|
|
||||||
passwordFile = mkOption {
|
passwordFile = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
File containing the matrix password for the <literal>mjolnir</literal> user.
|
File containing the matrix password for the `mjolnir` user.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
options = mkOption {
|
options = mkOption {
|
||||||
type = types.submodule (import ./pantalaimon-options.nix);
|
type = types.submodule (import ./pantalaimon-options.nix);
|
||||||
default = { };
|
default = { };
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
passthrough additional options to the <literal>pantalaimon</literal> service.
|
passthrough additional options to the `pantalaimon` service.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -127,7 +127,7 @@ in
|
||||||
dataPath = mkOption {
|
dataPath = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/mjolnir";
|
default = "/var/lib/mjolnir";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The directory the bot should store various bits of information in.
|
The directory the bot should store various bits of information in.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -135,11 +135,11 @@ in
|
||||||
managementRoom = mkOption {
|
managementRoom = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "#moderators:example.org";
|
default = "#moderators:example.org";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The room ID where people can use the bot. The bot has no access controls, so
|
The room ID where people can use the bot. The bot has no access controls, so
|
||||||
anyone in this room can use the bot - secure your room!
|
anyone in this room can use the bot - secure your room!
|
||||||
This should be a room alias or room ID - not a matrix.to URL.
|
This should be a room alias or room ID - not a matrix.to URL.
|
||||||
Note: <literal>mjolnir</literal> is fairly verbose - expect a lot of messages from it.
|
Note: `mjolnir` is fairly verbose - expect a lot of messages from it.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ in
|
||||||
"https://matrix.to/#/#anotherroom:example.org"
|
"https://matrix.to/#/#anotherroom:example.org"
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A list of rooms to protect (matrix.to URLs).
|
A list of rooms to protect (matrix.to URLs).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -166,8 +166,8 @@ in
|
||||||
automaticallyRedactForReasons = [ "spam" "advertising" ];
|
automaticallyRedactForReasons = [ "spam" "advertising" ];
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Additional settings (see <link xlink:href="https://github.com/matrix-org/mjolnir/blob/main/config/default.yaml">mjolnir default config</link> for available settings). These settings will override settings made by the module config.
|
Additional settings (see [mjolnir default config](https://github.com/matrix-org/mjolnir/blob/main/config/default.yaml) for available settings). These settings will override settings made by the module config.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,15 +6,15 @@ with lib;
|
||||||
dataPath = mkOption {
|
dataPath = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/pantalaimon-${name}";
|
default = "/var/lib/pantalaimon-${name}";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The directory where <literal>pantalaimon</literal> should store its state such as the database file.
|
The directory where `pantalaimon` should store its state such as the database file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
logLevel = mkOption {
|
logLevel = mkOption {
|
||||||
type = types.enum [ "info" "warning" "error" "debug" ];
|
type = types.enum [ "info" "warning" "error" "debug" ];
|
||||||
default = "warning";
|
default = "warning";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Set the log level of the daemon.
|
Set the log level of the daemon.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -22,8 +22,8 @@ with lib;
|
||||||
homeserver = mkOption {
|
homeserver = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "https://matrix.org";
|
example = "https://matrix.org";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The URI of the homeserver that the <literal>pantalaimon</literal> proxy should
|
The URI of the homeserver that the `pantalaimon` proxy should
|
||||||
forward requests to, without the matrix API path but including
|
forward requests to, without the matrix API path but including
|
||||||
the http(s) schema.
|
the http(s) schema.
|
||||||
'';
|
'';
|
||||||
|
@ -32,7 +32,7 @@ with lib;
|
||||||
ssl = mkOption {
|
ssl = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether or not SSL verification should be enabled for outgoing
|
Whether or not SSL verification should be enabled for outgoing
|
||||||
connections to the homeserver.
|
connections to the homeserver.
|
||||||
'';
|
'';
|
||||||
|
@ -41,7 +41,7 @@ with lib;
|
||||||
listenAddress = mkOption {
|
listenAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The address where the daemon will listen to client connections
|
The address where the daemon will listen to client connections
|
||||||
for this homeserver.
|
for this homeserver.
|
||||||
'';
|
'';
|
||||||
|
@ -50,7 +50,7 @@ with lib;
|
||||||
listenPort = mkOption {
|
listenPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8009;
|
default = 8009;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The port where the daemon will listen to client connections for
|
The port where the daemon will listen to client connections for
|
||||||
this homeserver. Note that the listen address/port combination
|
this homeserver. Note that the listen address/port combination
|
||||||
needs to be unique between different homeservers.
|
needs to be unique between different homeservers.
|
||||||
|
@ -60,9 +60,9 @@ with lib;
|
||||||
extraSettings = mkOption {
|
extraSettings = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
default = { };
|
default = { };
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra configuration options. See
|
Extra configuration options. See
|
||||||
<link xlink:href="https://github.com/matrix-org/pantalaimon/blob/master/docs/man/pantalaimon.5.md">pantalaimon(5)</link>
|
[pantalaimon(5)](https://github.com/matrix-org/pantalaimon/blob/master/docs/man/pantalaimon.5.md)
|
||||||
for available options.
|
for available options.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -51,11 +51,11 @@ in
|
||||||
options.services.pantalaimon-headless.instances = mkOption {
|
options.services.pantalaimon-headless.instances = mkOption {
|
||||||
default = { };
|
default = { };
|
||||||
type = types.attrsOf (types.submodule (import ./pantalaimon-options.nix));
|
type = types.attrsOf (types.submodule (import ./pantalaimon-options.nix));
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Declarative instance config.
|
Declarative instance config.
|
||||||
|
|
||||||
Note: to use pantalaimon interactively, e.g. for a Matrix client which does not
|
Note: to use pantalaimon interactively, e.g. for a Matrix client which does not
|
||||||
support End-to-end encryption (like <literal>fractal</literal>), refer to the home-manager module.
|
support End-to-end encryption (like `fractal`), refer to the home-manager module.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -143,7 +143,7 @@ in {
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to the configuration file on the target system. Useful to configure e.g. workers
|
Path to the configuration file on the target system. Useful to configure e.g. workers
|
||||||
that also need this.
|
that also need this.
|
||||||
'';
|
'';
|
||||||
|
@ -153,7 +153,7 @@ in {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.matrix-synapse;
|
default = pkgs.matrix-synapse;
|
||||||
defaultText = literalExpression "pkgs.matrix-synapse";
|
defaultText = literalExpression "pkgs.matrix-synapse";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Overridable attribute of the matrix synapse server package to use.
|
Overridable attribute of the matrix synapse server package to use.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -167,7 +167,7 @@ in {
|
||||||
matrix-synapse-pam
|
matrix-synapse-pam
|
||||||
];
|
];
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of additional Matrix plugins to make available.
|
List of additional Matrix plugins to make available.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -175,7 +175,7 @@ in {
|
||||||
withJemalloc = mkOption {
|
withJemalloc = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to preload jemalloc to reduce memory fragmentation and overall usage.
|
Whether to preload jemalloc to reduce memory fragmentation and overall usage.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -183,7 +183,7 @@ in {
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/var/lib/matrix-synapse";
|
default = "/var/lib/matrix-synapse";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The directory where matrix-synapse stores its stateful data such as
|
The directory where matrix-synapse stores its stateful data such as
|
||||||
certificates, media and uploads.
|
certificates, media and uploads.
|
||||||
'';
|
'';
|
||||||
|
@ -210,7 +210,7 @@ in {
|
||||||
example = "example.com";
|
example = "example.com";
|
||||||
default = config.networking.hostName;
|
default = config.networking.hostName;
|
||||||
defaultText = literalExpression "config.networking.hostName";
|
defaultText = literalExpression "config.networking.hostName";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The domain name of the server, with optional explicit port.
|
The domain name of the server, with optional explicit port.
|
||||||
This is used by remote servers to look up the server address.
|
This is used by remote servers to look up the server address.
|
||||||
This is also the last part of your UserID.
|
This is also the last part of your UserID.
|
||||||
|
@ -222,7 +222,7 @@ in {
|
||||||
enable_registration = mkOption {
|
enable_registration = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Enable registration for new users.
|
Enable registration for new users.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -253,7 +253,7 @@ in {
|
||||||
enable_metrics = mkOption {
|
enable_metrics = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Enable collection and rendering of performance metrics
|
Enable collection and rendering of performance metrics
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -261,7 +261,7 @@ in {
|
||||||
report_stats = mkOption {
|
report_stats = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether or not to report anonymized homeserver usage statistics.
|
Whether or not to report anonymized homeserver usage statistics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -269,7 +269,7 @@ in {
|
||||||
signing_key_path = mkOption {
|
signing_key_path = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "${cfg.dataDir}/homeserver.signing.key";
|
default = "${cfg.dataDir}/homeserver.signing.key";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to the signing key to sign messages with.
|
Path to the signing key to sign messages with.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -278,7 +278,7 @@ in {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/run/matrix-synapse.pid";
|
default = "/run/matrix-synapse.pid";
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The file to store the PID in.
|
The file to store the PID in.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -286,7 +286,7 @@ in {
|
||||||
log_config = mkOption {
|
log_config = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = ./synapse-log_config.yaml;
|
default = ./synapse-log_config.yaml;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The file that holds the logging configuration.
|
The file that holds the logging configuration.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -297,7 +297,7 @@ in {
|
||||||
then "${cfg.dataDir}/media_store"
|
then "${cfg.dataDir}/media_store"
|
||||||
else "${cfg.dataDir}/media";
|
else "${cfg.dataDir}/media";
|
||||||
defaultText = "${cfg.dataDir}/media_store for when system.stateVersion is at least 22.05, ${cfg.dataDir}/media when lower than 22.05";
|
defaultText = "${cfg.dataDir}/media_store for when system.stateVersion is at least 22.05, ${cfg.dataDir}/media when lower than 22.05";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Directory where uploaded images and attachments are stored.
|
Directory where uploaded images and attachments are stored.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -306,7 +306,7 @@ in {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "https://example.com:8448/";
|
example = "https://example.com:8448/";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The public-facing base URL for the client API (not including _matrix/...)
|
The public-facing base URL for the client API (not including _matrix/...)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -315,7 +315,7 @@ in {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "/var/lib/acme/example.com/fullchain.pem";
|
example = "/var/lib/acme/example.com/fullchain.pem";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
PEM encoded X509 certificate for TLS.
|
PEM encoded X509 certificate for TLS.
|
||||||
You can replace the self-signed certificate that synapse
|
You can replace the self-signed certificate that synapse
|
||||||
autogenerates on launch with your own SSL certificate + key pair
|
autogenerates on launch with your own SSL certificate + key pair
|
||||||
|
@ -328,7 +328,7 @@ in {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "/var/lib/acme/example.com/key.pem";
|
example = "/var/lib/acme/example.com/key.pem";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
PEM encoded private key for TLS. Specify null if synapse is not
|
PEM encoded private key for TLS. Specify null if synapse is not
|
||||||
speaking TLS directly.
|
speaking TLS directly.
|
||||||
'';
|
'';
|
||||||
|
@ -338,7 +338,7 @@ in {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
example = false;
|
example = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to enable presence tracking.
|
Whether to enable presence tracking.
|
||||||
|
|
||||||
Presence tracking allows users to see the state (e.g online/offline)
|
Presence tracking allows users to see the state (e.g online/offline)
|
||||||
|
@ -352,7 +352,7 @@ in {
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
example = 8448;
|
example = 8448;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The port to listen for HTTP(S) requests on.
|
The port to listen for HTTP(S) requests on.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -369,7 +369,7 @@ in {
|
||||||
"0.0.0.0"
|
"0.0.0.0"
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
IP addresses to bind the listener to.
|
IP addresses to bind the listener to.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -383,7 +383,7 @@ in {
|
||||||
];
|
];
|
||||||
default = "http";
|
default = "http";
|
||||||
example = "metrics";
|
example = "metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The type of the listener, usually http.
|
The type of the listener, usually http.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -392,7 +392,7 @@ in {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
example = false;
|
example = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to enable TLS on the listener socket.
|
Whether to enable TLS on the listener socket.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -401,7 +401,7 @@ in {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
example = true;
|
example = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Use the X-Forwarded-For (XFF) header as the client IP and not the
|
Use the X-Forwarded-For (XFF) header as the client IP and not the
|
||||||
actual client IP.
|
actual client IP.
|
||||||
'';
|
'';
|
||||||
|
@ -422,7 +422,7 @@ in {
|
||||||
"replication"
|
"replication"
|
||||||
"static"
|
"static"
|
||||||
]);
|
]);
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of resources to host on this listener.
|
List of resources to host on this listener.
|
||||||
'';
|
'';
|
||||||
example = [
|
example = [
|
||||||
|
@ -431,7 +431,7 @@ in {
|
||||||
};
|
};
|
||||||
compress = mkOption {
|
compress = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Should synapse compress HTTP responses to clients that support it?
|
Should synapse compress HTTP responses to clients that support it?
|
||||||
This should be disabled if running synapse behind a load balancer
|
This should be disabled if running synapse behind a load balancer
|
||||||
that can do automatic compression.
|
that can do automatic compression.
|
||||||
|
@ -439,7 +439,7 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of HTTP resources to serve on this listener.
|
List of HTTP resources to serve on this listener.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -459,7 +459,7 @@ in {
|
||||||
compress = false;
|
compress = false;
|
||||||
} ];
|
} ];
|
||||||
} ];
|
} ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of ports that Synapse should listen on, their purpose and their configuration.
|
List of ports that Synapse should listen on, their purpose and their configuration.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -477,7 +477,7 @@ in {
|
||||||
then "psycopg2"
|
then "psycopg2"
|
||||||
else "sqlite3"
|
else "sqlite3"
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The database engine name. Can be sqlite3 or psycopg2.
|
The database engine name. Can be sqlite3 or psycopg2.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -494,7 +494,7 @@ in {
|
||||||
psycopg2 = "matrix-synapse";
|
psycopg2 = "matrix-synapse";
|
||||||
}.''${${options.services.matrix-synapse.settings}.database.name};
|
}.''${${options.services.matrix-synapse.settings}.database.name};
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Name of the database when using the psycopg2 backend,
|
Name of the database when using the psycopg2 backend,
|
||||||
path to the database location when using sqlite3.
|
path to the database location when using sqlite3.
|
||||||
'';
|
'';
|
||||||
|
@ -506,7 +506,7 @@ in {
|
||||||
sqlite3 = null;
|
sqlite3 = null;
|
||||||
psycopg2 = "matrix-synapse";
|
psycopg2 = "matrix-synapse";
|
||||||
}.${cfg.settings.database.name};
|
}.${cfg.settings.database.name};
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Username to connect with psycopg2, set to null
|
Username to connect with psycopg2, set to null
|
||||||
when using sqlite3.
|
when using sqlite3.
|
||||||
'';
|
'';
|
||||||
|
@ -546,7 +546,7 @@ in {
|
||||||
"fec0::/10"
|
"fec0::/10"
|
||||||
"ff00::/8"
|
"ff00::/8"
|
||||||
];
|
];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of IP address CIDR ranges that the URL preview spider is denied
|
List of IP address CIDR ranges that the URL preview spider is denied
|
||||||
from accessing.
|
from accessing.
|
||||||
'';
|
'';
|
||||||
|
@ -555,7 +555,7 @@ in {
|
||||||
url_preview_ip_range_whitelist = mkOption {
|
url_preview_ip_range_whitelist = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of IP address CIDR ranges that the URL preview spider is allowed
|
List of IP address CIDR ranges that the URL preview spider is allowed
|
||||||
to access even if they are specified in url_preview_ip_range_blacklist.
|
to access even if they are specified in url_preview_ip_range_blacklist.
|
||||||
'';
|
'';
|
||||||
|
@ -564,7 +564,7 @@ in {
|
||||||
url_preview_url_blacklist = mkOption {
|
url_preview_url_blacklist = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Optional list of URL matches that the URL preview spider is
|
Optional list of URL matches that the URL preview spider is
|
||||||
denied from accessing.
|
denied from accessing.
|
||||||
'';
|
'';
|
||||||
|
@ -574,7 +574,7 @@ in {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "50M";
|
default = "50M";
|
||||||
example = "100M";
|
example = "100M";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The largest allowed upload size in bytes
|
The largest allowed upload size in bytes
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -583,7 +583,7 @@ in {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "32M";
|
default = "32M";
|
||||||
example = "64M";
|
example = "64M";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Maximum number of pixels that will be thumbnailed
|
Maximum number of pixels that will be thumbnailed
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -592,7 +592,7 @@ in {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
example = true;
|
example = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to generate new thumbnails on the fly to precisely match
|
Whether to generate new thumbnails on the fly to precisely match
|
||||||
the resolution requested by the client. If true then whenever
|
the resolution requested by the client. If true then whenever
|
||||||
a new resolution is requested by the client the server will
|
a new resolution is requested by the client the server will
|
||||||
|
@ -610,7 +610,7 @@ in {
|
||||||
"turns:turn.example.com:5349?transport=udp"
|
"turns:turn.example.com:5349?transport=udp"
|
||||||
"turns:turn.example.com:5349?transport=tcp"
|
"turns:turn.example.com:5349?transport=tcp"
|
||||||
];
|
];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The public URIs of the TURN server to give to clients
|
The public URIs of the TURN server to give to clients
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -633,7 +633,7 @@ in {
|
||||||
server_name = mkOption {
|
server_name = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "matrix.org";
|
example = "matrix.org";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Hostname of the trusted server.
|
Hostname of the trusted server.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -646,7 +646,7 @@ in {
|
||||||
"ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
|
"ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Attribute set from key id to base64 encoded public key.
|
Attribute set from key id to base64 encoded public key.
|
||||||
|
|
||||||
If specified synapse will check that the response is signed
|
If specified synapse will check that the response is signed
|
||||||
|
@ -661,7 +661,7 @@ in {
|
||||||
"ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
|
"ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
|
||||||
};
|
};
|
||||||
} ];
|
} ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The trusted servers to download signing keys from.
|
The trusted servers to download signing keys from.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -669,7 +669,7 @@ in {
|
||||||
app_service_config_files = mkOption {
|
app_service_config_files = mkOption {
|
||||||
type = types.listOf types.path;
|
type = types.listOf types.path;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A list of application service config file to use
|
A list of application service config file to use
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -681,7 +681,7 @@ in {
|
||||||
extraConfigFiles = mkOption {
|
extraConfigFiles = mkOption {
|
||||||
type = types.listOf types.path;
|
type = types.listOf types.path;
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra config files to include.
|
Extra config files to include.
|
||||||
|
|
||||||
The configuration files will be included based on the command line
|
The configuration files will be included based on the command line
|
||||||
|
|
|
@ -114,12 +114,9 @@ let
|
||||||
[ 0.0 0.0 1.0 ]
|
[ 0.0 0.0 1.0 ]
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Refer to
|
Refer to
|
||||||
<citerefentry>
|
{manpage}`xrandr(1)`
|
||||||
<refentrytitle>xrandr</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</citerefentry>
|
|
||||||
for the documentation of the transform matrix.
|
for the documentation of the transform matrix.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -156,10 +153,7 @@ let
|
||||||
Output scale configuration.
|
Output scale configuration.
|
||||||
|
|
||||||
Either configure by pixels or a scaling factor. When using pixel method the
|
Either configure by pixels or a scaling factor. When using pixel method the
|
||||||
<citerefentry>
|
<citerefentry><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||||
<refentrytitle>xrandr</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</citerefentry>
|
|
||||||
option
|
option
|
||||||
<parameter class="command">--scale-from</parameter>
|
<parameter class="command">--scale-from</parameter>
|
||||||
will be used; when using factor method the option
|
will be used; when using factor method the option
|
||||||
|
|
|
@ -103,10 +103,9 @@ in {
|
||||||
garbageCollectDates = mkOption {
|
garbageCollectDates = mkOption {
|
||||||
default = "daily";
|
default = "daily";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specification (in the format described by
|
Specification (in the format described by
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`) of the time at
|
||||||
<manvolnum>7</manvolnum></citerefentry>) of the time at
|
|
||||||
which the garbage collect will occur.
|
which the garbage collect will occur.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -16,13 +16,12 @@ in {
|
||||||
interval = mkOption {
|
interval = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "weekly";
|
default = "weekly";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How often we run fstrim. For most desktop and server systems
|
How often we run fstrim. For most desktop and server systems
|
||||||
a sufficient trimming frequency is once a week.
|
a sufficient trimming frequency is once a week.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,11 +19,10 @@ in
|
||||||
interval = lib.mkOption {
|
interval = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "weekly";
|
default = "weekly";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Update the GeoIP databases at this time / interval.
|
Update the GeoIP databases at this time / interval.
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -159,12 +159,11 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "04:31";
|
default = "04:31";
|
||||||
example = "hourly";
|
example = "hourly";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Run a gitea dump at this interval. Runs by default at 04:31 every day.
|
Run a gitea dump at this interval. Runs by default at 04:31 every day.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -31,14 +31,14 @@ let
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable the gitit service.";
|
description = lib.mdDoc "Enable the gitit service.";
|
||||||
};
|
};
|
||||||
|
|
||||||
haskellPackages = mkOption {
|
haskellPackages = mkOption {
|
||||||
default = pkgs.haskellPackages;
|
default = pkgs.haskellPackages;
|
||||||
defaultText = literalExpression "pkgs.haskellPackages";
|
defaultText = literalExpression "pkgs.haskellPackages";
|
||||||
example = literalExpression "pkgs.haskell.packages.ghc784";
|
example = literalExpression "pkgs.haskell.packages.ghc784";
|
||||||
description = "haskellPackages used to build gitit and plugins.";
|
description = lib.mdDoc "haskellPackages used to build gitit and plugins.";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraPackages = mkOption {
|
extraPackages = mkOption {
|
||||||
|
@ -59,31 +59,31 @@ let
|
||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "0.0.0.0";
|
default = "0.0.0.0";
|
||||||
description = "IP address on which the web server will listen.";
|
description = lib.mdDoc "IP address on which the web server will listen.";
|
||||||
};
|
};
|
||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 5001;
|
default = 5001;
|
||||||
description = "Port on which the web server will run.";
|
description = lib.mdDoc "Port on which the web server will run.";
|
||||||
};
|
};
|
||||||
|
|
||||||
wikiTitle = mkOption {
|
wikiTitle = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "Gitit!";
|
default = "Gitit!";
|
||||||
description = "The wiki title.";
|
description = lib.mdDoc "The wiki title.";
|
||||||
};
|
};
|
||||||
|
|
||||||
repositoryType = mkOption {
|
repositoryType = mkOption {
|
||||||
type = types.enum ["git" "darcs" "mercurial"];
|
type = types.enum ["git" "darcs" "mercurial"];
|
||||||
default = "git";
|
default = "git";
|
||||||
description = "Specifies the type of repository used for wiki content.";
|
description = lib.mdDoc "Specifies the type of repository used for wiki content.";
|
||||||
};
|
};
|
||||||
|
|
||||||
repositoryPath = mkOption {
|
repositoryPath = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = homeDir + "/wiki";
|
default = homeDir + "/wiki";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the path of the repository directory. If it does not
|
Specifies the path of the repository directory. If it does not
|
||||||
exist, gitit will create it on startup.
|
exist, gitit will create it on startup.
|
||||||
'';
|
'';
|
||||||
|
@ -92,7 +92,7 @@ let
|
||||||
requireAuthentication = mkOption {
|
requireAuthentication = mkOption {
|
||||||
type = types.enum [ "none" "modify" "read" ];
|
type = types.enum [ "none" "modify" "read" ];
|
||||||
default = "modify";
|
default = "modify";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If 'none', login is never required, and pages can be edited
|
If 'none', login is never required, and pages can be edited
|
||||||
anonymously. If 'modify', login is required to modify the wiki
|
anonymously. If 'modify', login is required to modify the wiki
|
||||||
(edit, add, delete pages, upload files). If 'read', login is
|
(edit, add, delete pages, upload files). If 'read', login is
|
||||||
|
@ -103,7 +103,7 @@ let
|
||||||
authenticationMethod = mkOption {
|
authenticationMethod = mkOption {
|
||||||
type = types.enum [ "form" "http" "generic" "github" ];
|
type = types.enum [ "form" "http" "generic" "github" ];
|
||||||
default = "form";
|
default = "form";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
'form' means that users will be logged in and registered using forms
|
'form' means that users will be logged in and registered using forms
|
||||||
in the gitit web interface. 'http' means that gitit will assume that
|
in the gitit web interface. 'http' means that gitit will assume that
|
||||||
HTTP authentication is in place and take the logged in username from
|
HTTP authentication is in place and take the logged in username from
|
||||||
|
@ -121,7 +121,7 @@ let
|
||||||
userFile = mkOption {
|
userFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = homeDir + "/gitit-users";
|
default = homeDir + "/gitit-users";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the path of the file containing user login information. If
|
Specifies the path of the file containing user login information. If
|
||||||
it does not exist, gitit will create it (with an empty user list).
|
it does not exist, gitit will create it (with an empty user list).
|
||||||
This file is not used if 'http' is selected for
|
This file is not used if 'http' is selected for
|
||||||
|
@ -132,7 +132,7 @@ let
|
||||||
sessionTimeout = mkOption {
|
sessionTimeout = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 60;
|
default = 60;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Number of minutes of inactivity before a session expires.
|
Number of minutes of inactivity before a session expires.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -140,7 +140,7 @@ let
|
||||||
staticDir = mkOption {
|
staticDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = gititShared + "/data/static";
|
default = gititShared + "/data/static";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the path of the static directory (containing javascript,
|
Specifies the path of the static directory (containing javascript,
|
||||||
css, and images). If it does not exist, gitit will create it and
|
css, and images). If it does not exist, gitit will create it and
|
||||||
populate it with required scripts, stylesheets, and images.
|
populate it with required scripts, stylesheets, and images.
|
||||||
|
@ -150,7 +150,7 @@ let
|
||||||
defaultPageType = mkOption {
|
defaultPageType = mkOption {
|
||||||
type = types.enum [ "markdown" "rst" "latex" "html" "markdown+lhs" "rst+lhs" "latex+lhs" ];
|
type = types.enum [ "markdown" "rst" "latex" "html" "markdown+lhs" "rst+lhs" "latex+lhs" ];
|
||||||
default = "markdown";
|
default = "markdown";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the type of markup used to interpret pages in the wiki.
|
Specifies the type of markup used to interpret pages in the wiki.
|
||||||
Possible values are markdown, rst, latex, html, markdown+lhs,
|
Possible values are markdown, rst, latex, html, markdown+lhs,
|
||||||
rst+lhs, and latex+lhs. (the +lhs variants treat the input as
|
rst+lhs, and latex+lhs. (the +lhs variants treat the input as
|
||||||
|
@ -166,7 +166,7 @@ let
|
||||||
math = mkOption {
|
math = mkOption {
|
||||||
type = types.enum [ "mathml" "raw" "mathjax" "jsmath" "google" ];
|
type = types.enum [ "mathml" "raw" "mathjax" "jsmath" "google" ];
|
||||||
default = "mathml";
|
default = "mathml";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies how LaTeX math is to be displayed. Possible values are
|
Specifies how LaTeX math is to be displayed. Possible values are
|
||||||
mathml, raw, mathjax, jsmath, and google. If mathml is selected,
|
mathml, raw, mathjax, jsmath, and google. If mathml is selected,
|
||||||
gitit will convert LaTeX math to MathML and link in a script,
|
gitit will convert LaTeX math to MathML and link in a script,
|
||||||
|
@ -186,7 +186,7 @@ let
|
||||||
mathJaxScript = mkOption {
|
mathJaxScript = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://d3eoax9i5htok0.cloudfront.net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
|
default = "https://d3eoax9i5htok0.cloudfront.net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the path to MathJax rendering script. You might want to
|
Specifies the path to MathJax rendering script. You might want to
|
||||||
use your own MathJax script to render formulas without Internet
|
use your own MathJax script to render formulas without Internet
|
||||||
connection or if you want to use some special LaTeX packages. Note:
|
connection or if you want to use some special LaTeX packages. Note:
|
||||||
|
@ -202,7 +202,7 @@ let
|
||||||
showLhsBirdTracks = mkOption {
|
showLhsBirdTracks = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies whether to show Haskell code blocks in "bird style", with
|
Specifies whether to show Haskell code blocks in "bird style", with
|
||||||
"> " at the beginning of each line.
|
"> " at the beginning of each line.
|
||||||
'';
|
'';
|
||||||
|
@ -224,7 +224,7 @@ let
|
||||||
logFile = mkOption {
|
logFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = homeDir + "/gitit.log";
|
default = homeDir + "/gitit.log";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the path of gitit's log file. If it does not exist, gitit
|
Specifies the path of gitit's log file. If it does not exist, gitit
|
||||||
will create it. The log is in Apache combined log format.
|
will create it. The log is in Apache combined log format.
|
||||||
'';
|
'';
|
||||||
|
@ -233,7 +233,7 @@ let
|
||||||
logLevel = mkOption {
|
logLevel = mkOption {
|
||||||
type = types.enum [ "DEBUG" "INFO" "NOTICE" "WARNING" "ERROR" "CRITICAL" "ALERT" "EMERGENCY" ];
|
type = types.enum [ "DEBUG" "INFO" "NOTICE" "WARNING" "ERROR" "CRITICAL" "ALERT" "EMERGENCY" ];
|
||||||
default = "ERROR";
|
default = "ERROR";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Determines how much information is logged. Possible values (from
|
Determines how much information is logged. Possible values (from
|
||||||
most to least verbose) are DEBUG, INFO, NOTICE, WARNING, ERROR,
|
most to least verbose) are DEBUG, INFO, NOTICE, WARNING, ERROR,
|
||||||
CRITICAL, ALERT, EMERGENCY.
|
CRITICAL, ALERT, EMERGENCY.
|
||||||
|
@ -243,7 +243,7 @@ let
|
||||||
frontPage = mkOption {
|
frontPage = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "Front Page";
|
default = "Front Page";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies which wiki page is to be used as the wiki's front page.
|
Specifies which wiki page is to be used as the wiki's front page.
|
||||||
Gitit creates a default front page on startup, if one does not exist
|
Gitit creates a default front page on startup, if one does not exist
|
||||||
already.
|
already.
|
||||||
|
@ -253,7 +253,7 @@ let
|
||||||
noDelete = mkOption {
|
noDelete = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "Front Page, Help";
|
default = "Front Page, Help";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies pages that cannot be deleted through the web interface.
|
Specifies pages that cannot be deleted through the web interface.
|
||||||
(They can still be deleted directly using git or darcs.) A
|
(They can still be deleted directly using git or darcs.) A
|
||||||
comma-separated list of page names. Leave blank to allow every page
|
comma-separated list of page names. Leave blank to allow every page
|
||||||
|
@ -264,7 +264,7 @@ let
|
||||||
noEdit = mkOption {
|
noEdit = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "Help";
|
default = "Help";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies pages that cannot be edited through the web interface.
|
Specifies pages that cannot be edited through the web interface.
|
||||||
Leave blank to allow every page to be edited.
|
Leave blank to allow every page to be edited.
|
||||||
'';
|
'';
|
||||||
|
@ -273,7 +273,7 @@ let
|
||||||
defaultSummary = mkOption {
|
defaultSummary = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies text to be used in the change description if the author
|
Specifies text to be used in the change description if the author
|
||||||
leaves the "description" field blank. If default-summary is blank
|
leaves the "description" field blank. If default-summary is blank
|
||||||
(the default), the author will be required to fill in the description
|
(the default), the author will be required to fill in the description
|
||||||
|
@ -284,7 +284,7 @@ let
|
||||||
tableOfContents = mkOption {
|
tableOfContents = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies whether to print a tables of contents (with links to
|
Specifies whether to print a tables of contents (with links to
|
||||||
sections) on each wiki page.
|
sections) on each wiki page.
|
||||||
'';
|
'';
|
||||||
|
@ -293,7 +293,7 @@ let
|
||||||
plugins = mkOption {
|
plugins = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [ (gititShared + "/plugins/Dot.hs") ];
|
default = [ (gititShared + "/plugins/Dot.hs") ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies a list of plugins to load. Plugins may be specified either
|
Specifies a list of plugins to load. Plugins may be specified either
|
||||||
by their path or by their module name. If the plugin name starts
|
by their path or by their module name. If the plugin name starts
|
||||||
with Gitit.Plugin., gitit will assume that the plugin is an installed
|
with Gitit.Plugin., gitit will assume that the plugin is an installed
|
||||||
|
@ -304,7 +304,7 @@ let
|
||||||
useCache = mkOption {
|
useCache = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies whether to cache rendered pages. Note that if use-feed is
|
Specifies whether to cache rendered pages. Note that if use-feed is
|
||||||
selected, feeds will be cached regardless of the value of use-cache.
|
selected, feeds will be cached regardless of the value of use-cache.
|
||||||
'';
|
'';
|
||||||
|
@ -313,13 +313,13 @@ let
|
||||||
cacheDir = mkOption {
|
cacheDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = homeDir + "/cache";
|
default = homeDir + "/cache";
|
||||||
description = "Path where rendered pages will be cached.";
|
description = lib.mdDoc "Path where rendered pages will be cached.";
|
||||||
};
|
};
|
||||||
|
|
||||||
maxUploadSize = mkOption {
|
maxUploadSize = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "1000K";
|
default = "1000K";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies an upper limit on the size (in bytes) of files uploaded
|
Specifies an upper limit on the size (in bytes) of files uploaded
|
||||||
through the wiki's web interface. To disable uploads, set this to
|
through the wiki's web interface. To disable uploads, set this to
|
||||||
0K. This will result in the uploads link disappearing and the
|
0K. This will result in the uploads link disappearing and the
|
||||||
|
@ -330,19 +330,19 @@ let
|
||||||
maxPageSize = mkOption {
|
maxPageSize = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "1000K";
|
default = "1000K";
|
||||||
description = "Specifies an upper limit on the size (in bytes) of pages.";
|
description = lib.mdDoc "Specifies an upper limit on the size (in bytes) of pages.";
|
||||||
};
|
};
|
||||||
|
|
||||||
debugMode = mkOption {
|
debugMode = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Causes debug information to be logged while gitit is running.";
|
description = lib.mdDoc "Causes debug information to be logged while gitit is running.";
|
||||||
};
|
};
|
||||||
|
|
||||||
compressResponses = mkOption {
|
compressResponses = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = "Specifies whether HTTP responses should be compressed.";
|
description = lib.mdDoc "Specifies whether HTTP responses should be compressed.";
|
||||||
};
|
};
|
||||||
|
|
||||||
mimeTypesFile = mkOption {
|
mimeTypesFile = mkOption {
|
||||||
|
@ -363,7 +363,7 @@ video/x-ms-wmx wmx
|
||||||
useReCaptcha = mkOption {
|
useReCaptcha = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If true, causes gitit to use the reCAPTCHA service
|
If true, causes gitit to use the reCAPTCHA service
|
||||||
(http://recaptcha.net) to prevent bots from creating accounts.
|
(http://recaptcha.net) to prevent bots from creating accounts.
|
||||||
'';
|
'';
|
||||||
|
@ -372,7 +372,7 @@ video/x-ms-wmx wmx
|
||||||
reCaptchaPrivateKey = mkOption {
|
reCaptchaPrivateKey = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the private key for the reCAPTCHA service. To get
|
Specifies the private key for the reCAPTCHA service. To get
|
||||||
these, you need to create an account at http://recaptcha.net.
|
these, you need to create an account at http://recaptcha.net.
|
||||||
'';
|
'';
|
||||||
|
@ -381,7 +381,7 @@ video/x-ms-wmx wmx
|
||||||
reCaptchaPublicKey = mkOption {
|
reCaptchaPublicKey = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the public key for the reCAPTCHA service. To get
|
Specifies the public key for the reCAPTCHA service. To get
|
||||||
these, you need to create an account at http://recaptcha.net.
|
these, you need to create an account at http://recaptcha.net.
|
||||||
'';
|
'';
|
||||||
|
@ -390,7 +390,7 @@ video/x-ms-wmx wmx
|
||||||
accessQuestion = mkOption {
|
accessQuestion = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "What is the code given to you by Ms. X?";
|
default = "What is the code given to you by Ms. X?";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies a question that users must answer when they attempt to
|
Specifies a question that users must answer when they attempt to
|
||||||
create an account
|
create an account
|
||||||
'';
|
'';
|
||||||
|
@ -399,7 +399,7 @@ video/x-ms-wmx wmx
|
||||||
accessQuestionAnswers = mkOption {
|
accessQuestionAnswers = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "RED DOG, red dog";
|
default = "RED DOG, red dog";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies a question that users must answer when they attempt to
|
Specifies a question that users must answer when they attempt to
|
||||||
create an account, along with a comma-separated list of acceptable
|
create an account, along with a comma-separated list of acceptable
|
||||||
answers. This can be used to institute a rudimentary password for
|
answers. This can be used to institute a rudimentary password for
|
||||||
|
@ -413,7 +413,7 @@ video/x-ms-wmx wmx
|
||||||
rpxDomain = mkOption {
|
rpxDomain = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the domain and key of your RPX account. The domain is just
|
Specifies the domain and key of your RPX account. The domain is just
|
||||||
the prefix of the complete RPX domain, so if your full domain is
|
the prefix of the complete RPX domain, so if your full domain is
|
||||||
'https://foo.rpxnow.com/', use 'foo' as the value of rpx-domain.
|
'https://foo.rpxnow.com/', use 'foo' as the value of rpx-domain.
|
||||||
|
@ -423,13 +423,13 @@ video/x-ms-wmx wmx
|
||||||
rpxKey = mkOption {
|
rpxKey = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "RPX account access key.";
|
description = lib.mdDoc "RPX account access key.";
|
||||||
};
|
};
|
||||||
|
|
||||||
mailCommand = mkOption {
|
mailCommand = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "sendmail %s";
|
default = "sendmail %s";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the command to use to send notification emails. '%s' will
|
Specifies the command to use to send notification emails. '%s' will
|
||||||
be replaced by the destination email address. The body of the
|
be replaced by the destination email address. The body of the
|
||||||
message will be read from stdin. If this field is left blank,
|
message will be read from stdin. If this field is left blank,
|
||||||
|
@ -451,7 +451,7 @@ video/x-ms-wmx wmx
|
||||||
>
|
>
|
||||||
> Regards
|
> Regards
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Gives the text of the message that will be sent to the user should
|
Gives the text of the message that will be sent to the user should
|
||||||
she want to reset her password, or change other registration info.
|
she want to reset her password, or change other registration info.
|
||||||
The lines must be indented, and must begin with '>'. The initial
|
The lines must be indented, and must begin with '>'. The initial
|
||||||
|
@ -471,7 +471,7 @@ video/x-ms-wmx wmx
|
||||||
useFeed = mkOption {
|
useFeed = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies whether an ATOM feed should be enabled (for the site and
|
Specifies whether an ATOM feed should be enabled (for the site and
|
||||||
for individual pages).
|
for individual pages).
|
||||||
'';
|
'';
|
||||||
|
@ -480,7 +480,7 @@ video/x-ms-wmx wmx
|
||||||
baseUrl = mkOption {
|
baseUrl = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The base URL of the wiki, to be used in constructing feed IDs and RPX
|
The base URL of the wiki, to be used in constructing feed IDs and RPX
|
||||||
token_urls. Set this if useFeed is false or authentication-method
|
token_urls. Set this if useFeed is false or authentication-method
|
||||||
is 'rpx'.
|
is 'rpx'.
|
||||||
|
@ -502,19 +502,19 @@ video/x-ms-wmx wmx
|
||||||
feedDays = mkOption {
|
feedDays = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 14;
|
default = 14;
|
||||||
description = "Number of days to be included in feeds.";
|
description = lib.mdDoc "Number of days to be included in feeds.";
|
||||||
};
|
};
|
||||||
|
|
||||||
feedRefreshTime = mkOption {
|
feedRefreshTime = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 60;
|
default = 60;
|
||||||
description = "Number of minutes to cache feeds before refreshing.";
|
description = lib.mdDoc "Number of minutes to cache feeds before refreshing.";
|
||||||
};
|
};
|
||||||
|
|
||||||
pdfExport = mkOption {
|
pdfExport = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If true, PDF will appear in export options. PDF will be created using
|
If true, PDF will appear in export options. PDF will be created using
|
||||||
pdflatex, which must be installed and in the path. Note that PDF
|
pdflatex, which must be installed and in the path. Note that PDF
|
||||||
exports create significant additional server load.
|
exports create significant additional server load.
|
||||||
|
@ -524,7 +524,7 @@ video/x-ms-wmx wmx
|
||||||
pandocUserData = mkOption {
|
pandocUserData = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If a directory is specified, this will be searched for pandoc
|
If a directory is specified, this will be searched for pandoc
|
||||||
customizations. These can include a templates/ directory for custom
|
customizations. These can include a templates/ directory for custom
|
||||||
templates for various export formats, an S5 directory for custom S5
|
templates for various export formats, an S5 directory for custom S5
|
||||||
|
@ -537,7 +537,7 @@ video/x-ms-wmx wmx
|
||||||
xssSanitize = mkOption {
|
xssSanitize = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If true, all HTML (including that produced by pandoc) is filtered
|
If true, all HTML (including that produced by pandoc) is filtered
|
||||||
through xss-sanitize. Set to no only if you trust all of your users.
|
through xss-sanitize. Set to no only if you trust all of your users.
|
||||||
'';
|
'';
|
||||||
|
@ -546,37 +546,37 @@ video/x-ms-wmx wmx
|
||||||
oauthClientId = mkOption {
|
oauthClientId = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "OAuth client ID";
|
description = lib.mdDoc "OAuth client ID";
|
||||||
};
|
};
|
||||||
|
|
||||||
oauthClientSecret = mkOption {
|
oauthClientSecret = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "OAuth client secret";
|
description = lib.mdDoc "OAuth client secret";
|
||||||
};
|
};
|
||||||
|
|
||||||
oauthCallback = mkOption {
|
oauthCallback = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "OAuth callback URL";
|
description = lib.mdDoc "OAuth callback URL";
|
||||||
};
|
};
|
||||||
|
|
||||||
oauthAuthorizeEndpoint = mkOption {
|
oauthAuthorizeEndpoint = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "OAuth authorize endpoint";
|
description = lib.mdDoc "OAuth authorize endpoint";
|
||||||
};
|
};
|
||||||
|
|
||||||
oauthAccessTokenEndpoint = mkOption {
|
oauthAccessTokenEndpoint = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "OAuth access token endpoint";
|
description = lib.mdDoc "OAuth access token endpoint";
|
||||||
};
|
};
|
||||||
|
|
||||||
githubOrg = mkOption {
|
githubOrg = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "Github organization";
|
description = lib.mdDoc "Github organization";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -319,11 +319,10 @@ in {
|
||||||
type = with types; either str (listOf str);
|
type = with types; either str (listOf str);
|
||||||
default = [];
|
default = [];
|
||||||
example = "03:00";
|
example = "03:00";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The time(s) to run automatic backup of GitLab
|
The time(s) to run automatic backup of GitLab
|
||||||
state. Specified in systemd's time format; see
|
state. Specified in systemd's time format; see
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -155,30 +155,29 @@ in
|
||||||
type = types.enum [ "other" "batch" "idle" ];
|
type = types.enum [ "other" "batch" "idle" ];
|
||||||
default = "other";
|
default = "other";
|
||||||
example = "batch";
|
example = "batch";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Nix daemon process CPU scheduling policy. This policy propagates to
|
Nix daemon process CPU scheduling policy. This policy propagates to
|
||||||
build processes. <literal>other</literal> is the default scheduling
|
build processes. `other` is the default scheduling
|
||||||
policy for regular tasks. The <literal>batch</literal> policy is
|
policy for regular tasks. The `batch` policy is
|
||||||
similar to <literal>other</literal>, but optimised for
|
similar to `other`, but optimised for
|
||||||
non-interactive tasks. <literal>idle</literal> is for extremely
|
non-interactive tasks. `idle` is for extremely
|
||||||
low-priority tasks that should only be run when no other task
|
low-priority tasks that should only be run when no other task
|
||||||
requires CPU time.
|
requires CPU time.
|
||||||
|
|
||||||
Please note that while using the <literal>idle</literal> policy may
|
Please note that while using the `idle` policy may
|
||||||
greatly improve responsiveness of a system performing expensive
|
greatly improve responsiveness of a system performing expensive
|
||||||
builds, it may also slow down and potentially starve crucial
|
builds, it may also slow down and potentially starve crucial
|
||||||
configuration updates during load.
|
configuration updates during load.
|
||||||
|
|
||||||
<literal>idle</literal> may therefore be a sensible policy for
|
`idle` may therefore be a sensible policy for
|
||||||
systems that experience only intermittent phases of high CPU load,
|
systems that experience only intermittent phases of high CPU load,
|
||||||
such as desktop or portable computers used interactively. Other
|
such as desktop or portable computers used interactively. Other
|
||||||
systems should use the <literal>other</literal> or
|
systems should use the `other` or
|
||||||
<literal>batch</literal> policy instead.
|
`batch` policy instead.
|
||||||
|
|
||||||
For more fine-grained resource control, please refer to
|
For more fine-grained resource control, please refer to
|
||||||
<citerefentry><refentrytitle>systemd.resource-control
|
{manpage}`systemd.resource-control(5)` and adjust
|
||||||
</refentrytitle><manvolnum>5</manvolnum></citerefentry> and adjust
|
{option}`systemd.services.nix-daemon` directly.
|
||||||
<option>systemd.services.nix-daemon</option> directly.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -631,10 +630,7 @@ in
|
||||||
description = ''
|
description = ''
|
||||||
Configuration for Nix, see
|
Configuration for Nix, see
|
||||||
<link xlink:href="https://nixos.org/manual/nix/stable/#sec-conf-file"/> or
|
<link xlink:href="https://nixos.org/manual/nix/stable/#sec-conf-file"/> or
|
||||||
<citerefentry>
|
<citerefentry><refentrytitle>nix.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> for avalaible options.
|
||||||
<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.
|
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</command>
|
You can use <command>nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.nix.settings</command>
|
||||||
|
|
|
@ -24,13 +24,12 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "03:15";
|
default = "03:15";
|
||||||
example = "weekly";
|
example = "weekly";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How often or when garbage collection is performed. For most desktop and server systems
|
How often or when garbage collection is performed. For most desktop and server systems
|
||||||
a sufficient garbage collection is once a week.
|
a sufficient garbage collection is once a week.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -38,12 +37,11 @@ in
|
||||||
default = "0";
|
default = "0";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "45min";
|
example = "45min";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Add a randomized delay before each garbage collection.
|
Add a randomized delay before each garbage collection.
|
||||||
The delay will be chosen between zero and this value.
|
The delay will be chosen between zero and this value.
|
||||||
This value must be a time span in the format specified by
|
This value must be a time span in the format specified by
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`
|
||||||
<manvolnum>7</manvolnum></citerefentry>
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,9 @@ in
|
||||||
dates = mkOption {
|
dates = mkOption {
|
||||||
default = ["03:45"];
|
default = ["03:45"];
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specification (in the format described by
|
Specification (in the format described by
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`) of the time at
|
||||||
<manvolnum>7</manvolnum></citerefentry>) of the time at
|
|
||||||
which the optimiser will run.
|
which the optimiser will run.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,24 +20,22 @@ in
|
||||||
snapshotInterval = mkOption {
|
snapshotInterval = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "hourly";
|
default = "hourly";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Snapshot interval.
|
Snapshot interval.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
cleanupInterval = mkOption {
|
cleanupInterval = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "1d";
|
default = "1d";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Cleanup interval.
|
Cleanup interval.
|
||||||
|
|
||||||
The format is described in
|
The format is described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`.
|
||||||
<manvolnum>7</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -47,33 +47,33 @@ let
|
||||||
})));
|
})));
|
||||||
commonServiceSettings = srv: {
|
commonServiceSettings = srv: {
|
||||||
origin = mkOption {
|
origin = mkOption {
|
||||||
description = "URL ${srv}.sr.ht is being served at (protocol://domain)";
|
description = lib.mdDoc "URL ${srv}.sr.ht is being served at (protocol://domain)";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://${srv}.${domain}";
|
default = "https://${srv}.${domain}";
|
||||||
defaultText = "https://${srv}.example.com";
|
defaultText = "https://${srv}.example.com";
|
||||||
};
|
};
|
||||||
debug-host = mkOption {
|
debug-host = mkOption {
|
||||||
description = "Address to bind the debug server to.";
|
description = lib.mdDoc "Address to bind the debug server to.";
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
debug-port = mkOption {
|
debug-port = mkOption {
|
||||||
description = "Port to bind the debug server to.";
|
description = lib.mdDoc "Port to bind the debug server to.";
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
connection-string = mkOption {
|
connection-string = mkOption {
|
||||||
description = "SQLAlchemy connection string for the database.";
|
description = lib.mdDoc "SQLAlchemy connection string for the database.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "postgresql:///localhost?user=${srv}srht&host=/run/postgresql";
|
default = "postgresql:///localhost?user=${srv}srht&host=/run/postgresql";
|
||||||
};
|
};
|
||||||
migrate-on-upgrade = mkEnableOption "automatic migrations on package upgrade" // { default = true; };
|
migrate-on-upgrade = mkEnableOption "automatic migrations on package upgrade" // { default = true; };
|
||||||
oauth-client-id = mkOption {
|
oauth-client-id = mkOption {
|
||||||
description = "${srv}.sr.ht's OAuth client id for meta.sr.ht.";
|
description = lib.mdDoc "${srv}.sr.ht's OAuth client id for meta.sr.ht.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
};
|
};
|
||||||
oauth-client-secret = mkOption {
|
oauth-client-secret = mkOption {
|
||||||
description = "${srv}.sr.ht's OAuth client secret for meta.sr.ht.";
|
description = lib.mdDoc "${srv}.sr.ht's OAuth client secret for meta.sr.ht.";
|
||||||
type = types.path;
|
type = types.path;
|
||||||
apply = s: "<" + toString s;
|
apply = s: "<" + toString s;
|
||||||
};
|
};
|
||||||
|
@ -117,7 +117,7 @@ in
|
||||||
type = with types; listOf (enum
|
type = with types; listOf (enum
|
||||||
[ "builds" "dispatch" "git" "hg" "hub" "lists" "man" "meta" "pages" "paste" "todo" ]);
|
[ "builds" "dispatch" "git" "hg" "hub" "lists" "man" "meta" "pages" "paste" "todo" ]);
|
||||||
defaultText = "locally enabled services";
|
defaultText = "locally enabled services";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Services that may be displayed as links in the title bar of the Web interface.
|
Services that may be displayed as links in the title bar of the Web interface.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -125,7 +125,7 @@ in
|
||||||
listenAddress = mkOption {
|
listenAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = "Address to bind to.";
|
description = lib.mdDoc "Address to bind to.";
|
||||||
};
|
};
|
||||||
|
|
||||||
python = mkOption {
|
python = mkOption {
|
||||||
|
@ -147,7 +147,7 @@ in
|
||||||
virtualHost = mkOption {
|
virtualHost = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
default = {};
|
default = {};
|
||||||
description = "Virtual-host configuration merged with all Sourcehut's virtual-hosts.";
|
description = lib.mdDoc "Virtual-host configuration merged with all Sourcehut's virtual-hosts.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -168,48 +168,48 @@ in
|
||||||
freeformType = settingsFormat.type;
|
freeformType = settingsFormat.type;
|
||||||
options."sr.ht" = {
|
options."sr.ht" = {
|
||||||
global-domain = mkOption {
|
global-domain = mkOption {
|
||||||
description = "Global domain name.";
|
description = lib.mdDoc "Global domain name.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "example.com";
|
example = "example.com";
|
||||||
};
|
};
|
||||||
environment = mkOption {
|
environment = mkOption {
|
||||||
description = "Values other than \"production\" adds a banner to each page.";
|
description = lib.mdDoc "Values other than \"production\" adds a banner to each page.";
|
||||||
type = types.enum [ "development" "production" ];
|
type = types.enum [ "development" "production" ];
|
||||||
default = "development";
|
default = "development";
|
||||||
};
|
};
|
||||||
network-key = mkOption {
|
network-key = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
An absolute file path (which should be outside the Nix-store)
|
An absolute file path (which should be outside the Nix-store)
|
||||||
to a secret key to encrypt internal messages with. Use <literal>srht-keygen network</literal> to
|
to a secret key to encrypt internal messages with. Use `srht-keygen network` to
|
||||||
generate this key. It must be consistent between all services and nodes.
|
generate this key. It must be consistent between all services and nodes.
|
||||||
'';
|
'';
|
||||||
type = types.path;
|
type = types.path;
|
||||||
apply = s: "<" + toString s;
|
apply = s: "<" + toString s;
|
||||||
};
|
};
|
||||||
owner-email = mkOption {
|
owner-email = mkOption {
|
||||||
description = "Owner's email.";
|
description = lib.mdDoc "Owner's email.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "contact@example.com";
|
default = "contact@example.com";
|
||||||
};
|
};
|
||||||
owner-name = mkOption {
|
owner-name = mkOption {
|
||||||
description = "Owner's name.";
|
description = lib.mdDoc "Owner's name.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "John Doe";
|
default = "John Doe";
|
||||||
};
|
};
|
||||||
site-blurb = mkOption {
|
site-blurb = mkOption {
|
||||||
description = "Blurb for your site.";
|
description = lib.mdDoc "Blurb for your site.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "the hacker's forge";
|
default = "the hacker's forge";
|
||||||
};
|
};
|
||||||
site-info = mkOption {
|
site-info = mkOption {
|
||||||
description = "The top-level info page for your site.";
|
description = lib.mdDoc "The top-level info page for your site.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://sourcehut.org";
|
default = "https://sourcehut.org";
|
||||||
};
|
};
|
||||||
service-key = mkOption {
|
service-key = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
An absolute file path (which should be outside the Nix-store)
|
An absolute file path (which should be outside the Nix-store)
|
||||||
to a key used for encrypting session cookies. Use <literal>srht-keygen service</literal> to
|
to a key used for encrypting session cookies. Use `srht-keygen service` to
|
||||||
generate the service key. This must be shared between each node of the same
|
generate the service key. This must be shared between each node of the same
|
||||||
service (e.g. git1.sr.ht and git2.sr.ht), but different services may use
|
service (e.g. git1.sr.ht and git2.sr.ht), but different services may use
|
||||||
different keys. If you configure all of your services with the same
|
different keys. If you configure all of your services with the same
|
||||||
|
@ -219,12 +219,12 @@ in
|
||||||
apply = s: "<" + toString s;
|
apply = s: "<" + toString s;
|
||||||
};
|
};
|
||||||
site-name = mkOption {
|
site-name = mkOption {
|
||||||
description = "The name of your network of sr.ht-based sites.";
|
description = lib.mdDoc "The name of your network of sr.ht-based sites.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "sourcehut";
|
default = "sourcehut";
|
||||||
};
|
};
|
||||||
source-url = mkOption {
|
source-url = mkOption {
|
||||||
description = "The source code for your fork of sr.ht.";
|
description = lib.mdDoc "The source code for your fork of sr.ht.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://git.sr.ht/~sircmpwn/srht";
|
default = "https://git.sr.ht/~sircmpwn/srht";
|
||||||
};
|
};
|
||||||
|
@ -232,7 +232,7 @@ in
|
||||||
options.mail = {
|
options.mail = {
|
||||||
smtp-host = mkOptionNullOrStr "Outgoing SMTP host.";
|
smtp-host = mkOptionNullOrStr "Outgoing SMTP host.";
|
||||||
smtp-port = mkOption {
|
smtp-port = mkOption {
|
||||||
description = "Outgoing SMTP port.";
|
description = lib.mdDoc "Outgoing SMTP port.";
|
||||||
type = with types; nullOr port;
|
type = with types; nullOr port;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
|
@ -240,44 +240,44 @@ in
|
||||||
smtp-password = mkOptionNullOrStr "Outgoing SMTP password.";
|
smtp-password = mkOptionNullOrStr "Outgoing SMTP password.";
|
||||||
smtp-from = mkOption {
|
smtp-from = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "Outgoing SMTP FROM.";
|
description = lib.mdDoc "Outgoing SMTP FROM.";
|
||||||
};
|
};
|
||||||
error-to = mkOptionNullOrStr "Address receiving application exceptions";
|
error-to = mkOptionNullOrStr "Address receiving application exceptions";
|
||||||
error-from = mkOptionNullOrStr "Address sending application exceptions";
|
error-from = mkOptionNullOrStr "Address sending application exceptions";
|
||||||
pgp-privkey = mkOption {
|
pgp-privkey = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
An absolute file path (which should be outside the Nix-store)
|
An absolute file path (which should be outside the Nix-store)
|
||||||
to an OpenPGP private key.
|
to an OpenPGP private key.
|
||||||
|
|
||||||
Your PGP key information (DO NOT mix up pub and priv here)
|
Your PGP key information (DO NOT mix up pub and priv here)
|
||||||
You must remove the password from your secret key, if present.
|
You must remove the password from your secret key, if present.
|
||||||
You can do this with <literal>gpg --edit-key [key-id]</literal>,
|
You can do this with `gpg --edit-key [key-id]`,
|
||||||
then use the <literal>passwd</literal> command and do not enter a new password.
|
then use the `passwd` command and do not enter a new password.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
pgp-pubkey = mkOption {
|
pgp-pubkey = mkOption {
|
||||||
type = with types; either path str;
|
type = with types; either path str;
|
||||||
description = "OpenPGP public key.";
|
description = lib.mdDoc "OpenPGP public key.";
|
||||||
};
|
};
|
||||||
pgp-key-id = mkOption {
|
pgp-key-id = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "OpenPGP key identifier.";
|
description = lib.mdDoc "OpenPGP key identifier.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
options.objects = {
|
options.objects = {
|
||||||
s3-upstream = mkOption {
|
s3-upstream = mkOption {
|
||||||
description = "Configure the S3-compatible object storage service.";
|
description = lib.mdDoc "Configure the S3-compatible object storage service.";
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
s3-access-key = mkOption {
|
s3-access-key = mkOption {
|
||||||
description = "Access key to the S3-compatible object storage service";
|
description = lib.mdDoc "Access key to the S3-compatible object storage service";
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
s3-secret-key = mkOption {
|
s3-secret-key = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
An absolute file path (which should be outside the Nix-store)
|
An absolute file path (which should be outside the Nix-store)
|
||||||
to the secret key of the S3-compatible object storage service.
|
to the secret key of the S3-compatible object storage service.
|
||||||
'';
|
'';
|
||||||
|
@ -288,13 +288,13 @@ in
|
||||||
};
|
};
|
||||||
options.webhooks = {
|
options.webhooks = {
|
||||||
private-key = mkOption {
|
private-key = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
An absolute file path (which should be outside the Nix-store)
|
An absolute file path (which should be outside the Nix-store)
|
||||||
to a base64-encoded Ed25519 key for signing webhook payloads.
|
to a base64-encoded Ed25519 key for signing webhook payloads.
|
||||||
This should be consistent for all *.sr.ht sites,
|
This should be consistent for all *.sr.ht sites,
|
||||||
as this key will be used to verify signatures
|
as this key will be used to verify signatures
|
||||||
from other sites in your network.
|
from other sites in your network.
|
||||||
Use the <literal>srht-keygen webhook</literal> command to generate a key.
|
Use the `srht-keygen webhook` command to generate a key.
|
||||||
'';
|
'';
|
||||||
type = types.path;
|
type = types.path;
|
||||||
apply = s: "<" + toString s;
|
apply = s: "<" + toString s;
|
||||||
|
@ -311,17 +311,17 @@ in
|
||||||
enabled = mkEnableOption "GitLab integration";
|
enabled = mkEnableOption "GitLab integration";
|
||||||
canonical-upstream = mkOption {
|
canonical-upstream = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "Canonical upstream.";
|
description = lib.mdDoc "Canonical upstream.";
|
||||||
default = "gitlab.com";
|
default = "gitlab.com";
|
||||||
};
|
};
|
||||||
repo-cache = mkOption {
|
repo-cache = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "Repository cache directory.";
|
description = lib.mdDoc "Repository cache directory.";
|
||||||
default = "./repo-cache";
|
default = "./repo-cache";
|
||||||
};
|
};
|
||||||
"gitlab.com" = mkOption {
|
"gitlab.com" = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
description = "GitLab id and secret.";
|
description = lib.mdDoc "GitLab id and secret.";
|
||||||
default = null;
|
default = null;
|
||||||
example = "GitLab:application id:secret";
|
example = "GitLab:application id:secret";
|
||||||
};
|
};
|
||||||
|
@ -330,17 +330,17 @@ in
|
||||||
options."builds.sr.ht" = commonServiceSettings "builds" // {
|
options."builds.sr.ht" = commonServiceSettings "builds" // {
|
||||||
allow-free = mkEnableOption "nonpaying users to submit builds";
|
allow-free = mkEnableOption "nonpaying users to submit builds";
|
||||||
redis = mkOption {
|
redis = mkOption {
|
||||||
description = "The Redis connection used for the Celery worker.";
|
description = lib.mdDoc "The Redis connection used for the Celery worker.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "redis+socket:///run/redis-sourcehut-buildsrht/redis.sock?virtual_host=2";
|
default = "redis+socket:///run/redis-sourcehut-buildsrht/redis.sock?virtual_host=2";
|
||||||
};
|
};
|
||||||
shell = mkOption {
|
shell = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Scripts used to launch on SSH connection.
|
Scripts used to launch on SSH connection.
|
||||||
<literal>/usr/bin/master-shell</literal> on master,
|
`/usr/bin/master-shell` on master,
|
||||||
<literal>/usr/bin/runner-shell</literal> on runner.
|
`/usr/bin/runner-shell` on runner.
|
||||||
If master and worker are on the same system
|
If master and worker are on the same system
|
||||||
set to <literal>/usr/bin/runner-shell</literal>.
|
set to `/usr/bin/runner-shell`.
|
||||||
'';
|
'';
|
||||||
type = types.enum ["/usr/bin/master-shell" "/usr/bin/runner-shell"];
|
type = types.enum ["/usr/bin/master-shell" "/usr/bin/runner-shell"];
|
||||||
default = "/usr/bin/master-shell";
|
default = "/usr/bin/master-shell";
|
||||||
|
@ -348,19 +348,19 @@ in
|
||||||
};
|
};
|
||||||
options."builds.sr.ht::worker" = {
|
options."builds.sr.ht::worker" = {
|
||||||
bind-address = mkOption {
|
bind-address = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
HTTP bind address for serving local build information/monitoring.
|
HTTP bind address for serving local build information/monitoring.
|
||||||
'';
|
'';
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost:8080";
|
default = "localhost:8080";
|
||||||
};
|
};
|
||||||
buildlogs = mkOption {
|
buildlogs = mkOption {
|
||||||
description = "Path to write build logs.";
|
description = lib.mdDoc "Path to write build logs.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/var/log/sourcehut/buildsrht-worker";
|
default = "/var/log/sourcehut/buildsrht-worker";
|
||||||
};
|
};
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Listening address and listening port
|
Listening address and listening port
|
||||||
of the build runner (with HTTP port if not 80).
|
of the build runner (with HTTP port if not 80).
|
||||||
'';
|
'';
|
||||||
|
@ -368,9 +368,9 @@ in
|
||||||
default = "localhost:5020";
|
default = "localhost:5020";
|
||||||
};
|
};
|
||||||
timeout = mkOption {
|
timeout = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Max build duration.
|
Max build duration.
|
||||||
See <link xlink:href="https://golang.org/pkg/time/#ParseDuration"/>.
|
See <https://golang.org/pkg/time/#ParseDuration>.
|
||||||
'';
|
'';
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "3m";
|
default = "3m";
|
||||||
|
@ -379,12 +379,12 @@ in
|
||||||
|
|
||||||
options."git.sr.ht" = commonServiceSettings "git" // {
|
options."git.sr.ht" = commonServiceSettings "git" // {
|
||||||
outgoing-domain = mkOption {
|
outgoing-domain = mkOption {
|
||||||
description = "Outgoing domain.";
|
description = lib.mdDoc "Outgoing domain.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://git.localhost.localdomain";
|
default = "https://git.localhost.localdomain";
|
||||||
};
|
};
|
||||||
post-update-script = mkOption {
|
post-update-script = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A post-update script which is installed in every git repo.
|
A post-update script which is installed in every git repo.
|
||||||
This setting is propagated to newer and existing repositories.
|
This setting is propagated to newer and existing repositories.
|
||||||
'';
|
'';
|
||||||
|
@ -393,7 +393,7 @@ in
|
||||||
defaultText = "\${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
|
defaultText = "\${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
|
||||||
};
|
};
|
||||||
repos = mkOption {
|
repos = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to git repositories on disk.
|
Path to git repositories on disk.
|
||||||
If changing the default, you must ensure that
|
If changing the default, you must ensure that
|
||||||
the gitsrht's user as read and write access to it.
|
the gitsrht's user as read and write access to it.
|
||||||
|
@ -402,18 +402,18 @@ in
|
||||||
default = "/var/lib/sourcehut/gitsrht/repos";
|
default = "/var/lib/sourcehut/gitsrht/repos";
|
||||||
};
|
};
|
||||||
webhooks = mkOption {
|
webhooks = mkOption {
|
||||||
description = "The Redis connection used for the webhooks worker.";
|
description = lib.mdDoc "The Redis connection used for the webhooks worker.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "redis+socket:///run/redis-sourcehut-gitsrht/redis.sock?virtual_host=1";
|
default = "redis+socket:///run/redis-sourcehut-gitsrht/redis.sock?virtual_host=1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
options."git.sr.ht::api" = {
|
options."git.sr.ht::api" = {
|
||||||
internal-ipnet = mkOption {
|
internal-ipnet = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Set of IP subnets which are permitted to utilize internal API
|
Set of IP subnets which are permitted to utilize internal API
|
||||||
authentication. This should be limited to the subnets
|
authentication. This should be limited to the subnets
|
||||||
from which your *.sr.ht services are running.
|
from which your *.sr.ht services are running.
|
||||||
See <xref linkend="opt-services.sourcehut.listenAddress"/>.
|
See [](#opt-services.sourcehut.listenAddress).
|
||||||
'';
|
'';
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [ "127.0.0.0/8" "::1/128" ];
|
default = [ "127.0.0.0/8" "::1/128" ];
|
||||||
|
@ -422,7 +422,7 @@ in
|
||||||
|
|
||||||
options."hg.sr.ht" = commonServiceSettings "hg" // {
|
options."hg.sr.ht" = commonServiceSettings "hg" // {
|
||||||
changegroup-script = mkOption {
|
changegroup-script = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A changegroup script which is installed in every mercurial repo.
|
A changegroup script which is installed in every mercurial repo.
|
||||||
This setting is propagated to newer and existing repositories.
|
This setting is propagated to newer and existing repositories.
|
||||||
'';
|
'';
|
||||||
|
@ -431,7 +431,7 @@ in
|
||||||
defaultText = "\${cfg.python}/bin/hgsrht-hook-changegroup";
|
defaultText = "\${cfg.python}/bin/hgsrht-hook-changegroup";
|
||||||
};
|
};
|
||||||
repos = mkOption {
|
repos = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to mercurial repositories on disk.
|
Path to mercurial repositories on disk.
|
||||||
If changing the default, you must ensure that
|
If changing the default, you must ensure that
|
||||||
the hgsrht's user as read and write access to it.
|
the hgsrht's user as read and write access to it.
|
||||||
|
@ -444,18 +444,18 @@ in
|
||||||
(defaults to where the hgsrht code is)
|
(defaults to where the hgsrht code is)
|
||||||
'';
|
'';
|
||||||
clone_bundle_threshold = mkOption {
|
clone_bundle_threshold = mkOption {
|
||||||
description = ".hg/store size (in MB) past which the nightly job generates clone bundles.";
|
description = lib.mdDoc ".hg/store size (in MB) past which the nightly job generates clone bundles.";
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
default = 50;
|
default = 50;
|
||||||
};
|
};
|
||||||
hg_ssh = mkOption {
|
hg_ssh = mkOption {
|
||||||
description = "Path to hg-ssh (if not in $PATH).";
|
description = lib.mdDoc "Path to hg-ssh (if not in $PATH).";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "${pkgs.mercurial}/bin/hg-ssh";
|
default = "${pkgs.mercurial}/bin/hg-ssh";
|
||||||
defaultText = "\${pkgs.mercurial}/bin/hg-ssh";
|
defaultText = "\${pkgs.mercurial}/bin/hg-ssh";
|
||||||
};
|
};
|
||||||
webhooks = mkOption {
|
webhooks = mkOption {
|
||||||
description = "The Redis connection used for the webhooks worker.";
|
description = lib.mdDoc "The Redis connection used for the webhooks worker.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "redis+socket:///run/redis-sourcehut-hgsrht/redis.sock?virtual_host=1";
|
default = "redis+socket:///run/redis-sourcehut-hgsrht/redis.sock?virtual_host=1";
|
||||||
};
|
};
|
||||||
|
@ -467,29 +467,29 @@ in
|
||||||
options."lists.sr.ht" = commonServiceSettings "lists" // {
|
options."lists.sr.ht" = commonServiceSettings "lists" // {
|
||||||
allow-new-lists = mkEnableOption "Allow creation of new lists.";
|
allow-new-lists = mkEnableOption "Allow creation of new lists.";
|
||||||
notify-from = mkOption {
|
notify-from = mkOption {
|
||||||
description = "Outgoing email for notifications generated by users.";
|
description = lib.mdDoc "Outgoing email for notifications generated by users.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "lists-notify@localhost.localdomain";
|
default = "lists-notify@localhost.localdomain";
|
||||||
};
|
};
|
||||||
posting-domain = mkOption {
|
posting-domain = mkOption {
|
||||||
description = "Posting domain.";
|
description = lib.mdDoc "Posting domain.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "lists.localhost.localdomain";
|
default = "lists.localhost.localdomain";
|
||||||
};
|
};
|
||||||
redis = mkOption {
|
redis = mkOption {
|
||||||
description = "The Redis connection used for the Celery worker.";
|
description = lib.mdDoc "The Redis connection used for the Celery worker.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=2";
|
default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=2";
|
||||||
};
|
};
|
||||||
webhooks = mkOption {
|
webhooks = mkOption {
|
||||||
description = "The Redis connection used for the webhooks worker.";
|
description = lib.mdDoc "The Redis connection used for the webhooks worker.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=1";
|
default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
options."lists.sr.ht::worker" = {
|
options."lists.sr.ht::worker" = {
|
||||||
reject-mimetypes = mkOption {
|
reject-mimetypes = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Comma-delimited list of Content-Types to reject. Messages with Content-Types
|
Comma-delimited list of Content-Types to reject. Messages with Content-Types
|
||||||
included in this list are rejected. Multipart messages are always supported,
|
included in this list are rejected. Multipart messages are always supported,
|
||||||
and each part is checked against this list.
|
and each part is checked against this list.
|
||||||
|
@ -500,12 +500,12 @@ in
|
||||||
default = ["text/html"];
|
default = ["text/html"];
|
||||||
};
|
};
|
||||||
reject-url = mkOption {
|
reject-url = mkOption {
|
||||||
description = "Reject URL.";
|
description = lib.mdDoc "Reject URL.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://man.sr.ht/lists.sr.ht/etiquette.md";
|
default = "https://man.sr.ht/lists.sr.ht/etiquette.md";
|
||||||
};
|
};
|
||||||
sock = mkOption {
|
sock = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
|
Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
|
||||||
Alternatively, specify IP:PORT and an SMTP server will be run instead.
|
Alternatively, specify IP:PORT and an SMTP server will be run instead.
|
||||||
'';
|
'';
|
||||||
|
@ -513,7 +513,7 @@ in
|
||||||
default = "/tmp/lists.sr.ht-lmtp.sock";
|
default = "/tmp/lists.sr.ht-lmtp.sock";
|
||||||
};
|
};
|
||||||
sock-group = mkOption {
|
sock-group = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The lmtp daemon will make the unix socket group-read/write
|
The lmtp daemon will make the unix socket group-read/write
|
||||||
for users in this group.
|
for users in this group.
|
||||||
'';
|
'';
|
||||||
|
@ -529,13 +529,13 @@ in
|
||||||
removeAttrs (commonServiceSettings "meta")
|
removeAttrs (commonServiceSettings "meta")
|
||||||
["oauth-client-id" "oauth-client-secret"] // {
|
["oauth-client-id" "oauth-client-secret"] // {
|
||||||
api-origin = mkOption {
|
api-origin = mkOption {
|
||||||
description = "Origin URL for API, 100 more than web.";
|
description = lib.mdDoc "Origin URL for API, 100 more than web.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "http://${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
|
default = "http://${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
|
||||||
defaultText = ''http://<xref linkend="opt-services.sourcehut.listenAddress"/>:''${toString (<xref linkend="opt-services.sourcehut.meta.port"/> + 100)}'';
|
defaultText = ''http://<xref linkend="opt-services.sourcehut.listenAddress"/>:''${toString (<xref linkend="opt-services.sourcehut.meta.port"/> + 100)}'';
|
||||||
};
|
};
|
||||||
webhooks = mkOption {
|
webhooks = mkOption {
|
||||||
description = "The Redis connection used for the webhooks worker.";
|
description = lib.mdDoc "The Redis connection used for the webhooks worker.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1";
|
default = "redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1";
|
||||||
};
|
};
|
||||||
|
@ -543,18 +543,18 @@ in
|
||||||
};
|
};
|
||||||
options."meta.sr.ht::api" = {
|
options."meta.sr.ht::api" = {
|
||||||
internal-ipnet = mkOption {
|
internal-ipnet = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Set of IP subnets which are permitted to utilize internal API
|
Set of IP subnets which are permitted to utilize internal API
|
||||||
authentication. This should be limited to the subnets
|
authentication. This should be limited to the subnets
|
||||||
from which your *.sr.ht services are running.
|
from which your *.sr.ht services are running.
|
||||||
See <xref linkend="opt-services.sourcehut.listenAddress"/>.
|
See [](#opt-services.sourcehut.listenAddress).
|
||||||
'';
|
'';
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [ "127.0.0.0/8" "::1/128" ];
|
default = [ "127.0.0.0/8" "::1/128" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
options."meta.sr.ht::aliases" = mkOption {
|
options."meta.sr.ht::aliases" = mkOption {
|
||||||
description = "Aliases for the client IDs of commonly used OAuth clients.";
|
description = lib.mdDoc "Aliases for the client IDs of commonly used OAuth clients.";
|
||||||
type = with types; attrsOf int;
|
type = with types; attrsOf int;
|
||||||
default = {};
|
default = {};
|
||||||
example = { "git.sr.ht" = 12345; };
|
example = { "git.sr.ht" = 12345; };
|
||||||
|
@ -572,12 +572,12 @@ in
|
||||||
options."meta.sr.ht::settings" = {
|
options."meta.sr.ht::settings" = {
|
||||||
registration = mkEnableOption "public registration";
|
registration = mkEnableOption "public registration";
|
||||||
onboarding-redirect = mkOption {
|
onboarding-redirect = mkOption {
|
||||||
description = "Where to redirect new users upon registration.";
|
description = lib.mdDoc "Where to redirect new users upon registration.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://meta.localhost.localdomain";
|
default = "https://meta.localhost.localdomain";
|
||||||
};
|
};
|
||||||
user-invites = mkOption {
|
user-invites = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How many invites each user is issued upon registration
|
How many invites each user is issued upon registration
|
||||||
(only applicable if open registration is disabled).
|
(only applicable if open registration is disabled).
|
||||||
'';
|
'';
|
||||||
|
@ -588,7 +588,7 @@ in
|
||||||
|
|
||||||
options."pages.sr.ht" = commonServiceSettings "pages" // {
|
options."pages.sr.ht" = commonServiceSettings "pages" // {
|
||||||
gemini-certs = mkOption {
|
gemini-certs = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
An absolute file path (which should be outside the Nix-store)
|
An absolute file path (which should be outside the Nix-store)
|
||||||
to Gemini certificates.
|
to Gemini certificates.
|
||||||
'';
|
'';
|
||||||
|
@ -596,7 +596,7 @@ in
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
max-site-size = mkOption {
|
max-site-size = mkOption {
|
||||||
description = "Maximum size of any given site (post-gunzip), in MiB.";
|
description = lib.mdDoc "Maximum size of any given site (post-gunzip), in MiB.";
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 1024;
|
default = 1024;
|
||||||
};
|
};
|
||||||
|
@ -611,11 +611,11 @@ in
|
||||||
};
|
};
|
||||||
options."pages.sr.ht::api" = {
|
options."pages.sr.ht::api" = {
|
||||||
internal-ipnet = mkOption {
|
internal-ipnet = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Set of IP subnets which are permitted to utilize internal API
|
Set of IP subnets which are permitted to utilize internal API
|
||||||
authentication. This should be limited to the subnets
|
authentication. This should be limited to the subnets
|
||||||
from which your *.sr.ht services are running.
|
from which your *.sr.ht services are running.
|
||||||
See <xref linkend="opt-services.sourcehut.listenAddress"/>.
|
See [](#opt-services.sourcehut.listenAddress).
|
||||||
'';
|
'';
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [ "127.0.0.0/8" "::1/128" ];
|
default = [ "127.0.0.0/8" "::1/128" ];
|
||||||
|
@ -627,24 +627,24 @@ in
|
||||||
|
|
||||||
options."todo.sr.ht" = commonServiceSettings "todo" // {
|
options."todo.sr.ht" = commonServiceSettings "todo" // {
|
||||||
notify-from = mkOption {
|
notify-from = mkOption {
|
||||||
description = "Outgoing email for notifications generated by users.";
|
description = lib.mdDoc "Outgoing email for notifications generated by users.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "todo-notify@localhost.localdomain";
|
default = "todo-notify@localhost.localdomain";
|
||||||
};
|
};
|
||||||
webhooks = mkOption {
|
webhooks = mkOption {
|
||||||
description = "The Redis connection used for the webhooks worker.";
|
description = lib.mdDoc "The Redis connection used for the webhooks worker.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "redis+socket:///run/redis-sourcehut-todosrht/redis.sock?virtual_host=1";
|
default = "redis+socket:///run/redis-sourcehut-todosrht/redis.sock?virtual_host=1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
options."todo.sr.ht::mail" = {
|
options."todo.sr.ht::mail" = {
|
||||||
posting-domain = mkOption {
|
posting-domain = mkOption {
|
||||||
description = "Posting domain.";
|
description = lib.mdDoc "Posting domain.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "todo.localhost.localdomain";
|
default = "todo.localhost.localdomain";
|
||||||
};
|
};
|
||||||
sock = mkOption {
|
sock = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
|
Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
|
||||||
Alternatively, specify IP:PORT and an SMTP server will be run instead.
|
Alternatively, specify IP:PORT and an SMTP server will be run instead.
|
||||||
'';
|
'';
|
||||||
|
@ -652,7 +652,7 @@ in
|
||||||
default = "/tmp/todo.sr.ht-lmtp.sock";
|
default = "/tmp/todo.sr.ht-lmtp.sock";
|
||||||
};
|
};
|
||||||
sock-group = mkOption {
|
sock-group = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The lmtp daemon will make the unix socket group-read/write
|
The lmtp daemon will make the unix socket group-read/write
|
||||||
for users in this group.
|
for users in this group.
|
||||||
'';
|
'';
|
||||||
|
@ -662,7 +662,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
default = { };
|
default = { };
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The configuration for the sourcehut network.
|
The configuration for the sourcehut network.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -698,7 +698,7 @@ in
|
||||||
nixos.unstable.x86_64 = image_from_nixpkgs;
|
nixos.unstable.x86_64 = image_from_nixpkgs;
|
||||||
}
|
}
|
||||||
)'';
|
)'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2.
|
Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -710,12 +710,12 @@ in
|
||||||
default = pkgs.git;
|
default = pkgs.git;
|
||||||
defaultText = literalExpression "pkgs.git";
|
defaultText = literalExpression "pkgs.git";
|
||||||
example = literalExpression "pkgs.gitFull";
|
example = literalExpression "pkgs.gitFull";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Git package for git.sr.ht. This can help silence collisions.
|
Git package for git.sr.ht. This can help silence collisions.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
fcgiwrap.preforkProcess = mkOption {
|
fcgiwrap.preforkProcess = mkOption {
|
||||||
description = "Number of fcgiwrap processes to prefork.";
|
description = lib.mdDoc "Number of fcgiwrap processes to prefork.";
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 4;
|
default = 4;
|
||||||
};
|
};
|
||||||
|
@ -726,14 +726,14 @@ in
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.mercurial;
|
default = pkgs.mercurial;
|
||||||
defaultText = literalExpression "pkgs.mercurial";
|
defaultText = literalExpression "pkgs.mercurial";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Mercurial package for hg.sr.ht. This can help silence collisions.
|
Mercurial package for hg.sr.ht. This can help silence collisions.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
cloneBundles = mkOption {
|
cloneBundles = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories).
|
Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -744,12 +744,12 @@ in
|
||||||
extraArgs = mkOption {
|
extraArgs = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [ "--loglevel DEBUG" "--pool eventlet" "--without-heartbeat" ];
|
default = [ "--loglevel DEBUG" "--pool eventlet" "--without-heartbeat" ];
|
||||||
description = "Extra arguments passed to the Celery responsible for processing mails.";
|
description = lib.mdDoc "Extra arguments passed to the Celery responsible for processing mails.";
|
||||||
};
|
};
|
||||||
celeryConfig = mkOption {
|
celeryConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = "Content of the <literal>celeryconfig.py</literal> used by the Celery of <literal>listssrht-process</literal>.";
|
description = lib.mdDoc "Content of the `celeryconfig.py` used by the Celery of `listssrht-process`.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -122,7 +122,7 @@ in
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = srvsrht;
|
default = srvsrht;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
User for ${srv}.sr.ht.
|
User for ${srv}.sr.ht.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -130,7 +130,7 @@ in
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = srvsrht;
|
default = srvsrht;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Group for ${srv}.sr.ht.
|
Group for ${srv}.sr.ht.
|
||||||
Membership grants access to the Git/Mercurial repositories by default,
|
Membership grants access to the Git/Mercurial repositories by default,
|
||||||
but not to the config.ini file (where secrets are).
|
but not to the config.ini file (where secrets are).
|
||||||
|
@ -140,7 +140,7 @@ in
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = port;
|
default = port;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Port on which the "${srv}" backend should listen.
|
Port on which the "${srv}" backend should listen.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -150,7 +150,7 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "unix:///run/redis-sourcehut-${srvsrht}/redis.sock?db=0";
|
default = "unix:///run/redis-sourcehut-${srvsrht}/redis.sock?db=0";
|
||||||
example = "redis://shared.wireguard:6379/0";
|
example = "redis://shared.wireguard:6379/0";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The redis host URL. This is used for caching and temporary storage, and must
|
The redis host URL. This is used for caching and temporary storage, and must
|
||||||
be shared between nodes (e.g. git1.sr.ht and git2.sr.ht), but need not be
|
be shared between nodes (e.g. git1.sr.ht and git2.sr.ht), but need not be
|
||||||
shared between services. It may be shared between services, however, with no
|
shared between services. It may be shared between services, however, with no
|
||||||
|
@ -163,9 +163,9 @@ in
|
||||||
database = mkOption {
|
database = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "${srv}.sr.ht";
|
default = "${srv}.sr.ht";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
PostgreSQL database name for the ${srv}.sr.ht service,
|
PostgreSQL database name for the ${srv}.sr.ht service,
|
||||||
used if <xref linkend="opt-services.sourcehut.postgresql.enable"/> is <literal>true</literal>.
|
used if [](#opt-services.sourcehut.postgresql.enable) is `true`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -174,7 +174,7 @@ in
|
||||||
extraArgs = mkOption {
|
extraArgs = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = ["--timeout 120" "--workers 1" "--log-level=info"];
|
default = ["--timeout 120" "--workers 1" "--log-level=info"];
|
||||||
description = "Extra arguments passed to Gunicorn.";
|
description = lib.mdDoc "Extra arguments passed to Gunicorn.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} // optionalAttrs webhooks {
|
} // optionalAttrs webhooks {
|
||||||
|
@ -182,12 +182,12 @@ in
|
||||||
extraArgs = mkOption {
|
extraArgs = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = ["--loglevel DEBUG" "--pool eventlet" "--without-heartbeat"];
|
default = ["--loglevel DEBUG" "--pool eventlet" "--without-heartbeat"];
|
||||||
description = "Extra arguments passed to the Celery responsible for webhooks.";
|
description = lib.mdDoc "Extra arguments passed to the Celery responsible for webhooks.";
|
||||||
};
|
};
|
||||||
celeryConfig = mkOption {
|
celeryConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = "Content of the <literal>celeryconfig.py</literal> used by the Celery responsible for webhooks.";
|
description = lib.mdDoc "Content of the `celeryconfig.py` used by the Celery responsible for webhooks.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -227,11 +227,8 @@ in {
|
||||||
queueSize = mkOption {
|
queueSize = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 10;
|
default = 10;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Size of the connection backlog, see <citerefentry>
|
Size of the connection backlog, see {manpage}`listen(2)`.
|
||||||
<refentrytitle>listen</refentrytitle>
|
|
||||||
<manvolnum>2</manvolnum>
|
|
||||||
</citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -324,18 +321,16 @@ in {
|
||||||
config = mkOption {
|
config = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
example.client.cert = "/tmp/debugging.cert";
|
example.client.cert = "/tmp/debugging.cert";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Configuration options to pass to Taskserver.
|
Configuration options to pass to Taskserver.
|
||||||
|
|
||||||
The options here are the same as described in <citerefentry>
|
The options here are the same as described in
|
||||||
<refentrytitle>taskdrc</refentrytitle>
|
{manpage}`taskdrc(5)`, but with one difference:
|
||||||
<manvolnum>5</manvolnum>
|
|
||||||
</citerefentry>, but with one difference:
|
|
||||||
|
|
||||||
The <literal>server</literal> option is
|
The `server` option is
|
||||||
<literal>server.listen</literal> here, because the
|
`server.listen` here, because the
|
||||||
<literal>server</literal> option would collide with other options
|
`server` option would collide with other options
|
||||||
like <literal>server.cert</literal> and we would run in a type error
|
like `server.cert` and we would run in a type error
|
||||||
(attribute set versus string).
|
(attribute set versus string).
|
||||||
|
|
||||||
Nix types like integers or booleans are automatically converted to
|
Nix types like integers or booleans are automatically converted to
|
||||||
|
|
|
@ -125,14 +125,14 @@ in
|
||||||
debug_file = "/var/log/nagios/debug.log";
|
debug_file = "/var/log/nagios/debug.log";
|
||||||
};
|
};
|
||||||
default = {};
|
default = {};
|
||||||
description = "Configuration to add to /etc/nagios.cfg";
|
description = lib.mdDoc "Configuration to add to /etc/nagios.cfg";
|
||||||
};
|
};
|
||||||
|
|
||||||
validateConfig = mkOption {
|
validateConfig = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform;
|
default = pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform;
|
||||||
defaultText = literalExpression "pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform";
|
defaultText = literalExpression "pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform";
|
||||||
description = "if true, the syntax of the nagios configuration file is checked at build time";
|
description = lib.mdDoc "if true, the syntax of the nagios configuration file is checked at build time";
|
||||||
};
|
};
|
||||||
|
|
||||||
cgiConfigFile = mkOption {
|
cgiConfigFile = mkOption {
|
||||||
|
@ -164,9 +164,9 @@ in
|
||||||
sslServerKey = "/var/lib/acme/example.org/key.pem";
|
sslServerKey = "/var/lib/acme/example.org/key.pem";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Apache configuration can be done by adapting <option>services.httpd.virtualHosts</option>.
|
Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
|
||||||
See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
|
See [](#opt-services.httpd.virtualHosts) for further information.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -84,28 +84,28 @@ let
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = port;
|
default = port;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Port to listen on.
|
Port to listen on.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
listenAddress = mkOption {
|
listenAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "0.0.0.0";
|
default = "0.0.0.0";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Address to listen on.
|
Address to listen on.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
extraFlags = mkOption {
|
extraFlags = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra commandline options to pass to the ${name} exporter.
|
Extra commandline options to pass to the ${name} exporter.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
openFirewall = mkOption {
|
openFirewall = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Open port in firewall for incoming connections.
|
Open port in firewall for incoming connections.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -124,14 +124,14 @@ let
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "${name}-exporter";
|
default = "${name}-exporter";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
User name under which the ${name} exporter shall be run.
|
User name under which the ${name} exporter shall be run.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "${name}-exporter";
|
default = "${name}-exporter";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Group under which the ${name} exporter shall be run.
|
Group under which the ${name} exporter shall be run.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -227,7 +227,7 @@ in
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
options = (mkSubModules);
|
options = (mkSubModules);
|
||||||
};
|
};
|
||||||
description = "Prometheus exporter configuration";
|
description = lib.mdDoc "Prometheus exporter configuration";
|
||||||
default = {};
|
default = {};
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
apcupsdAddress = mkOption {
|
apcupsdAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = ":3551";
|
default = ":3551";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Address of the apcupsd Network Information Server (NIS).
|
Address of the apcupsd Network Information Server (NIS).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -19,7 +19,7 @@ in
|
||||||
apcupsdNetwork = mkOption {
|
apcupsdNetwork = mkOption {
|
||||||
type = types.enum ["tcp" "tcp4" "tcp6"];
|
type = types.enum ["tcp" "tcp4" "tcp6"];
|
||||||
default = "tcp";
|
default = "tcp";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Network of the apcupsd Network Information Server (NIS): one of "tcp", "tcp4", or "tcp6".
|
Network of the apcupsd Network Information Server (NIS): one of "tcp", "tcp4", or "tcp6".
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,14 +11,14 @@ in
|
||||||
scrapeUri = mkOption {
|
scrapeUri = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "http://localhost:8081/artifactory";
|
default = "http://localhost:8081/artifactory";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
URI on which to scrape JFrog Artifactory.
|
URI on which to scrape JFrog Artifactory.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
artiUsername = mkOption {
|
artiUsername = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Username for authentication against JFrog Artifactory API.
|
Username for authentication against JFrog Artifactory API.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -26,7 +26,7 @@ in
|
||||||
artiPassword = mkOption {
|
artiPassword = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Password for authentication against JFrog Artifactory API.
|
Password for authentication against JFrog Artifactory API.
|
||||||
One of the password or access token needs to be set.
|
One of the password or access token needs to be set.
|
||||||
'';
|
'';
|
||||||
|
@ -35,7 +35,7 @@ in
|
||||||
artiAccessToken = mkOption {
|
artiAccessToken = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Access token for authentication against JFrog Artifactory API.
|
Access token for authentication against JFrog Artifactory API.
|
||||||
One of the password or access token needs to be set.
|
One of the password or access token needs to be set.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -11,28 +11,28 @@ in
|
||||||
bindURI = mkOption {
|
bindURI = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "http://localhost:8053/";
|
default = "http://localhost:8053/";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
HTTP XML API address of an Bind server.
|
HTTP XML API address of an Bind server.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
bindTimeout = mkOption {
|
bindTimeout = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "10s";
|
default = "10s";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Timeout for trying to get stats from Bind.
|
Timeout for trying to get stats from Bind.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
bindVersion = mkOption {
|
bindVersion = mkOption {
|
||||||
type = types.enum [ "xml.v2" "xml.v3" "auto" ];
|
type = types.enum [ "xml.v2" "xml.v3" "auto" ];
|
||||||
default = "auto";
|
default = "auto";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
BIND statistics version. Can be detected automatically.
|
BIND statistics version. Can be detected automatically.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
bindGroups = mkOption {
|
bindGroups = mkOption {
|
||||||
type = types.listOf (types.enum [ "server" "view" "tasks" ]);
|
type = types.listOf (types.enum [ "server" "view" "tasks" ]);
|
||||||
default = [ "server" "view" ];
|
default = [ "server" "view" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of statistics to collect. Available: [server, view, tasks]
|
List of statistics to collect. Available: [server, view, tasks]
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,21 +11,21 @@ in
|
||||||
birdVersion = mkOption {
|
birdVersion = mkOption {
|
||||||
type = types.enum [ 1 2 ];
|
type = types.enum [ 1 2 ];
|
||||||
default = 2;
|
default = 2;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies whether BIRD1 or BIRD2 is in use.
|
Specifies whether BIRD1 or BIRD2 is in use.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
birdSocket = mkOption {
|
birdSocket = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/run/bird/bird.ctl";
|
default = "/run/bird/bird.ctl";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to BIRD2 (or BIRD1 v4) socket.
|
Path to BIRD2 (or BIRD1 v4) socket.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
newMetricFormat = mkOption {
|
newMetricFormat = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Enable the new more-generic metric format.
|
Enable the new more-generic metric format.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,14 +11,14 @@ in
|
||||||
rpcUser = mkOption {
|
rpcUser = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "bitcoinrpc";
|
default = "bitcoinrpc";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
RPC user name.
|
RPC user name.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
rpcPasswordFile = mkOption {
|
rpcPasswordFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
File containing RPC password.
|
File containing RPC password.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -26,7 +26,7 @@ in
|
||||||
rpcScheme = mkOption {
|
rpcScheme = mkOption {
|
||||||
type = types.enum [ "http" "https" ];
|
type = types.enum [ "http" "https" ];
|
||||||
default = "http";
|
default = "http";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to connect to bitcoind over http or https.
|
Whether to connect to bitcoind over http or https.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -34,7 +34,7 @@ in
|
||||||
rpcHost = mkOption {
|
rpcHost = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
RPC host.
|
RPC host.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -42,7 +42,7 @@ in
|
||||||
rpcPort = mkOption {
|
rpcPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8332;
|
default = 8332;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
RPC port number.
|
RPC port number.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -50,7 +50,7 @@ in
|
||||||
refreshSeconds = mkOption {
|
refreshSeconds = mkOption {
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
default = 300;
|
default = 300;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How often to ask bitcoind for metrics.
|
How often to ask bitcoind for metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -58,7 +58,7 @@ in
|
||||||
extraEnv = mkOption {
|
extraEnv = mkOption {
|
||||||
type = types.attrsOf types.str;
|
type = types.attrsOf types.str;
|
||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Extra environment variables for the exporter.
|
Extra environment variables for the exporter.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,14 +35,14 @@ in {
|
||||||
extraOpts = {
|
extraOpts = {
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to configuration file.
|
Path to configuration file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
enableConfigCheck = mkOption {
|
enableConfigCheck = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to run a correctness check for the configuration file. This depends
|
Whether to run a correctness check for the configuration file. This depends
|
||||||
on the configuration file residing in the nix-store. Paths passed as string will
|
on the configuration file residing in the nix-store. Paths passed as string will
|
||||||
be copied to the store.
|
be copied to the store.
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
tokenPath = mkOption {
|
tokenPath = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
apply = final: if final == null then null else toString final;
|
apply = final: if final == null then null else toString final;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The token from your Buildkite "Agents" page.
|
The token from your Buildkite "Agents" page.
|
||||||
|
|
||||||
A run-time path to the token file, which is supposed to be provisioned
|
A run-time path to the token file, which is supposed to be provisioned
|
||||||
|
@ -22,14 +22,14 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "30s";
|
default = "30s";
|
||||||
example = "1min";
|
example = "1min";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How often to update metrics.
|
How often to update metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
endpoint = mkOption {
|
endpoint = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://agent.buildkite.com/v3";
|
default = "https://agent.buildkite.com/v3";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The Buildkite Agent API endpoint.
|
The Buildkite Agent API endpoint.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -37,7 +37,7 @@ in
|
||||||
type = with types; nullOr (listOf str);
|
type = with types; nullOr (listOf str);
|
||||||
default = null;
|
default = null;
|
||||||
example = literalExpression ''[ "my-queue1" "my-queue2" ]'';
|
example = literalExpression ''[ "my-queue1" "my-queue2" ]'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Which specific queues to process.
|
Which specific queues to process.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,19 +14,19 @@ in
|
||||||
authFile = mkOption {
|
authFile = mkOption {
|
||||||
default = null;
|
default = null;
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
description = "File mapping user names to pre-shared keys (passwords).";
|
description = lib.mdDoc "File mapping user names to pre-shared keys (passwords).";
|
||||||
};
|
};
|
||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 25826;
|
default = 25826;
|
||||||
description = "Network address on which to accept collectd binary network packets.";
|
description = lib.mdDoc "Network address on which to accept collectd binary network packets.";
|
||||||
};
|
};
|
||||||
|
|
||||||
listenAddress = mkOption {
|
listenAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "0.0.0.0";
|
default = "0.0.0.0";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Address to listen on for binary network packets.
|
Address to listen on for binary network packets.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -34,7 +34,7 @@ in
|
||||||
securityLevel = mkOption {
|
securityLevel = mkOption {
|
||||||
type = types.enum ["None" "Sign" "Encrypt"];
|
type = types.enum ["None" "Sign" "Encrypt"];
|
||||||
default = "None";
|
default = "None";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Minimum required security level for accepted packets.
|
Minimum required security level for accepted packets.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -44,7 +44,7 @@ in
|
||||||
type = types.enum [ "logfmt" "json" ];
|
type = types.enum [ "logfmt" "json" ];
|
||||||
default = "logfmt";
|
default = "logfmt";
|
||||||
example = "json";
|
example = "json";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Set the log format.
|
Set the log format.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -52,7 +52,7 @@ in
|
||||||
logLevel = mkOption {
|
logLevel = mkOption {
|
||||||
type = types.enum ["debug" "info" "warn" "error" "fatal"];
|
type = types.enum ["debug" "info" "warn" "error" "fatal"];
|
||||||
default = "info";
|
default = "info";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Only log messages with the given severity or above.
|
Only log messages with the given severity or above.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,28 +24,28 @@ in {
|
||||||
host = mkOption {
|
host = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Hostname of IMAP server to connect to.
|
Hostname of IMAP server to connect to.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 993;
|
default = 993;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Port of the IMAP server to connect to.
|
Port of the IMAP server to connect to.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
username = mkOption {
|
username = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "postmaster@example.org";
|
example = "postmaster@example.org";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Login username for the IMAP connection.
|
Login username for the IMAP connection.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
passwordFile = mkOption {
|
passwordFile = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "/run/secrets/dovecot_pw";
|
example = "/run/secrets/dovecot_pw";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
File containing the login password for the IMAP connection.
|
File containing the login password for the IMAP connection.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -54,21 +54,21 @@ in {
|
||||||
inbox = mkOption {
|
inbox = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "INBOX";
|
default = "INBOX";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
IMAP mailbox that is checked for incoming DMARC aggregate reports
|
IMAP mailbox that is checked for incoming DMARC aggregate reports
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
done = mkOption {
|
done = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "Archive";
|
default = "Archive";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
IMAP mailbox that successfully processed reports are moved to.
|
IMAP mailbox that successfully processed reports are moved to.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
error = mkOption {
|
error = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "Invalid";
|
default = "Invalid";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
IMAP mailbox that emails are moved to that could not be processed.
|
IMAP mailbox that emails are moved to that could not be processed.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -76,7 +76,7 @@ in {
|
||||||
pollIntervalSeconds = mkOption {
|
pollIntervalSeconds = mkOption {
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
default = 60;
|
default = 60;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How often to poll the IMAP server in seconds.
|
How often to poll the IMAP server in seconds.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -84,7 +84,7 @@ in {
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
default = 604800;
|
default = 604800;
|
||||||
defaultText = "7 days (in seconds)";
|
defaultText = "7 days (in seconds)";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How long individual report IDs will be remembered to avoid
|
How long individual report IDs will be remembered to avoid
|
||||||
counting double delivered reports twice.
|
counting double delivered reports twice.
|
||||||
'';
|
'';
|
||||||
|
@ -92,8 +92,8 @@ in {
|
||||||
debug = mkOption {
|
debug = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to declare enable <literal>--debug</literal>.
|
Whether to declare enable `--debug`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
dnsmasqListenAddress = mkOption {
|
dnsmasqListenAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost:53";
|
default = "localhost:53";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Address on which dnsmasq listens.
|
Address on which dnsmasq listens.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -19,8 +19,8 @@ in
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/misc/dnsmasq.leases";
|
default = "/var/lib/misc/dnsmasq.leases";
|
||||||
example = "/var/lib/dnsmasq/dnsmasq.leases";
|
example = "/var/lib/dnsmasq/dnsmasq.leases";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to the <literal>dnsmasq.leases</literal> file.
|
Path to the `dnsmasq.leases` file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -67,7 +67,7 @@ in
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ "user" ];
|
default = [ "user" ];
|
||||||
example = [ "user" "global" ];
|
example = [ "user" "global" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Stats scopes to query.
|
Stats scopes to query.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,9 +12,9 @@ in
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to a fastly-exporter configuration file.
|
Path to a fastly-exporter configuration file.
|
||||||
Example one can be generated with <literal>fastly-exporter --config-file-example</literal>.
|
Example one can be generated with `fastly-exporter --config-file-example`.
|
||||||
'';
|
'';
|
||||||
example = "./fastly-exporter-config.txt";
|
example = "./fastly-exporter-config.txt";
|
||||||
};
|
};
|
||||||
|
@ -22,7 +22,7 @@ in
|
||||||
tokenPath = mkOption {
|
tokenPath = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
apply = final: if final == null then null else toString final;
|
apply = final: if final == null then null else toString final;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A run-time path to the token file, which is supposed to be provisioned
|
A run-time path to the token file, which is supposed to be provisioned
|
||||||
outside of Nix store.
|
outside of Nix store.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -10,19 +10,19 @@ in {
|
||||||
brokers = mkOption {
|
brokers = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
example = literalExpression ''[ "kafka.example.org:19092" ]'';
|
example = literalExpression ''[ "kafka.example.org:19092" ]'';
|
||||||
description = "List of Kafka brokers to connect to.";
|
description = lib.mdDoc "List of Kafka brokers to connect to.";
|
||||||
};
|
};
|
||||||
|
|
||||||
asn = mkOption {
|
asn = mkOption {
|
||||||
type = types.ints.positive;
|
type = types.ints.positive;
|
||||||
example = 65542;
|
example = 65542;
|
||||||
description = "The ASN being monitored.";
|
description = lib.mdDoc "The ASN being monitored.";
|
||||||
};
|
};
|
||||||
|
|
||||||
partitions = mkOption {
|
partitions = mkOption {
|
||||||
type = types.listOf types.int;
|
type = types.listOf types.int;
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The number of the partitions to consume, none means all.
|
The number of the partitions to consume, none means all.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -30,7 +30,7 @@ in {
|
||||||
topic = mkOption {
|
topic = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "pmacct.acct";
|
example = "pmacct.acct";
|
||||||
description = "The Kafka topic to consume from.";
|
description = lib.mdDoc "The Kafka topic to consume from.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
gatewayAddress = mkOption {
|
gatewayAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "fritz.box";
|
default = "fritz.box";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The hostname or IP of the FRITZ!Box.
|
The hostname or IP of the FRITZ!Box.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -19,7 +19,7 @@ in
|
||||||
gatewayPort = mkOption {
|
gatewayPort = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 49000;
|
default = 49000;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The port of the FRITZ!Box UPnP service.
|
The port of the FRITZ!Box UPnP service.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,13 +12,13 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "5m";
|
default = "5m";
|
||||||
example = "10m";
|
example = "10m";
|
||||||
description = "How long a sample is valid for";
|
description = lib.mdDoc "How long a sample is valid for";
|
||||||
};
|
};
|
||||||
udpBindAddress = mkOption {
|
udpBindAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = ":9122";
|
default = ":9122";
|
||||||
example = "192.0.2.1:9122";
|
example = "192.0.2.1:9122";
|
||||||
description = "Address on which to listen for udp packets";
|
description = lib.mdDoc "Address on which to listen for udp packets";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
serviceOpts = {
|
serviceOpts = {
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
url = mkOption {
|
url = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "http://localhost:8080/colibri/stats";
|
default = "http://localhost:8080/colibri/stats";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Jitsi Videobridge metrics URL to monitor.
|
Jitsi Videobridge metrics URL to monitor.
|
||||||
This is usually /colibri/stats on port 8080 of the jitsi videobridge host.
|
This is usually /colibri/stats on port 8080 of the jitsi videobridge host.
|
||||||
'';
|
'';
|
||||||
|
@ -20,7 +20,7 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "30s";
|
default = "30s";
|
||||||
example = "1min";
|
example = "1min";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How often to scrape new data
|
How often to scrape new data
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,7 +10,7 @@ in
|
||||||
extraOpts = {
|
extraOpts = {
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to configuration file.
|
Path to configuration file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,7 +19,7 @@ in {
|
||||||
"/run/kea/kea-dhcp6.socket"
|
"/run/kea/kea-dhcp6.socket"
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Paths to kea control sockets
|
Paths to kea control sockets
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,16 +19,15 @@ in {
|
||||||
knotSocketPath = mkOption {
|
knotSocketPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/run/knot/knot.sock";
|
default = "/run/knot/knot.sock";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Socket path of <citerefentry><refentrytitle>knotd</refentrytitle>
|
Socket path of {manpage}`knotd(8)`.
|
||||||
<manvolnum>8</manvolnum></citerefentry>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
knotSocketTimeout = mkOption {
|
knotSocketTimeout = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 2000;
|
default = 2000;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Timeout in seconds.
|
Timeout in seconds.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,21 +11,21 @@ in
|
||||||
lndHost = mkOption {
|
lndHost = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost:10009";
|
default = "localhost:10009";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
lnd instance gRPC address:port.
|
lnd instance gRPC address:port.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
lndTlsPath = mkOption {
|
lndTlsPath = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to lnd TLS certificate.
|
Path to lnd TLS certificate.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
lndMacaroonDir = mkOption {
|
lndMacaroonDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to lnd macaroons.
|
Path to lnd macaroons.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,41 +22,41 @@ let
|
||||||
serverOptions.options = {
|
serverOptions.options = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Value for label 'configname' which will be added to all metrics.
|
Value for label 'configname' which will be added to all metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
server = mkOption {
|
server = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Hostname of the server that should be probed.
|
Hostname of the server that should be probed.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
example = 587;
|
example = 587;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Port to use for SMTP.
|
Port to use for SMTP.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
from = mkOption {
|
from = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "exporteruser@domain.tld";
|
example = "exporteruser@domain.tld";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Content of 'From' Header for probing mails.
|
Content of 'From' Header for probing mails.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
to = mkOption {
|
to = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "exporteruser@domain.tld";
|
example = "exporteruser@domain.tld";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Content of 'To' Header for probing mails.
|
Content of 'To' Header for probing mails.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
detectionDir = mkOption {
|
detectionDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
example = "/var/spool/mail/exporteruser/new";
|
example = "/var/spool/mail/exporteruser/new";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Directory in which new mails for the exporter user are placed.
|
Directory in which new mails for the exporter user are placed.
|
||||||
Note that this needs to exist when the exporter starts.
|
Note that this needs to exist when the exporter starts.
|
||||||
'';
|
'';
|
||||||
|
@ -65,14 +65,14 @@ let
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "exporteruser@domain.tld";
|
example = "exporteruser@domain.tld";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Username to use for SMTP authentication.
|
Username to use for SMTP authentication.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
passphrase = mkOption {
|
passphrase = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Password to use for SMTP authentication.
|
Password to use for SMTP authentication.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -82,20 +82,20 @@ let
|
||||||
monitoringInterval = mkOption {
|
monitoringInterval = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "10s";
|
example = "10s";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Time interval between two probe attempts.
|
Time interval between two probe attempts.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
mailCheckTimeout = mkOption {
|
mailCheckTimeout = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Timeout until mails are considered "didn't make it".
|
Timeout until mails are considered "didn't make it".
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
disableFileDeletion = mkOption {
|
disableFileDeletion = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Disables the exporter's function to delete probing mails.
|
Disables the exporter's function to delete probing mails.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -115,8 +115,7 @@ let
|
||||||
description = ''
|
description = ''
|
||||||
List of servers that should be probed.
|
List of servers that should be probed.
|
||||||
|
|
||||||
<emphasis>Note:</emphasis> if your mailserver has <citerefentry>
|
<emphasis>Note:</emphasis> if your mailserver has <citerefentry><refentrytitle>rspamd</refentrytitle><manvolnum>8</manvolnum></citerefentry> configured,
|
||||||
<refentrytitle>rspamd</refentrytitle><manvolnum>8</manvolnum></citerefentry> configured,
|
|
||||||
it can happen that emails from this exporter are marked as spam.
|
it can happen that emails from this exporter are marked as spam.
|
||||||
|
|
||||||
It's possible to work around the issue with a config like this:
|
It's possible to work around the issue with a config like this:
|
||||||
|
@ -142,28 +141,28 @@ in
|
||||||
environmentFile = mkOption {
|
environmentFile = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
File containing env-vars to be substituted into the exporter's config.
|
File containing env-vars to be substituted into the exporter's config.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specify the mailexporter configuration file to use.
|
Specify the mailexporter configuration file to use.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
configuration = mkOption {
|
configuration = mkOption {
|
||||||
type = types.nullOr (types.submodule exporterOptions);
|
type = types.nullOr (types.submodule exporterOptions);
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specify the mailexporter configuration file to use.
|
Specify the mailexporter configuration file to use.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,9 +11,9 @@ in
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to a mikrotik exporter configuration file. Mutually exclusive with
|
Path to a mikrotik exporter configuration file. Mutually exclusive with
|
||||||
<option>configuration</option> option.
|
{option}`configuration` option.
|
||||||
'';
|
'';
|
||||||
example = literalExpression "./mikrotik.yml";
|
example = literalExpression "./mikrotik.yml";
|
||||||
};
|
};
|
||||||
|
@ -21,11 +21,11 @@ in
|
||||||
configuration = mkOption {
|
configuration = mkOption {
|
||||||
type = types.nullOr types.attrs;
|
type = types.nullOr types.attrs;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Mikrotik exporter configuration as nix attribute set. Mutually exclusive with
|
Mikrotik exporter configuration as nix attribute set. Mutually exclusive with
|
||||||
<option>configFile</option> option.
|
{option}`configFile` option.
|
||||||
|
|
||||||
See <link xlink:href="https://github.com/nshttpd/mikrotik-exporter/blob/master/README.md"/>
|
See <https://github.com/nshttpd/mikrotik-exporter/blob/master/README.md>
|
||||||
for the description of the configuration file format.
|
for the description of the configuration file format.
|
||||||
'';
|
'';
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
minioAddress = mkOption {
|
minioAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "https://10.0.0.1:9000";
|
example = "https://10.0.0.1:9000";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The URL of the minio server.
|
The URL of the minio server.
|
||||||
Use HTTPS if Minio accepts secure connections only.
|
Use HTTPS if Minio accepts secure connections only.
|
||||||
By default this connects to the local minio server if enabled.
|
By default this connects to the local minio server if enabled.
|
||||||
|
@ -21,28 +21,28 @@ in
|
||||||
minioAccessKey = mkOption {
|
minioAccessKey = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "yourMinioAccessKey";
|
example = "yourMinioAccessKey";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The value of the Minio access key.
|
The value of the Minio access key.
|
||||||
It is required in order to connect to the server.
|
It is required in order to connect to the server.
|
||||||
By default this uses the one from the local minio server if enabled
|
By default this uses the one from the local minio server if enabled
|
||||||
and <literal>config.services.minio.accessKey</literal>.
|
and `config.services.minio.accessKey`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
minioAccessSecret = mkOption {
|
minioAccessSecret = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The value of the Minio access secret.
|
The value of the Minio access secret.
|
||||||
It is required in order to connect to the server.
|
It is required in order to connect to the server.
|
||||||
By default this uses the one from the local minio server if enabled
|
By default this uses the one from the local minio server if enabled
|
||||||
and <literal>config.services.minio.secretKey</literal>.
|
and `config.services.minio.secretKey`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
minioBucketStats = mkOption {
|
minioBucketStats = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collect statistics about the buckets and files in buckets.
|
Collect statistics about the buckets and files in buckets.
|
||||||
It requires more computation, use it carefully in case of large buckets..
|
It requires more computation, use it carefully in case of large buckets..
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
refreshRate = mkOption {
|
refreshRate = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "5s";
|
default = "5s";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How frequently ModemManager will refresh the extended signal quality
|
How frequently ModemManager will refresh the extended signal quality
|
||||||
information for each modem. The duration should be specified in seconds
|
information for each modem. The duration should be specified in seconds
|
||||||
("5s"), minutes ("1m"), or hours ("1h").
|
("5s"), minutes ("1m"), or hours ("1h").
|
||||||
|
|
|
@ -11,16 +11,16 @@ in
|
||||||
url = mkOption {
|
url = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "https://domain.tld";
|
example = "https://domain.tld";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
URL to the Nextcloud serverinfo page.
|
URL to the Nextcloud serverinfo page.
|
||||||
Adding the path to the serverinfo API is optional, it defaults
|
Adding the path to the serverinfo API is optional, it defaults
|
||||||
to <literal>/ocs/v2.php/apps/serverinfo/api/v1/info</literal>.
|
to `/ocs/v2.php/apps/serverinfo/api/v1/info`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
username = mkOption {
|
username = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "nextcloud-exporter";
|
default = "nextcloud-exporter";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Username for connecting to Nextcloud.
|
Username for connecting to Nextcloud.
|
||||||
Note that this account needs to have admin privileges in Nextcloud.
|
Note that this account needs to have admin privileges in Nextcloud.
|
||||||
'';
|
'';
|
||||||
|
@ -28,7 +28,7 @@ in
|
||||||
passwordFile = mkOption {
|
passwordFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
example = "/path/to/password-file";
|
example = "/path/to/password-file";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
File containing the password for connecting to Nextcloud.
|
File containing the password for connecting to Nextcloud.
|
||||||
Make sure that this file is readable by the exporter user.
|
Make sure that this file is readable by the exporter user.
|
||||||
'';
|
'';
|
||||||
|
@ -36,7 +36,7 @@ in
|
||||||
timeout = mkOption {
|
timeout = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "5s";
|
default = "5s";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Timeout for getting server info document.
|
Timeout for getting server info document.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
scrapeUri = mkOption {
|
scrapeUri = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "http://localhost/nginx_status";
|
default = "http://localhost/nginx_status";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Address to access the nginx status page.
|
Address to access the nginx status page.
|
||||||
Can be enabled with services.nginx.statusPage = true.
|
Can be enabled with services.nginx.statusPage = true.
|
||||||
'';
|
'';
|
||||||
|
@ -19,14 +19,14 @@ in
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
sslVerify = mkOption {
|
sslVerify = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to perform certificate verification for https.
|
Whether to perform certificate verification for https.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -37,7 +37,7 @@ in
|
||||||
"label1=value1"
|
"label1=value1"
|
||||||
"label2=value2"
|
"label2=value2"
|
||||||
];
|
];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A list of constant labels that will be used in every metric.
|
A list of constant labels that will be used in every metric.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,7 +24,7 @@ in {
|
||||||
metricsEndpoint = mkOption {
|
metricsEndpoint = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,7 +12,7 @@ in
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "systemd" ];
|
example = [ "systemd" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collectors to enable. The collectors listed here are enabled in addition to the default ones.
|
Collectors to enable. The collectors listed here are enabled in addition to the default ones.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -20,7 +20,7 @@ in
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "timex" ];
|
example = [ "timex" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collectors to disable which are enabled by default.
|
Collectors to disable which are enabled by default.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -40,7 +40,7 @@ in {
|
||||||
metricsPath = mkOption {
|
metricsPath = mkOption {
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
URL path where metrics should be exposed.
|
URL path where metrics should be exposed.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -48,7 +48,7 @@ in {
|
||||||
default = "30s";
|
default = "30s";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "1m";
|
example = "1m";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Scrape interval of the exporter.
|
Scrape interval of the exporter.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,15 +9,15 @@ in {
|
||||||
extraOpts = {
|
extraOpts = {
|
||||||
statusPaths = mkOption {
|
statusPaths = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Paths to OpenVPN status files. Please configure the OpenVPN option
|
Paths to OpenVPN status files. Please configure the OpenVPN option
|
||||||
<literal>status</literal> accordingly.
|
`status` accordingly.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,7 +12,7 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
example = "580a770cb40511eb85290242ac130003580a770cb40511eb85290242ac130003";
|
example = "580a770cb40511eb85290242ac130003580a770cb40511eb85290242ac130003";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
pi-hole API token which can be used instead of a password
|
pi-hole API token which can be used instead of a password
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -20,7 +20,7 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "10s";
|
default = "10s";
|
||||||
example = "30s";
|
example = "30s";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How often to scrape new data
|
How often to scrape new data
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -28,7 +28,7 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
example = "password";
|
example = "password";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The password to login into pihole. An api token can be used instead.
|
The password to login into pihole. An api token can be used instead.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,7 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "pihole";
|
default = "pihole";
|
||||||
example = "127.0.0.1";
|
example = "127.0.0.1";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Hostname or address where to find the pihole webinterface
|
Hostname or address where to find the pihole webinterface
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -44,7 +44,7 @@ in
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 80;
|
default = 80;
|
||||||
example = 443;
|
example = 443;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The port pihole webinterface is reachable on
|
The port pihole webinterface is reachable on
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -52,7 +52,7 @@ in
|
||||||
type = types.enum [ "http" "https" ];
|
type = types.enum [ "http" "https" ];
|
||||||
default = "http";
|
default = "http";
|
||||||
example = "https";
|
example = "https";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The protocol which is used to connect to pihole
|
The protocol which is used to connect to pihole
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,17 +10,17 @@ in
|
||||||
extraOpts = {
|
extraOpts = {
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Group under which the postfix exporter shall be run.
|
Group under which the postfix exporter shall be run.
|
||||||
It should match the group that is allowed to access the
|
It should match the group that is allowed to access the
|
||||||
<literal>showq</literal> socket in the <literal>queue/public/</literal> directory.
|
`showq` socket in the `queue/public/` directory.
|
||||||
Defaults to <literal>services.postfix.setgidGroup</literal> when postfix is enabled.
|
Defaults to `services.postfix.setgidGroup` when postfix is enabled.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -28,7 +28,7 @@ in
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/log/postfix_exporter_input.log";
|
default = "/var/log/postfix_exporter_input.log";
|
||||||
example = "/var/log/mail.log";
|
example = "/var/log/mail.log";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path where Postfix writes log entries.
|
Path where Postfix writes log entries.
|
||||||
This file will be truncated by this exporter!
|
This file will be truncated by this exporter!
|
||||||
'';
|
'';
|
||||||
|
@ -37,7 +37,7 @@ in
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/postfix/queue/public/showq";
|
default = "/var/lib/postfix/queue/public/showq";
|
||||||
example = "/var/spool/postfix/public/showq";
|
example = "/var/spool/postfix/public/showq";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path where Postfix places its showq socket.
|
Path where Postfix places its showq socket.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -45,29 +45,29 @@ in
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to enable reading metrics from the systemd journal instead of from a logfile
|
Whether to enable reading metrics from the systemd journal instead of from a logfile
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
unit = mkOption {
|
unit = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "postfix.service";
|
default = "postfix.service";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Name of the postfix systemd unit.
|
Name of the postfix systemd unit.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
slice = mkOption {
|
slice = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Name of the postfix systemd slice.
|
Name of the postfix systemd slice.
|
||||||
This overrides the <option>systemd.unit</option>.
|
This overrides the {option}`systemd.unit`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
journalPath = mkOption {
|
journalPath = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to the systemd journal.
|
Path to the systemd journal.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -19,14 +19,14 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "user=postgres database=postgres host=/run/postgresql sslmode=disable";
|
default = "user=postgres database=postgres host=/run/postgresql sslmode=disable";
|
||||||
example = "postgresql://username:password@localhost:5432/postgres?sslmode=disable";
|
example = "postgresql://username:password@localhost:5432/postgres?sslmode=disable";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Accepts PostgreSQL URI form and key=value form arguments.
|
Accepts PostgreSQL URI form and key=value form arguments.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
runAsLocalSuperUser = mkOption {
|
runAsLocalSuperUser = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to run the exporter as the local 'postgres' super user.
|
Whether to run the exporter as the local 'postgres' super user.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -37,9 +37,7 @@ in
|
||||||
default = null;
|
default = null;
|
||||||
example = "/root/prometheus-postgres-exporter.env";
|
example = "/root/prometheus-postgres-exporter.env";
|
||||||
description = ''
|
description = ''
|
||||||
Environment file as defined in <citerefentry>
|
Environment file as defined in <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||||
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
|
|
||||||
</citerefentry>.
|
|
||||||
|
|
||||||
Secrets may be passed to the service without adding them to the
|
Secrets may be passed to the service without adding them to the
|
||||||
world-readable Nix store, by specifying placeholder variables as
|
world-readable Nix store, by specifying placeholder variables as
|
||||||
|
|
|
@ -18,11 +18,11 @@ in
|
||||||
{ name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ]; }
|
{ name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ]; }
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
All settings expressed as an Nix attrset.
|
All settings expressed as an Nix attrset.
|
||||||
|
|
||||||
Check the official documentation for the corresponding YAML
|
Check the official documentation for the corresponding YAML
|
||||||
settings that can all be used here: <link xlink:href="https://github.com/ncabatoff/process-exporter"/>
|
settings that can all be used here: <https://github.com/ncabatoff/process-exporter>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,7 @@ in
|
||||||
default = pkgs.prometheus-pve-exporter;
|
default = pkgs.prometheus-pve-exporter;
|
||||||
defaultText = literalExpression "pkgs.prometheus-pve-exporter";
|
defaultText = literalExpression "pkgs.prometheus-pve-exporter";
|
||||||
example = literalExpression "pkgs.prometheus-pve-exporter";
|
example = literalExpression "pkgs.prometheus-pve-exporter";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The package to use for prometheus-pve-exporter
|
The package to use for prometheus-pve-exporter
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -29,7 +29,7 @@ in
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
default = null;
|
default = null;
|
||||||
example = "/etc/prometheus-pve-exporter/pve.env";
|
example = "/etc/prometheus-pve-exporter/pve.env";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to the service's environment file. This path can either be a computed path in /nix/store or a path in the local filesystem.
|
Path to the service's environment file. This path can either be a computed path in /nix/store or a path in the local filesystem.
|
||||||
|
|
||||||
The environment file should NOT be stored in /nix/store as it contains passwords and/or keys in plain text.
|
The environment file should NOT be stored in /nix/store as it contains passwords and/or keys in plain text.
|
||||||
|
@ -42,7 +42,7 @@ in
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
default = null;
|
default = null;
|
||||||
example = "/etc/prometheus-pve-exporter/pve.yml";
|
example = "/etc/prometheus-pve-exporter/pve.yml";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to the service's config file. This path can either be a computed path in /nix/store or a path in the local filesystem.
|
Path to the service's config file. This path can either be a computed path in /nix/store or a path in the local filesystem.
|
||||||
|
|
||||||
The config file should NOT be stored in /nix/store as it will contain passwords and/or keys in plain text.
|
The config file should NOT be stored in /nix/store as it will contain passwords and/or keys in plain text.
|
||||||
|
@ -57,42 +57,42 @@ in
|
||||||
status = mkOption {
|
status = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collect Node/VM/CT status
|
Collect Node/VM/CT status
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
version = mkOption {
|
version = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collect PVE version info
|
Collect PVE version info
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
node = mkOption {
|
node = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collect PVE node info
|
Collect PVE node info
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
cluster = mkOption {
|
cluster = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collect PVE cluster info
|
Collect PVE cluster info
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
resources = mkOption {
|
resources = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collect PVE resources info
|
Collect PVE resources info
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
config = mkOption {
|
config = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Collect PVE onboot status
|
Collect PVE onboot status
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,14 +14,14 @@ in
|
||||||
deviceHostname = mkOption {
|
deviceHostname = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "192.168.1.123";
|
example = "192.168.1.123";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The hostname of the air purification device from which to scrape the metrics.
|
The hostname of the air purification device from which to scrape the metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
protocol = mkOption {
|
protocol = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "http";
|
default = "http";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The protocol to use when communicating with the air purification device.
|
The protocol to use when communicating with the air purification device.
|
||||||
Available: [http, coap, plain_coap]
|
Available: [http, coap, plain_coap]
|
||||||
'';
|
'';
|
||||||
|
@ -29,8 +29,8 @@ in
|
||||||
stateDir = mkOption {
|
stateDir = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "prometheus-py-air-control-exporter";
|
default = "prometheus-py-air-control-exporter";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Directory below <literal>/var/lib</literal> to store runtime data.
|
Directory below `/var/lib` to store runtime data.
|
||||||
This directory will be created automatically using systemd's StateDirectory mechanism.
|
This directory will be created automatically using systemd's StateDirectory mechanism.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -69,7 +69,7 @@ in
|
||||||
custom_label = "some_value";
|
custom_label = "some_value";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = "Set of labels added to each metric.";
|
description = lib.mdDoc "Set of labels added to each metric.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
serviceOpts.serviceConfig.ExecStart = ''
|
serviceOpts.serviceConfig.ExecStart = ''
|
||||||
|
|
|
@ -12,7 +12,7 @@ in
|
||||||
options = {
|
options = {
|
||||||
name = lib.mkOption {
|
name = lib.mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
description = "Name to match.";
|
description = lib.mdDoc "Name to match.";
|
||||||
};
|
};
|
||||||
"${field}" = lib.mkOption {
|
"${field}" = lib.mkOption {
|
||||||
type = int;
|
type = int;
|
||||||
|
@ -20,7 +20,7 @@ in
|
||||||
};
|
};
|
||||||
location = lib.mkOption {
|
location = lib.mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
description = "Location to match.";
|
description = lib.mdDoc "Location to match.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
@ -30,9 +30,9 @@ in
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "-C si";
|
default = "-C si";
|
||||||
example = "-C si -R 19";
|
example = "-C si -R 19";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Flags passed verbatim to rtl_433 binary.
|
Flags passed verbatim to rtl_433 binary.
|
||||||
Having <literal>-C si</literal> (the default) is recommended since only Celsius temperatures are parsed.
|
Having `-C si` (the default) is recommended since only Celsius temperatures are parsed.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
channels = lib.mkOption {
|
channels = lib.mkOption {
|
||||||
|
@ -41,7 +41,7 @@ in
|
||||||
example = [
|
example = [
|
||||||
{ name = "Acurite"; channel = 6543; location = "Kitchen"; }
|
{ name = "Acurite"; channel = 6543; location = "Kitchen"; }
|
||||||
];
|
];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of channel matchers to export.
|
List of channel matchers to export.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -51,7 +51,7 @@ in
|
||||||
example = [
|
example = [
|
||||||
{ name = "Nexus"; id = 1; location = "Bedroom"; }
|
{ name = "Nexus"; id = 1; location = "Bedroom"; }
|
||||||
];
|
];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of ID matchers to export.
|
List of ID matchers to export.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,18 +15,18 @@ in
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
example = "sleep";
|
example = "sleep";
|
||||||
description = "Name of the script.";
|
description = lib.mdDoc "Name of the script.";
|
||||||
};
|
};
|
||||||
script = mkOption {
|
script = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
example = "sleep 5";
|
example = "sleep 5";
|
||||||
description = "Shell script to execute when metrics are requested.";
|
description = lib.mdDoc "Shell script to execute when metrics are requested.";
|
||||||
};
|
};
|
||||||
timeout = mkOption {
|
timeout = mkOption {
|
||||||
type = nullOr int;
|
type = nullOr int;
|
||||||
default = null;
|
default = null;
|
||||||
example = 60;
|
example = 60;
|
||||||
description = "Optional timeout for the script in seconds.";
|
description = lib.mdDoc "Optional timeout for the script in seconds.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
@ -37,11 +37,11 @@ in
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
All settings expressed as an Nix attrset.
|
All settings expressed as an Nix attrset.
|
||||||
|
|
||||||
Check the official documentation for the corresponding YAML
|
Check the official documentation for the corresponding YAML
|
||||||
settings that can all be used here: <link xlink:href="https://github.com/adhocteam/script_exporter#sample-configuration"/>
|
settings that can all be used here: <https://github.com/adhocteam/script_exporter#sample-configuration>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,7 +24,7 @@ in {
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
[ "/dev/sda", "/dev/nvme0n1" ];
|
[ "/dev/sda", "/dev/nvme0n1" ];
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Paths to the disks that will be monitored. Will autodiscover
|
Paths to the disks that will be monitored. Will autodiscover
|
||||||
all disks if none given.
|
all disks if none given.
|
||||||
'';
|
'';
|
||||||
|
@ -33,7 +33,7 @@ in {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "60s";
|
default = "60s";
|
||||||
example = "2m";
|
example = "2m";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Interval that limits how often a disk can be queried.
|
Interval that limits how often a disk can be queried.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,27 +17,27 @@ in
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
pingInterval = mkOption {
|
pingInterval = mkOption {
|
||||||
type = goDuration;
|
type = goDuration;
|
||||||
default = "1s";
|
default = "1s";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Interval between pings.
|
Interval between pings.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
buckets = mkOption {
|
buckets = mkOption {
|
||||||
type = types.commas;
|
type = types.commas;
|
||||||
default = "5e-05,0.0001,0.0002,0.0004,0.0008,0.0016,0.0032,0.0064,0.0128,0.0256,0.0512,0.1024,0.2048,0.4096,0.8192,1.6384,3.2768,6.5536,13.1072,26.2144";
|
default = "5e-05,0.0001,0.0002,0.0004,0.0008,0.0016,0.0032,0.0064,0.0128,0.0256,0.0512,0.1024,0.2048,0.4096,0.8192,1.6384,3.2768,6.5536,13.1072,26.2144";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of buckets to use for the response duration histogram.
|
List of buckets to use for the response duration histogram.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
hosts = mkOption {
|
hosts = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
List of endpoints to probe.
|
List of endpoints to probe.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
configurationPath = mkOption {
|
configurationPath = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to a snmp exporter configuration file. Mutually exclusive with 'configuration' option.
|
Path to a snmp exporter configuration file. Mutually exclusive with 'configuration' option.
|
||||||
'';
|
'';
|
||||||
example = literalExpression "./snmp.yml";
|
example = literalExpression "./snmp.yml";
|
||||||
|
@ -20,7 +20,7 @@ in
|
||||||
configuration = mkOption {
|
configuration = mkOption {
|
||||||
type = types.nullOr types.attrs;
|
type = types.nullOr types.attrs;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Snmp exporter configuration as nix attribute set. Mutually exclusive with 'configurationPath' option.
|
Snmp exporter configuration as nix attribute set. Mutually exclusive with 'configurationPath' option.
|
||||||
'';
|
'';
|
||||||
example = {
|
example = {
|
||||||
|
@ -36,7 +36,7 @@ in
|
||||||
logFormat = mkOption {
|
logFormat = mkOption {
|
||||||
type = types.enum ["logfmt" "json"];
|
type = types.enum ["logfmt" "json"];
|
||||||
default = "logfmt";
|
default = "logfmt";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Output format of log messages.
|
Output format of log messages.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -44,7 +44,7 @@ in
|
||||||
logLevel = mkOption {
|
logLevel = mkOption {
|
||||||
type = types.enum ["debug" "info" "warn" "error"];
|
type = types.enum ["debug" "info" "warn" "error"];
|
||||||
default = "info";
|
default = "info";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Only log messages with the given severity or above.
|
Only log messages with the given severity or above.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,7 +7,7 @@ let
|
||||||
jobs = mkOption {
|
jobs = mkOption {
|
||||||
type = attrsOf (submodule jobOptions);
|
type = attrsOf (submodule jobOptions);
|
||||||
default = { };
|
default = { };
|
||||||
description = "An attrset of metrics scraping jobs to run.";
|
description = lib.mdDoc "An attrset of metrics scraping jobs to run.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -15,23 +15,23 @@ let
|
||||||
options = with types; {
|
options = with types; {
|
||||||
interval = mkOption {
|
interval = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
How often to run this job, specified in
|
How often to run this job, specified in
|
||||||
<link xlink:href="https://golang.org/pkg/time/#ParseDuration">Go duration</link> format.
|
[Go duration](https://golang.org/pkg/time/#ParseDuration) format.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
connections = mkOption {
|
connections = mkOption {
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
description = "A list of connection strings of the SQL servers to scrape metrics from";
|
description = lib.mdDoc "A list of connection strings of the SQL servers to scrape metrics from";
|
||||||
};
|
};
|
||||||
startupSql = mkOption {
|
startupSql = mkOption {
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
description = "A list of SQL statements to execute once after making a connection.";
|
description = lib.mdDoc "A list of SQL statements to execute once after making a connection.";
|
||||||
};
|
};
|
||||||
queries = mkOption {
|
queries = mkOption {
|
||||||
type = attrsOf (submodule queryOptions);
|
type = attrsOf (submodule queryOptions);
|
||||||
description = "SQL queries to run.";
|
description = lib.mdDoc "SQL queries to run.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -40,20 +40,20 @@ let
|
||||||
help = mkOption {
|
help = mkOption {
|
||||||
type = nullOr str;
|
type = nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "A human-readable description of this metric.";
|
description = lib.mdDoc "A human-readable description of this metric.";
|
||||||
};
|
};
|
||||||
labels = mkOption {
|
labels = mkOption {
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = "A set of columns that will be used as Prometheus labels.";
|
description = lib.mdDoc "A set of columns that will be used as Prometheus labels.";
|
||||||
};
|
};
|
||||||
query = mkOption {
|
query = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
description = "The SQL query to run.";
|
description = lib.mdDoc "The SQL query to run.";
|
||||||
};
|
};
|
||||||
values = mkOption {
|
values = mkOption {
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
description = "A set of columns that will be used as values of this metric.";
|
description = lib.mdDoc "A set of columns that will be used as values of this metric.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -77,14 +77,14 @@ in
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to configuration file.
|
Path to configuration file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
configuration = mkOption {
|
configuration = mkOption {
|
||||||
type = with types; nullOr (submodule cfgOptions);
|
type = with types; nullOr (submodule cfgOptions);
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Exporter configuration as nix attribute set. Mutually exclusive with 'configFile' option.
|
Exporter configuration as nix attribute set. Mutually exclusive with 'configFile' option.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
modemAddress = mkOption {
|
modemAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "192.168.100.1";
|
default = "192.168.100.1";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The hostname or IP of the cable modem.
|
The hostname or IP of the cable modem.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
torControlAddress = mkOption {
|
torControlAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Tor control IP address or hostname.
|
Tor control IP address or hostname.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -19,7 +19,7 @@ in
|
||||||
torControlPort = mkOption {
|
torControlPort = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 9051;
|
default = 9051;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Tor control port.
|
Tor control port.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,7 +12,7 @@ in
|
||||||
# TODO: add shm when upstream implemented it
|
# TODO: add shm when upstream implemented it
|
||||||
type = types.enum [ "tcp" "uds" ];
|
type = types.enum [ "tcp" "uds" ];
|
||||||
default = "uds";
|
default = "uds";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Which methods the exporter uses to get the information from unbound.
|
Which methods the exporter uses to get the information from unbound.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -20,7 +20,7 @@ in
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -29,7 +29,7 @@ in
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "/run/unbound/unbound.socket";
|
example = "/run/unbound/unbound.socket";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to the unbound socket for uds mode or the control interface port for tcp mode.
|
Path to the unbound socket for uds mode or the control interface port for tcp mode.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
unifiAddress = mkOption {
|
unifiAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "https://10.0.0.1:8443";
|
example = "https://10.0.0.1:8443";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
URL of the UniFi Controller API.
|
URL of the UniFi Controller API.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -19,7 +19,7 @@ in
|
||||||
unifiInsecure = mkOption {
|
unifiInsecure = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If enabled skip the verification of the TLS certificate of the UniFi Controller API.
|
If enabled skip the verification of the TLS certificate of the UniFi Controller API.
|
||||||
Use with caution.
|
Use with caution.
|
||||||
'';
|
'';
|
||||||
|
@ -28,14 +28,14 @@ in
|
||||||
unifiUsername = mkOption {
|
unifiUsername = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "ReadOnlyUser";
|
example = "ReadOnlyUser";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
username for authentication against UniFi Controller API.
|
username for authentication against UniFi Controller API.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
unifiPassword = mkOption {
|
unifiPassword = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Password for authentication against UniFi Controller API.
|
Password for authentication against UniFi Controller API.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -44,7 +44,7 @@ in
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "5s";
|
default = "5s";
|
||||||
example = "2m";
|
example = "2m";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Timeout including unit for UniFi Controller API requests.
|
Timeout including unit for UniFi Controller API requests.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,35 +11,35 @@ in
|
||||||
noExit = mkOption {
|
noExit = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Do not exit server on Varnish scrape errors.
|
Do not exit server on Varnish scrape errors.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
withGoMetrics = mkOption {
|
withGoMetrics = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Export go runtime and http handler metrics.
|
Export go runtime and http handler metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
verbose = mkOption {
|
verbose = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Enable verbose logging.
|
Enable verbose logging.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
raw = mkOption {
|
raw = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Enable raw stdout logging without timestamps.
|
Enable raw stdout logging without timestamps.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
varnishStatPath = mkOption {
|
varnishStatPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "varnishstat";
|
default = "varnishstat";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to varnishstat.
|
Path to varnishstat.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -47,21 +47,21 @@ in
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = config.services.varnish.stateDir;
|
default = config.services.varnish.stateDir;
|
||||||
defaultText = lib.literalExpression "config.services.varnish.stateDir";
|
defaultText = lib.literalExpression "config.services.varnish.stateDir";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
varnishstat -n value.
|
varnishstat -n value.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
healthPath = mkOption {
|
healthPath = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose healthcheck. Disabled unless configured.
|
Path under which to expose healthcheck. Disabled unless configured.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
telemetryPath = mkOption {
|
telemetryPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/metrics";
|
default = "/metrics";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path under which to expose metrics.
|
Path under which to expose metrics.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,13 +17,13 @@ in {
|
||||||
type = with types; nullOr (either path str);
|
type = with types; nullOr (either path str);
|
||||||
default = null;
|
default = null;
|
||||||
|
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path to the Wireguard Config to
|
Path to the Wireguard Config to
|
||||||
<link xlink:href="https://github.com/MindFlavor/prometheus_wireguard_exporter/tree/2.0.0#usage">add the peer's name to the stats of a peer</link>.
|
[add the peer's name to the stats of a peer](https://github.com/MindFlavor/prometheus_wireguard_exporter/tree/2.0.0#usage).
|
||||||
|
|
||||||
Please note that <literal>networking.wg-quick</literal> is required for this feature
|
Please note that `networking.wg-quick` is required for this feature
|
||||||
as <literal>networking.wireguard</literal> uses
|
as `networking.wireguard` uses
|
||||||
<citerefentry><refentrytitle>wg</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
{manpage}`wg(8)`
|
||||||
to set the peers up.
|
to set the peers up.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -31,18 +31,18 @@ in {
|
||||||
singleSubnetPerField = mkOption {
|
singleSubnetPerField = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
By default, all allowed IPs and subnets are comma-separated in the
|
By default, all allowed IPs and subnets are comma-separated in the
|
||||||
<literal>allowed_ips</literal> field. With this option enabled,
|
`allowed_ips` field. With this option enabled,
|
||||||
a single IP and subnet will be listed in fields like <literal>allowed_ip_0</literal>,
|
a single IP and subnet will be listed in fields like `allowed_ip_0`,
|
||||||
<literal>allowed_ip_1</literal> and so on.
|
`allowed_ip_1` and so on.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
withRemoteIp = mkOption {
|
withRemoteIp = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether or not the remote IP of a WireGuard peer should be exposed via prometheus.
|
Whether or not the remote IP of a WireGuard peer should be exposed via prometheus.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -41,9 +41,7 @@ in
|
||||||
default = null;
|
default = null;
|
||||||
example = "/run/secrets/litestream";
|
example = "/run/secrets/litestream";
|
||||||
description = ''
|
description = ''
|
||||||
Environment file as defined in <citerefentry>
|
Environment file as defined in <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||||
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
|
|
||||||
</citerefentry>.
|
|
||||||
|
|
||||||
Secrets may be passed to the service without adding them to the
|
Secrets may be passed to the service without adding them to the
|
||||||
world-readable Nix store, by specifying placeholder variables as
|
world-readable Nix store, by specifying placeholder variables as
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue