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