···15151616 programs.java = {
17171818- enable = mkEnableOption "java" // {
1919- description = ''
1818+ enable = mkEnableOption (lib.mdDoc "java") // {
1919+ description = lib.mdDoc ''
2020 Install and setup the Java development kit.
2121- <note>
2222- <para>This adds JAVA_HOME to the global environment, by sourcing the
2323- jdk's setup-hook on shell init. It is equivalent to starting a shell
2424- through 'nix-shell -p jdk', or roughly the following system-wide
2525- configuration:
2626- </para>
2727- <programlisting>
2828- environment.variables.JAVA_HOME = ''${pkgs.jdk.home}/lib/openjdk;
2929- environment.systemPackages = [ pkgs.jdk ];
3030- </programlisting>
3131- </note>
2121+2222+ ::: {.note}
2323+ This adds JAVA_HOME to the global environment, by sourcing the
2424+ jdk's setup-hook on shell init. It is equivalent to starting a shell
2525+ through 'nix-shell -p jdk', or roughly the following system-wide
2626+ configuration:
2727+2828+ environment.variables.JAVA_HOME = ''${pkgs.jdk.home}/lib/openjdk;
2929+ environment.systemPackages = [ pkgs.jdk ];
3030+ :::
3231 '';
3332 };
3433
+22-14
nixos/modules/security/dhparams.nix
···5656 in attrsOf (coercedTo int coerce (submodule paramsSubmodule));
5757 default = {};
5858 example = lib.literalExpression "{ nginx.bits = 3072; }";
5959- description = ''
5959+ description = lib.mdDoc ''
6060 Diffie-Hellman parameters to generate.
61616262 The value is the size (in bits) of the DH params to generate. The
6363 generated DH params path can be found in
6464- <literal>config.security.dhparams.params.«name».path</literal>.
6464+ `config.security.dhparams.params.«name».path`.
65656666- <note><para>The name of the DH params is taken as being the name of
6666+ ::: {.note}
6767+ The name of the DH params is taken as being the name of
6768 the service it serves and the params will be generated before the
6868- said service is started.</para></note>
6969+ said service is started.
7070+ :::
69717070- <warning><para>If you are removing all dhparams from this list, you
7171- have to leave <option>security.dhparams.enable</option> for at
7272+ ::: {.warning}
7373+ If you are removing all dhparams from this list, you
7474+ have to leave {option}`security.dhparams.enable` for at
7275 least one activation in order to have them be cleaned up. This also
7376 means if you rollback to a version without any dhparams the
7477 existing ones won't be cleaned up. Of course this only applies if
7575- <option>security.dhparams.stateful</option> is
7676- <literal>true</literal>.</para></warning>
7878+ {option}`security.dhparams.stateful` is
7979+ `true`.
8080+ :::
77817878- <note><title>For module implementers:</title><para>It's recommended
8282+ ::: {.note}
8383+ **For module implementers:** It's recommended
7984 to not set a specific bit size here, so that users can easily
8085 override this by setting
8181- <option>security.dhparams.defaultBitSize</option>.</para></note>
8686+ {option}`security.dhparams.defaultBitSize`.
8787+ :::
8288 '';
8389 };
84908591 stateful = mkOption {
8692 type = types.bool;
8793 default = true;
8888- description = ''
9494+ description = lib.mdDoc ''
8995 Whether generation of Diffie-Hellman parameters should be stateful or
9096 not. If this is enabled, PEM-encoded files for Diffie-Hellman
9197 parameters are placed in the directory specified by
9292- <option>security.dhparams.path</option>. Otherwise the files are
9898+ {option}`security.dhparams.path`. Otherwise the files are
9399 created within the Nix store.
941009595- <note><para>If this is <literal>false</literal> the resulting store
101101+ ::: {.note}
102102+ If this is `false` the resulting store
96103 path will be non-deterministic and will be rebuilt every time the
9797- <literal>openssl</literal> package changes.</para></note>
104104+ `openssl` package changes.
105105+ :::
98106 '';
99107 };
100108
+18-16
nixos/modules/security/systemd-confinement.nix
···3838 type = types.listOf (types.either types.str types.package);
3939 default = [];
4040 description = let
4141- mkScOption = optName: "<option>serviceConfig.${optName}</option>";
4242- in ''
4141+ mkScOption = optName: "{option}`serviceConfig.${optName}`";
4242+ in lib.mdDoc ''
4343 Additional packages or strings with context to add to the closure of
4444 the chroot. By default, this includes all the packages from the
4545 ${lib.concatMapStringsSep ", " mkScOption [
···4747 "ExecStopPost"
4848 ]} and ${mkScOption "ExecStart"} options. If you want to have all the
4949 dependencies of this systemd unit, you can use
5050- <option>confinement.fullUnit</option>.
5050+ {option}`confinement.fullUnit`.
51515252- <note><para>The store paths listed in <option>path</option> are
5353- <emphasis role="strong">not</emphasis> included in the closure as
5252+ ::: {.note}
5353+ The store paths listed in {option}`path` are
5454+ **not** included in the closure as
5455 well as paths from other options except those listed
5555- above.</para></note>
5656+ above.
5757+ :::
5658 '';
5759 };
5860···7476 options.confinement.mode = lib.mkOption {
7577 type = types.enum [ "full-apivfs" "chroot-only" ];
7678 default = "full-apivfs";
7777- description = ''
7878- The value <literal>full-apivfs</literal> (the default) sets up
7979- private <filename class="directory">/dev</filename>, <filename
8080- class="directory">/proc</filename>, <filename
8181- class="directory">/sys</filename> and <filename
8282- class="directory">/tmp</filename> file systems in a separate user
7979+ description = lib.mdDoc ''
8080+ The value `full-apivfs` (the default) sets up
8181+ private {file}`/dev`, {file}`/proc`,
8282+ {file}`/sys` and {file}`/tmp` file systems in a separate user
8383 name space.
84848585- If this is set to <literal>chroot-only</literal>, only the file
8585+ If this is set to `chroot-only`, only the file
8686 system name space is set up along with the call to
8787- <citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
8787+ {manpage}`chroot(2)`.
88888989- <note><para>This doesn't cover network namespaces and is solely for
9090- file system level isolation.</para></note>
8989+ ::: {.note}
9090+ This doesn't cover network namespaces and is solely for
9191+ file system level isolation.
9292+ :::
9193 '';
9294 };
9395
+10-10
nixos/modules/security/wrappers/default.nix
···5151 options.capabilities = lib.mkOption
5252 { type = lib.types.commas;
5353 default = "";
5454- description = ''
5454+ description = lib.mdDoc ''
5555 A comma-separated list of capabilities to be given to the wrapper
5656 program. For capabilities supported by the system check the
5757- <citerefentry><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>
5757+ {manpage}`capabilities(7)`
5858 manual page.
59596060- <note><para>
6161- <literal>cap_setpcap</literal>, which is required for the wrapper
6262- program to be able to raise caps into the Ambient set is NOT raised
6363- to the Ambient set so that the real program cannot modify its own
6464- capabilities!! This may be too restrictive for cases in which the
6565- real program needs cap_setpcap but it at least leans on the side
6666- security paranoid vs. too relaxed.
6767- </para></note>
6060+ ::: {.note}
6161+ `cap_setpcap`, which is required for the wrapper
6262+ program to be able to raise caps into the Ambient set is NOT raised
6363+ to the Ambient set so that the real program cannot modify its own
6464+ capabilities!! This may be too restrictive for cases in which the
6565+ real program needs cap_setpcap but it at least leans on the side
6666+ security paranoid vs. too relaxed.
6767+ :::
6868 '';
6969 };
7070 options.setuid = lib.mkOption
+6-6
nixos/modules/services/backup/duplicati.nix
···2121 dataDir = mkOption {
2222 type = types.str;
2323 default = "/var/lib/duplicati";
2424- description = ''
2424+ description = lib.mdDoc ''
2525 The directory where Duplicati stores its data files.
26262727- <note><para>
2828- If left as the default value this directory will automatically be created
2929- before the Duplicati server starts, otherwise you are responsible for ensuring
3030- the directory exists with appropriate ownership and permissions.
3131- </para></note>
2727+ ::: {.note}
2828+ If left as the default value this directory will automatically be created
2929+ before the Duplicati server starts, otherwise you are responsible for ensuring
3030+ the directory exists with appropriate ownership and permissions.
3131+ :::
3232 '';
3333 };
3434
+19-21
nixos/modules/services/databases/mysql.nix
···4444 user = mkOption {
4545 type = types.str;
4646 default = "mysql";
4747- description = ''
4747+ description = lib.mdDoc ''
4848 User account under which MySQL runs.
49495050- <note><para>
5050+ ::: {.note}
5151 If left as the default value this user will automatically be created
5252 on system activation, otherwise you are responsible for
5353 ensuring the user exists before the MySQL service starts.
5454- </para></note>
5454+ :::
5555 '';
5656 };
57575858 group = mkOption {
5959 type = types.str;
6060 default = "mysql";
6161- description = ''
6161+ description = lib.mdDoc ''
6262 Group account under which MySQL runs.
63636464- <note><para>
6464+ ::: {.note}
6565 If left as the default value this group will automatically be created
6666 on system activation, otherwise you are responsible for
6767 ensuring the user exists before the MySQL service starts.
6868- </para></note>
6868+ :::
6969 '';
7070 };
71717272 dataDir = mkOption {
7373 type = types.path;
7474 example = "/var/lib/mysql";
7575- description = ''
7575+ description = lib.mdDoc ''
7676 The data directory for MySQL.
77777878- <note><para>
7979- If left as the default value of <literal>/var/lib/mysql</literal> this directory will automatically be created before the MySQL
7878+ ::: {.note}
7979+ If left as the default value of `/var/lib/mysql` this directory will automatically be created before the MySQL
8080 server starts, otherwise you are responsible for ensuring the directory exists with appropriate ownership and permissions.
8181- </para></note>
8181+ :::
8282 '';
8383 };
8484···107107 settings = mkOption {
108108 type = format.type;
109109 default = {};
110110- description = ''
110110+ description = lib.mdDoc ''
111111 MySQL configuration. Refer to
112112- <link xlink:href="https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html"/>,
113113- <link xlink:href="https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html"/>,
114114- and <link xlink:href="https://mariadb.com/kb/en/server-system-variables/"/>
112112+ <https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html>,
113113+ <https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html>,
114114+ and <https://mariadb.com/kb/en/server-system-variables/>
115115 for details on supported values.
116116117117- <note>
118118- <para>
119119- MySQL configuration options such as <literal>--quick</literal> should be treated as
120120- boolean options and provided values such as <literal>true</literal>, <literal>false</literal>,
121121- <literal>1</literal>, or <literal>0</literal>. See the provided example below.
122122- </para>
123123- </note>
117117+ ::: {.note}
118118+ MySQL configuration options such as `--quick` should be treated as
119119+ boolean options and provided values such as `true`, `false`,
120120+ `1`, or `0`. See the provided example below.
121121+ :::
124122 '';
125123 example = literalExpression ''
126124 {
+7-7
nixos/modules/services/databases/postgresql.nix
···230230 settings = mkOption {
231231 type = with types; attrsOf (oneOf [ bool float int str ]);
232232 default = {};
233233- description = ''
233233+ description = lib.mdDoc ''
234234 PostgreSQL configuration. Refer to
235235- <link xlink:href="https://www.postgresql.org/docs/11/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE"/>
236236- for an overview of <literal>postgresql.conf</literal>.
235235+ <https://www.postgresql.org/docs/11/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE>
236236+ for an overview of `postgresql.conf`.
237237238238- <note><para>
239239- String values will automatically be enclosed in single quotes. Single quotes will be
240240- escaped with two single quotes as described by the upstream documentation linked above.
241241- </para></note>
238238+ ::: {.note}
239239+ String values will automatically be enclosed in single quotes. Single quotes will be
240240+ escaped with two single quotes as described by the upstream documentation linked above.
241241+ :::
242242 '';
243243 example = literalExpression ''
244244 {
+4-4
nixos/modules/services/hardware/acpid.nix
···7272 };
7373 });
74747575- description = ''
7575+ description = lib.mdDoc ''
7676 Event handlers.
77777878- <note><para>
7979- Handler can be a single command.
8080- </para></note>
7878+ ::: {.note}
7979+ Handler can be a single command.
8080+ :::
8181 '';
8282 default = {};
8383 example = {
+5-5
nixos/modules/services/hardware/bluetooth.nix
···5151 default = pkgs.bluez;
5252 defaultText = literalExpression "pkgs.bluez";
5353 example = literalExpression "pkgs.bluezFull";
5454- description = ''
5454+ description = lib.mdDoc ''
5555 Which BlueZ package to use.
56565757- <note><para>
5858- Use the <literal>pkgs.bluezFull</literal> package to enable all
5959- bluez plugins.
6060- </para></note>
5757+ ::: {.note}
5858+ Use the `pkgs.bluezFull` package to enable all
5959+ bluez plugins.
6060+ :::
6161 '';
6262 };
6363
+8-8
nixos/modules/services/hardware/sane.nix
···4848 hardware.sane.enable = mkOption {
4949 type = types.bool;
5050 default = false;
5151- description = ''
5151+ description = lib.mdDoc ''
5252 Enable support for SANE scanners.
53535454- <note><para>
5555- Users in the "scanner" group will gain access to the scanner, or the "lp" group if it's also a printer.
5656- </para></note>
5454+ ::: {.note}
5555+ Users in the "scanner" group will gain access to the scanner, or the "lp" group if it's also a printer.
5656+ :::
5757 '';
5858 };
5959···6666 hardware.sane.extraBackends = mkOption {
6767 type = types.listOf types.path;
6868 default = [];
6969- description = ''
6969+ description = lib.mdDoc ''
7070 Packages providing extra SANE backends to enable.
71717272- <note><para>
7373- The example contains the package for HP scanners.
7474- </para></note>
7272+ ::: {.note}
7373+ The example contains the package for HP scanners.
7474+ :::
7575 '';
7676 example = literalExpression "[ pkgs.hplipWithPlugin ]";
7777 };
+11-10
nixos/modules/services/mail/maddy.nix
···144144 user = mkOption {
145145 default = "maddy";
146146 type = with types; uniq string;
147147- description = ''
147147+ description = lib.mdDoc ''
148148 User account under which maddy runs.
149149150150- <note><para>
150150+ ::: {.note}
151151 If left as the default value this user will automatically be created
152152 on system activation, otherwise the sysadmin is responsible for
153153 ensuring the user exists before the maddy service starts.
154154- </para></note>
154154+ :::
155155 '';
156156 };
157157158158 group = mkOption {
159159 default = "maddy";
160160 type = with types; uniq string;
161161- description = ''
161161+ description = lib.mdDoc ''
162162 Group account under which maddy runs.
163163164164- <note><para>
164164+ ::: {.note}
165165 If left as the default value this group will automatically be created
166166 on system activation, otherwise the sysadmin is responsible for
167167 ensuring the group exists before the maddy service starts.
168168- </para></note>
168168+ :::
169169 '';
170170 };
171171···203203 config = mkOption {
204204 type = with types; nullOr lines;
205205 default = defaultConfig;
206206- description = ''
206206+ description = lib.mdDoc ''
207207 Server configuration, see
208208- <link xlink:href="https://maddy.email">https://maddy.email</link> for
208208+ [https://maddy.email](https://maddy.email) for
209209 more information. The default configuration of this module will setup
210210 minimal maddy instance for mail transfer without TLS encryption.
211211- <note><para>
211211+212212+ ::: {.note}
212213 This should not be used in a production environment.
213213- </para></note>
214214+ :::
214215 '';
215216 };
216217
+16-22
nixos/modules/services/misc/gitlab.nix
···748748 type = types.int;
749749 default = 2;
750750 apply = x: builtins.toString x;
751751- description = ''
751751+ description = lib.mdDoc ''
752752 The number of worker processes Puma should spawn. This
753753 controls the amount of parallel Ruby code can be
754754- executed. GitLab recommends <literal>Number of CPU cores - 1</literal>, but at least two.
754754+ executed. GitLab recommends `Number of CPU cores - 1`, but at least two.
755755756756- <note>
757757- <para>
758758- Each worker consumes quite a bit of memory, so
759759- be careful when increasing this.
760760- </para>
761761- </note>
756756+ ::: {.note}
757757+ Each worker consumes quite a bit of memory, so
758758+ be careful when increasing this.
759759+ :::
762760 '';
763761 };
764762···766764 type = types.int;
767765 default = 0;
768766 apply = x: builtins.toString x;
769769- description = ''
767767+ description = lib.mdDoc ''
770768 The minimum number of threads Puma should use per
771769 worker.
772770773773- <note>
774774- <para>
775775- Each thread consumes memory and contributes to Global VM
776776- Lock contention, so be careful when increasing this.
777777- </para>
778778- </note>
771771+ ::: {.note}
772772+ Each thread consumes memory and contributes to Global VM
773773+ Lock contention, so be careful when increasing this.
774774+ :::
779775 '';
780776 };
781777···783779 type = types.int;
784780 default = 4;
785781 apply = x: builtins.toString x;
786786- description = ''
782782+ description = lib.mdDoc ''
787783 The maximum number of threads Puma should use per
788784 worker. This limits how many threads Puma will automatically
789785 spawn in response to requests. In contrast to workers,
790786 threads will never be able to run Ruby code in parallel, but
791787 give higher IO parallelism.
792788793793- <note>
794794- <para>
795795- Each thread consumes memory and contributes to Global VM
796796- Lock contention, so be careful when increasing this.
797797- </para>
798798- </note>
789789+ ::: {.note}
790790+ Each thread consumes memory and contributes to Global VM
791791+ Lock contention, so be careful when increasing this.
792792+ :::
799793 '';
800794 };
801795
+5-5
nixos/modules/services/misc/sdrplay.nix
···55 enable = mkOption {
66 default = false;
77 example = true;
88- description = ''
88+ description = lib.mdDoc ''
99 Whether to enable the SDRplay API service and udev rules.
10101111- <note><para>
1212- To enable integration with SoapySDR and GUI applications like gqrx create an overlay containing
1313- <literal>soapysdr-with-plugins = super.soapysdr.override { extraPackages = [ super.soapysdrplay ]; };</literal>
1414- </para></note>
1111+ ::: {.note}
1212+ To enable integration with SoapySDR and GUI applications like gqrx create an overlay containing
1313+ `soapysdr-with-plugins = super.soapysdr.override { extraPackages = [ super.soapysdrplay ]; };`
1414+ :::
1515 '';
1616 type = lib.types.bool;
1717 };
+5-5
nixos/modules/services/misc/sourcehut/default.nix
···668668 };
669669670670 builds = {
671671- enableWorker = mkEnableOption ''
671671+ enableWorker = mkEnableOption (lib.mdDoc ''
672672 worker for builds.sr.ht
673673674674- <warning><para>
674674+ ::: {.warning}
675675 For smaller deployments, job runners can be installed alongside the master server
676676 but even if you only build your own software, integration with other services
677677 may cause you to run untrusted builds
678678 (e.g. automatic testing of patches via listssrht).
679679- See <link xlink:href="https://man.sr.ht/builds.sr.ht/configuration.md#security-model"/>.
680680- </para></warning>
681681- '';
679679+ See <https://man.sr.ht/builds.sr.ht/configuration.md#security-model>.
680680+ :::
681681+ '');
682682683683 images = mkOption {
684684 type = with types; attrsOf (attrsOf (attrsOf package));
···1010 mkManualPkiOption = desc: mkOption {
1111 type = types.nullOr types.path;
1212 default = null;
1313- description = desc + ''
1414- <note><para>
1313+ description = lib.mdDoc ''
1414+ ${desc}
1515+1616+ ::: {.note}
1517 Setting this option will prevent automatic CA creation and handling.
1616- </para></note>
1818+ :::
1719 '';
1820 };
1921···3537 '';
3638 };
37393838- mkAutoDesc = preamble: ''
4040+ mkAutoDesc = preamble: lib.mdDoc ''
3941 ${preamble}
40424141- <note><para>
4343+ ::: {.note}
4244 This option is for the automatically handled CA and will be ignored if any
4343- of the <option>services.taskserver.pki.manual.*</option> options are set.
4444- </para></note>
4545+ of the {option}`services.taskserver.pki.manual.*` options are set.
4646+ :::
4547 '';
46484749 mkExpireOption = desc: mkOption {
···5052 example = 365;
5153 apply = val: if val == null then -1 else val;
5254 description = mkAutoDesc ''
5353- The expiration time of ${desc} in days or <literal>null</literal> for no
5555+ The expiration time of ${desc} in days or `null` for no
5456 expiration time.
5557 '';
5658 };
···140142 default = false;
141143 description = let
142144 url = "https://nixos.org/manual/nixos/stable/index.html#module-services-taskserver";
143143- in ''
145145+ in lib.mdDoc ''
144146 Whether to enable the Taskwarrior server.
145147146148 More instructions about NixOS in conjuction with Taskserver can be
147147- found <link xlink:href="${url}">in the NixOS manual</link>.
149149+ found [in the NixOS manual](${url}).
148150 '';
149151 };
150152···172174 example = "NORMAL:-VERS-SSL3.0";
173175 description = let
174176 url = "https://gnutls.org/manual/html_node/Priority-Strings.html";
175175- in ''
177177+ in lib.mdDoc ''
176178 List of GnuTLS ciphers to use. See the GnuTLS documentation about
177177- priority strings at <link xlink:href="${url}"/> for full details.
179179+ priority strings at <${url}> for full details.
178180 '';
179181 };
180182
···88in {
99 options = {
1010 services.samba-wsdd = {
1111- enable = mkEnableOption ''
1111+ enable = mkEnableOption (lib.mdDoc ''
1212 Enable Web Services Dynamic Discovery host daemon. This enables (Samba) hosts, like your local NAS device,
1313 to be found by Web Service Discovery Clients like Windows.
1414- <note>
1515- <para>If you use the firewall consider adding the following:</para>
1616- <programlisting>
1414+1515+ ::: {.note}
1616+ If you use the firewall consider adding the following:
1717+1718 networking.firewall.allowedTCPPorts = [ 5357 ];
1819 networking.firewall.allowedUDPPorts = [ 3702 ];
1919- </programlisting>
2020- </note>
2121- '';
2020+ :::
2121+ '');
2222 interface = mkOption {
2323 type = types.nullOr types.str;
2424 default = null;
···8080 enable = mkOption {
8181 type = types.bool;
8282 default = false;
8383- description = ''
8383+ description = lib.mdDoc ''
8484 Whether to enable Samba, which provides file and print
8585 services to Windows clients through the SMB/CIFS protocol.
86868787- <note>
8888- <para>If you use the firewall consider adding the following:</para>
8989- <programlisting>
9090- services.samba.openFirewall = true;
9191- </programlisting>
9292- </note>
8787+ ::: {.note}
8888+ If you use the firewall consider adding the following:
8989+9090+ services.samba.openFirewall = true;
9191+ :::
9392 '';
9493 };
9594
+7-7
nixos/modules/services/networking/adguardhome.nix
···6464 settings = mkOption {
6565 type = (pkgs.formats.yaml { }).type;
6666 default = { };
6767- description = ''
6767+ description = lib.mdDoc ''
6868 AdGuard Home configuration. Refer to
6969- <link xlink:href="https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration#configuration-file"/>
6969+ <https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration#configuration-file>
7070 for details on supported values.
71717272- <note><para>
7373- On start and if <option>mutableSettings</option> is <literal>true</literal>,
7474- these options are merged into the configuration file on start, taking
7575- precedence over configuration changes made on the web interface.
7676- </para></note>
7272+ ::: {.note}
7373+ On start and if {option}`mutableSettings` is `true`,
7474+ these options are merged into the configuration file on start, taking
7575+ precedence over configuration changes made on the web interface.
7676+ :::
7777 '';
7878 };
7979
+8-6
nixos/modules/services/networking/headscale.nix
···2626 user = mkOption {
2727 default = "headscale";
2828 type = types.str;
2929- description = ''
2929+ description = lib.mdDoc ''
3030 User account under which headscale runs.
3131- <note><para>
3131+3232+ ::: {.note}
3233 If left as the default value this user will automatically be created
3334 on system activation, otherwise you are responsible for
3435 ensuring the user exists before the headscale service starts.
3535- </para></note>
3636+ :::
3637 '';
3738 };
38393940 group = mkOption {
4041 default = "headscale";
4142 type = types.str;
4242- description = ''
4343+ description = lib.mdDoc ''
4344 Group under which headscale runs.
4444- <note><para>
4545+4646+ ::: {.note}
4547 If left as the default value this group will automatically be created
4648 on system activation, otherwise you are responsible for
4749 ensuring the user exists before the headscale service starts.
4848- </para></note>
5050+ :::
4951 '';
5052 };
5153
+4-4
nixos/modules/services/networking/libreswan.nix
···9393 ''';
9494 }
9595 '';
9696- description = ''
9696+ description = lib.mdDoc ''
9797 A set of policies to apply to the IPsec connections.
98989999- <note><para>
100100- The policy name must match the one of connection it needs to apply to.
101101- </para></note>
9999+ ::: {.note}
100100+ The policy name must match the one of connection it needs to apply to.
101101+ :::
102102 '';
103103 };
104104
+20-18
nixos/modules/services/networking/privoxy.nix
···6767 inspectHttps = mkOption {
6868 type = types.bool;
6969 default = false;
7070- description = ''
7070+ description = lib.mdDoc ''
7171 Whether to configure Privoxy to inspect HTTPS requests, meaning all
7272 encrypted traffic will be filtered as well. This works by decrypting
7373 and re-encrypting the requests using a per-domain generated certificate.
74747575 To issue per-domain certificates, Privoxy must be provided with a CA
7676- certificate, using the <literal>ca-cert-file</literal>,
7777- <literal>ca-key-file</literal> settings.
7676+ certificate, using the `ca-cert-file`,
7777+ `ca-key-file` settings.
78787979- <warning><para>
8080- The CA certificate must also be added to the system trust roots,
8181- otherwise browsers will reject all Privoxy certificates as invalid.
8282- You can do so by using the option
8383- <option>security.pki.certificateFiles</option>.
8484- </para></warning>
7979+ ::: {.warning}
8080+ The CA certificate must also be added to the system trust roots,
8181+ otherwise browsers will reject all Privoxy certificates as invalid.
8282+ You can do so by using the option
8383+ {option}`security.pki.certificateFiles`.
8484+ :::
8585 '';
8686 };
8787···8989 type = ageType;
9090 default = "10d";
9191 example = "12h";
9292- description = ''
9393- If <literal>inspectHttps</literal> is enabled, the time generated HTTPS
9292+ description = lib.mdDoc ''
9393+ If `inspectHttps` is enabled, the time generated HTTPS
9494 certificates will be stored in a temporary directory for reuse. Once
9595 the lifetime has expired the directory will cleared and the certificate
9696 will have to be generated again, on-demand.
···9898 Depending on the traffic, you may want to reduce the lifetime to limit
9999 the disk usage, since Privoxy itself never deletes the certificates.
100100101101- <note><para>The format is that of the <literal>tmpfiles.d(5)</literal>
102102- Age parameter.</para></note>
101101+ ::: {.note}
102102+ The format is that of the `tmpfiles.d(5)`
103103+ Age parameter.
104104+ :::
103105 '';
104106 };
105107···179181 # debug 64
180182 }
181183 '';
182182- description = ''
184184+ description = lib.mdDoc ''
183185 This option is mapped to the main Privoxy configuration file.
184186 Check out the Privoxy user manual at
185185- <link xlink:href="https://www.privoxy.org/user-manual/config.html"/>
187187+ <https://www.privoxy.org/user-manual/config.html>
186188 for available settings and documentation.
187189188188- <note><para>
189189- Repeated settings can be represented by using a list.
190190- </para></note>
190190+ ::: {.note}
191191+ Repeated settings can be represented by using a list.
192192+ :::
191193 '';
192194 };
193195
+6-6
nixos/modules/services/networking/prosody.nix
···529529 user = mkOption {
530530 type = types.str;
531531 default = "prosody";
532532- description = ''
532532+ description = lib.mdDoc ''
533533 User account under which prosody runs.
534534535535- <note><para>
535535+ ::: {.note}
536536 If left as the default value this user will automatically be created
537537 on system activation, otherwise you are responsible for
538538 ensuring the user exists before the prosody service starts.
539539- </para></note>
539539+ :::
540540 '';
541541 };
542542543543 group = mkOption {
544544 type = types.str;
545545 default = "prosody";
546546- description = ''
546546+ description = lib.mdDoc ''
547547 Group account under which prosody runs.
548548549549- <note><para>
549549+ ::: {.note}
550550 If left as the default value this group will automatically be created
551551 on system activation, otherwise you are responsible for
552552 ensuring the group exists before the prosody service starts.
553553- </para></note>
553553+ :::
554554 '';
555555 };
556556
+20-23
nixos/modules/services/networking/searx.nix
···8181 };
8282 }
8383 '';
8484- description = ''
8484+ description = lib.mdDoc ''
8585 Searx settings. These will be merged with (taking precedence over)
8686 the default configuration. It's also possible to refer to
8787 environment variables
8888- (defined in <xref linkend="opt-services.searx.environmentFile"/>)
8989- using the syntax <literal>@VARIABLE_NAME@</literal>.
9090- <note>
9191- <para>
9292- For available settings, see the Searx
9393- <link xlink:href="https://searx.github.io/searx/admin/settings.html">docs</link>.
9494- </para>
9595- </note>
8888+ (defined in [](#opt-services.searx.environmentFile))
8989+ using the syntax `@VARIABLE_NAME@`.
9090+9191+ ::: {.note}
9292+ For available settings, see the Searx
9393+ [docs](https://searx.github.io/searx/admin/settings.html).
9494+ :::
9695 '';
9796 };
98979998 settingsFile = mkOption {
10099 type = types.path;
101100 default = "${runDir}/settings.yml";
102102- description = ''
101101+ description = lib.mdDoc ''
103102 The path of the Searx server settings.yml file. If no file is
104103 specified, a default file is used (default config file has debug mode
105104 enabled). Note: setting this options overrides
106106- <xref linkend="opt-services.searx.settings"/>.
107107- <warning>
108108- <para>
109109- This file, along with any secret key it contains, will be copied
110110- into the world-readable Nix store.
111111- </para>
112112- </warning>
105105+ [](#opt-services.searx.settings).
106106+107107+ ::: {.warning}
108108+ This file, along with any secret key it contains, will be copied
109109+ into the world-readable Nix store.
110110+ :::
113111 '';
114112 };
115113···123121 runInUwsgi = mkOption {
124122 type = types.bool;
125123 default = false;
126126- description = ''
124124+ description = lib.mdDoc ''
127125 Whether to run searx in uWSGI as a "vassal", instead of using its
128126 built-in HTTP server. This is the recommended mode for public or
129127 large instances, but is unecessary for LAN or local-only use.
130130- <warning>
131131- <para>
132132- The built-in HTTP server logs all queries by default.
133133- </para>
134134- </warning>
128128+129129+ ::: {.warning}
130130+ The built-in HTTP server logs all queries by default.
131131+ :::
135132 '';
136133 };
137134
+7-8
nixos/modules/services/networking/shorewall.nix
···88 enable = lib.mkOption {
99 type = types.bool;
1010 default = false;
1111- description = ''
1111+ description = lib.mdDoc ''
1212 Whether to enable Shorewall IPv4 Firewall.
1313- <warning>
1414- <para>
1515- Enabling this service WILL disable the existing NixOS
1616- firewall! Default firewall rules provided by packages are not
1717- considered at the moment.
1818- </para>
1919- </warning>
1313+1414+ ::: {.warning}
1515+ Enabling this service WILL disable the existing NixOS
1616+ firewall! Default firewall rules provided by packages are not
1717+ considered at the moment.
1818+ :::
2019 '';
2120 };
2221 package = lib.mkOption {
+7-8
nixos/modules/services/networking/shorewall6.nix
···88 enable = lib.mkOption {
99 type = types.bool;
1010 default = false;
1111- description = ''
1111+ description = lib.mdDoc ''
1212 Whether to enable Shorewall IPv6 Firewall.
1313- <warning>
1414- <para>
1515- Enabling this service WILL disable the existing NixOS
1616- firewall! Default firewall rules provided by packages are not
1717- considered at the moment.
1818- </para>
1919- </warning>
1313+1414+ ::: {.warning}
1515+ Enabling this service WILL disable the existing NixOS
1616+ firewall! Default firewall rules provided by packages are not
1717+ considered at the moment.
1818+ :::
2019 '';
2120 };
2221 package = lib.mkOption {
···170170 type = types.listOf types.str;
171171 default = [];
172172 example = [ "wlan0" "wlan1" ];
173173- description = ''
174174- The interfaces <command>wpa_supplicant</command> will use. If empty, it will
173173+ description = lib.mdDoc ''
174174+ The interfaces {command}`wpa_supplicant` will use. If empty, it will
175175 automatically use all wireless interfaces.
176176177177- <note><para>
178178- A separate wpa_supplicant instance will be started for each interface.
179179- </para></note>
177177+ ::: {.note}
178178+ A separate wpa_supplicant instance will be started for each interface.
179179+ :::
180180 '';
181181 };
182182···186186 description = lib.mdDoc "Force a specific wpa_supplicant driver.";
187187 };
188188189189- allowAuxiliaryImperativeNetworks = mkEnableOption "support for imperative & declarative networks" // {
189189+ allowAuxiliaryImperativeNetworks = mkEnableOption (lib.mdDoc "support for imperative & declarative networks") // {
190190 description = ''
191191 Whether to allow configuring networks "imperatively" (e.g. via
192192 <literal>wpa_supplicant_gui</literal>) and declaratively via
···222222 type = types.nullOr types.path;
223223 default = null;
224224 example = "/run/secrets/wireless.env";
225225- description = ''
226226- File consisting of lines of the form <literal>varname=value</literal>
225225+ description = lib.mdDoc ''
226226+ File consisting of lines of the form `varname=value`
227227 to define variables for the wireless configuration.
228228229229- See section "EnvironmentFile=" in <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for a syntax reference.
229229+ See section "EnvironmentFile=" in {manpage}`systemd.exec(5)` for a syntax reference.
230230231231 Secrets (PSKs, passwords, etc.) can be provided without adding them to
232232 the world-readable Nix store by defining them in the environment file and
233233- referring to them in option <option>networking.wireless.networks</option>
234234- with the syntax <literal>@varname@</literal>. Example:
233233+ referring to them in option {option}`networking.wireless.networks`
234234+ with the syntax `@varname@`. Example:
235235236236- <programlisting>
236236+ ```
237237 # content of /run/secrets/wireless.env
238238 PSK_HOME=mypassword
239239 PASS_WORK=myworkpassword
240240- </programlisting>
240240+ ```
241241242242- <programlisting>
242242+ ```
243243 # wireless-related configuration
244244 networking.wireless.environmentFile = "/run/secrets/wireless.env";
245245 networking.wireless.networks = {
···250250 password="@PASS_WORK@"
251251 ''';
252252 };
253253- </programlisting>
253253+ ```
254254 '';
255255 };
256256···260260 psk = mkOption {
261261 type = types.nullOr types.str;
262262 default = null;
263263- description = ''
263263+ description = lib.mdDoc ''
264264 The network's pre-shared key in plaintext defaulting
265265 to being a network without any authentication.
266266267267- <warning><para>
268268- Be aware that this will be written to the nix store
269269- in plaintext! Use an environment variable instead.
270270- </para></warning>
267267+ ::: {.warning}
268268+ Be aware that this will be written to the nix store
269269+ in plaintext! Use an environment variable instead.
270270+ :::
271271272272- <note><para>
273273- Mutually exclusive with <varname>pskRaw</varname>.
274274- </para></note>
272272+ ::: {.note}
273273+ Mutually exclusive with {var}`pskRaw`.
274274+ :::
275275 '';
276276 };
277277278278 pskRaw = mkOption {
279279 type = types.nullOr types.str;
280280 default = null;
281281- description = ''
281281+ description = lib.mdDoc ''
282282 The network's pre-shared key in hex defaulting
283283 to being a network without any authentication.
284284285285- <warning><para>
286286- Be aware that this will be written to the nix store
287287- in plaintext! Use an environment variable instead.
288288- </para></warning>
285285+ ::: {.warning}
286286+ Be aware that this will be written to the nix store
287287+ in plaintext! Use an environment variable instead.
288288+ :::
289289290290- <note><para>
291291- Mutually exclusive with <varname>psk</varname>.
292292- </para></note>
290290+ ::: {.note}
291291+ Mutually exclusive with {var}`psk`.
292292+ :::
293293 '';
294294 };
295295···343343 identity="user@example.com"
344344 password="@EXAMPLE_PASSWORD@"
345345 '';
346346- description = ''
346346+ description = lib.mdDoc ''
347347 Use this option to configure advanced authentication methods like EAP.
348348 See
349349- <citerefentry><refentrytitle>wpa_supplicant.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
349349+ {manpage}`wpa_supplicant.conf(5)`
350350 for example configurations.
351351352352- <warning><para>
353353- Be aware that this will be written to the nix store
354354- in plaintext! Use an environment variable for secrets.
355355- </para></warning>
352352+ ::: {.warning}
353353+ Be aware that this will be written to the nix store
354354+ in plaintext! Use an environment variable for secrets.
355355+ :::
356356357357- <note><para>
358358- Mutually exclusive with <varname>psk</varname> and
359359- <varname>pskRaw</varname>.
360360- </para></note>
357357+ ::: {.note}
358358+ Mutually exclusive with {var}`psk` and
359359+ {var}`pskRaw`.
360360+ :::
361361 '';
362362 };
363363
+7-7
nixos/modules/services/security/cfssl.nix
···1111 dataDir = mkOption {
1212 default = "/var/lib/cfssl";
1313 type = types.path;
1414- description = ''
1414+ description = lib.mdDoc ''
1515 The work directory for CFSSL.
16161717- <note><para>
1818- If left as the default value this directory will automatically be
1919- created before the CFSSL server starts, otherwise you are
2020- responsible for ensuring the directory exists with appropriate
2121- ownership and permissions.
2222- </para></note>
1717+ ::: {.note}
1818+ If left as the default value this directory will automatically be
1919+ created before the CFSSL server starts, otherwise you are
2020+ responsible for ensuring the directory exists with appropriate
2121+ ownership and permissions.
2222+ :::
2323 '';
2424 };
2525
+20-24
nixos/modules/services/security/step-ca.nix
···3434 };
3535 settings = lib.mkOption {
3636 type = with lib.types; attrsOf anything;
3737- description = ''
3838- Settings that go into <filename>ca.json</filename>. See
3939- <link xlink:href="https://smallstep.com/docs/step-ca/configuration">the step-ca manual</link>
3737+ description = lib.mdDoc ''
3838+ Settings that go into {file}`ca.json`. See
3939+ [the step-ca manual](https://smallstep.com/docs/step-ca/configuration)
4040 for more information. The easiest way to
4141- configure this module would be to run <literal>step ca init</literal>
4242- to generate <filename>ca.json</filename> and then import it using
4343- <literal>builtins.fromJSON</literal>.
4444- <link xlink:href="https://smallstep.com/docs/step-cli/basic-crypto-operations#run-an-offline-x509-certificate-authority">This article</link>
4141+ configure this module would be to run `step ca init`
4242+ to generate {file}`ca.json` and then import it using
4343+ `builtins.fromJSON`.
4444+ [This article](https://smallstep.com/docs/step-cli/basic-crypto-operations#run-an-offline-x509-certificate-authority)
4545 may also be useful if you want to customize certain aspects of
4646 certificate generation for your CA.
4747- You need to change the database storage path to <filename>/var/lib/step-ca/db</filename>.
4747+ You need to change the database storage path to {file}`/var/lib/step-ca/db`.
48484949- <warning>
5050- <para>
5151- The <option>services.step-ca.settings.address</option> option
5252- will be ignored and overwritten by
5353- <option>services.step-ca.address</option> and
5454- <option>services.step-ca.port</option>.
5555- </para>
5656- </warning>
4949+ ::: {.warning}
5050+ The {option}`services.step-ca.settings.address` option
5151+ will be ignored and overwritten by
5252+ {option}`services.step-ca.address` and
5353+ {option}`services.step-ca.port`.
5454+ :::
5755 '';
5856 };
5957 intermediatePasswordFile = lib.mkOption {
6058 type = lib.types.path;
6159 example = "/run/keys/smallstep-password";
6262- description = ''
6060+ description = lib.mdDoc ''
6361 Path to the file containing the password for the intermediate
6462 certificate private key.
65636666- <warning>
6767- <para>
6868- Make sure to use a quoted absolute path instead of a path literal
6969- to prevent it from being copied to the globally readable Nix
7070- store.
7171- </para>
7272- </warning>
6464+ ::: {.warning}
6565+ Make sure to use a quoted absolute path instead of a path literal
6666+ to prevent it from being copied to the globally readable Nix
6767+ store.
6868+ :::
7369 '';
7470 };
7571 };
+8-8
nixos/modules/services/security/torify.nix
···2727 enable = mkOption {
2828 type = types.bool;
2929 default = false;
3030- description = ''
3030+ description = lib.mdDoc ''
3131 Whether to build tsocks wrapper script to relay application traffic via Tor.
32323333- <important>
3434- <para>You shouldn't use this unless you know what you're
3535- doing because your installation of Tor already comes with
3636- its own superior (doesn't leak DNS queries)
3737- <literal>torsocks</literal> wrapper which does pretty much
3838- exactly the same thing as this.</para>
3939- </important>
3333+ ::: {.important}
3434+ You shouldn't use this unless you know what you're
3535+ doing because your installation of Tor already comes with
3636+ its own superior (doesn't leak DNS queries)
3737+ `torsocks` wrapper which does pretty much
3838+ exactly the same thing as this.
3939+ :::
4040 '';
4141 };
4242
+13-15
nixos/modules/services/torrent/magnetico.nix
···116116 myuser = "$2y$12$YE01LZ8jrbQbx6c0s2hdZO71dSjn2p/O9XsYJpz.5968yCysUgiaG";
117117 }
118118 '';
119119- description = ''
119119+ description = lib.mdDoc ''
120120 The credentials to access the web interface, in case authentication is
121121- enabled, in the format <literal>username:hash</literal>. If unset no
121121+ enabled, in the format `username:hash`. If unset no
122122 authentication will be required.
123123124124 Usernames must start with a lowercase ([a-z]) ASCII character, might
125125 contain non-consecutive underscores except at the end, and consists of
126126 small-case a-z characters and digits 0-9. The
127127- <command>htpasswd</command> tool from the <literal>apacheHttpd</literal>
127127+ {command}`htpasswd` tool from the `apacheHttpd`
128128 package may be used to generate the hash:
129129- <command>htpasswd -bnBC 12 username password</command>
129129+ {command}`htpasswd -bnBC 12 username password`
130130131131- <warning>
132132- <para>
133133- The hashes will be stored world-readable in the nix store.
134134- Consider using the <literal>credentialsFile</literal> option if you
135135- don't want this.
136136- </para>
137137- </warning>
131131+ ::: {.warning}
132132+ The hashes will be stored world-readable in the nix store.
133133+ Consider using the `credentialsFile` option if you
134134+ don't want this.
135135+ :::
138136 '';
139137 };
140138141139 web.credentialsFile = mkOption {
142140 type = types.nullOr types.path;
143141 default = null;
144144- description = ''
142142+ description = lib.mdDoc ''
145143 The path to the file holding the credentials to access the web
146144 interface. If unset no authentication will be required.
147145148146 The file must constain user names and password hashes in the format
149149- <literal>username:hash </literal>, one for each line. Usernames must
147147+ `username:hash `, one for each line. Usernames must
150148 start with a lowecase ([a-z]) ASCII character, might contain
151149 non-consecutive underscores except at the end, and consists of
152150 small-case a-z characters and digits 0-9.
153153- The <command>htpasswd</command> tool from the <literal>apacheHttpd</literal>
151151+ The {command}`htpasswd` tool from the `apacheHttpd`
154152 package may be used to generate the hash:
155155- <command>htpasswd -bnBC 12 username password</command>
153153+ {command}`htpasswd -bnBC 12 username password`
156154 '';
157155 };
158156
···101101 openFirewall = lib.mkOption {
102102 type = lib.types.bool;
103103 default = false;
104104- description = ''
104104+ description = lib.mdDoc ''
105105 Open ports in the firewall for the EPGStation web interface.
106106107107- <warning>
108108- <para>
109109- Exposing EPGStation to the open internet is generally advised
110110- against. Only use it inside a trusted local network, or consider
111111- putting it behind a VPN if you want remote access.
112112- </para>
113113- </warning>
107107+ ::: {.warning}
108108+ Exposing EPGStation to the open internet is generally advised
109109+ against. Only use it inside a trusted local network, or consider
110110+ putting it behind a VPN if you want remote access.
111111+ :::
114112 '';
115113 };
116114
+6-8
nixos/modules/services/video/mirakurun.nix
···3838 openFirewall = mkOption {
3939 type = types.bool;
4040 default = false;
4141- description = ''
4141+ description = lib.mdDoc ''
4242 Open ports in the firewall for Mirakurun.
43434444- <warning>
4545- <para>
4646- Exposing Mirakurun to the open internet is generally advised
4747- against. Only use it inside a trusted local network, or
4848- consider putting it behind a VPN if you want remote access.
4949- </para>
5050- </warning>
4444+ ::: {.warning}
4545+ Exposing Mirakurun to the open internet is generally advised
4646+ against. Only use it inside a trusted local network, or
4747+ consider putting it behind a VPN if you want remote access.
4848+ :::
5149 '';
5250 };
5351
+10-4
nixos/modules/services/web-apps/dokuwiki.nix
···160160 plugins = mkOption {
161161 type = types.listOf types.path;
162162 default = [];
163163- description = ''
163163+ description = lib.mdDoc ''
164164 List of path(s) to respective plugin(s) which are copied from the 'plugin' directory.
165165- <note><para>These plugins need to be packaged before use, see example.</para></note>
165165+166166+ ::: {.note}
167167+ These plugins need to be packaged before use, see example.
168168+ :::
166169 '';
167170 example = literalExpression ''
168171 let
···188191 templates = mkOption {
189192 type = types.listOf types.path;
190193 default = [];
191191- description = ''
194194+ description = lib.mdDoc ''
192195 List of path(s) to respective template(s) which are copied from the 'tpl' directory.
193193- <note><para>These templates need to be packaged before use, see example.</para></note>
196196+197197+ ::: {.note}
198198+ These templates need to be packaged before use, see example.
199199+ :::
194200 '';
195201 example = literalExpression ''
196202 let
+13-13
nixos/modules/services/web-apps/healthchecks.nix
···4343 user = mkOption {
4444 default = defaultUser;
4545 type = types.str;
4646- description = ''
4646+ description = lib.mdDoc ''
4747 User account under which healthchecks runs.
48484949- <note><para>
4949+ ::: {.note}
5050 If left as the default value this user will automatically be created
5151 on system activation, otherwise you are responsible for
5252 ensuring the user exists before the healthchecks service starts.
5353- </para></note>
5353+ :::
5454 '';
5555 };
56565757 group = mkOption {
5858 default = defaultUser;
5959 type = types.str;
6060- description = ''
6060+ description = lib.mdDoc ''
6161 Group account under which healthchecks runs.
62626363- <note><para>
6363+ ::: {.note}
6464 If left as the default value this group will automatically be created
6565 on system activation, otherwise you are responsible for
6666 ensuring the group exists before the healthchecks service starts.
6767- </para></note>
6767+ :::
6868 '';
6969 };
7070···8383 dataDir = mkOption {
8484 type = types.str;
8585 default = "/var/lib/healthchecks";
8686- description = ''
8686+ description = lib.mdDoc ''
8787 The directory used to store all data for healthchecks.
88888989- <note><para>
8989+ ::: {.note}
9090 If left as the default value this directory will automatically be created before
9191 the healthchecks server starts, otherwise you are responsible for ensuring the
9292 directory exists with appropriate ownership and permissions.
9393- </para></note>
9393+ :::
9494 '';
9595 };
96969797 settings = lib.mkOption {
9898- description = ''
9999- Environment variables which are read by healthchecks <literal>(local)_settings.py</literal>.
9898+ description = lib.mdDoc ''
9999+ Environment variables which are read by healthchecks `(local)_settings.py`.
100100101101 Settings which are explictly covered in options bewlow, are type-checked and/or transformed
102102 before added to the environment, everything else is passed as a string.
103103104104- See <link xlink:href="">https://healthchecks.io/docs/self_hosted_configuration/</link>
104104+ See <https://healthchecks.io/docs/self_hosted_configuration/>
105105 for a full documentation of settings.
106106107107- We add two variables to this list inside the packages <literal>local_settings.py.</literal>
107107+ We add two variables to this list inside the packages `local_settings.py.`
108108 - STATIC_ROOT to set a state directory for dynamically generated static files.
109109 - SECRET_KEY_FILE to read SECRET_KEY from a file at runtime and keep it out of /nix/store.
110110 '';
+5-2
nixos/modules/services/web-apps/invoiceplane.nix
···124124 invoiceTemplates = mkOption {
125125 type = types.listOf types.path;
126126 default = [];
127127- description = ''
127127+ description = lib.mdDoc ''
128128 List of path(s) to respective template(s) which are copied from the 'invoice_templates/pdf' directory.
129129- <note><para>These templates need to be packaged before use, see example.</para></note>
129129+130130+ ::: {.note}
131131+ These templates need to be packaged before use, see example.
132132+ :::
130133 '';
131134 example = literalExpression ''
132135 let
+12-14
nixos/modules/services/web-apps/keycloak.nix
···314314 type = str;
315315 default = "";
316316 example = "/auth";
317317- description = ''
318318- The path relative to <literal>/</literal> for serving
317317+ description = lib.mdDoc ''
318318+ The path relative to `/` for serving
319319 resources.
320320321321- <note>
322322- <para>
323323- In versions of Keycloak using Wildfly (<17),
324324- this defaulted to <literal>/auth</literal>. If
325325- upgrading from the Wildfly version of Keycloak,
326326- i.e. a NixOS version before 22.05, you'll likely
327327- want to set this to <literal>/auth</literal> to
328328- keep compatibility with your clients.
321321+ ::: {.note}
322322+ In versions of Keycloak using Wildfly (<17),
323323+ this defaulted to `/auth`. If
324324+ upgrading from the Wildfly version of Keycloak,
325325+ i.e. a NixOS version before 22.05, you'll likely
326326+ want to set this to `/auth` to
327327+ keep compatibility with your clients.
329328330330- See <link xlink:href="https://www.keycloak.org/migration/migrating-to-quarkus"/>
331331- for more information on migrating from Wildfly to Quarkus.
332332- </para>
333333- </note>
329329+ See <https://www.keycloak.org/migration/migrating-to-quarkus>
330330+ for more information on migrating from Wildfly to Quarkus.
331331+ :::
334332 '';
335333 };
336334
+9-9
nixos/modules/services/web-apps/nextcloud.nix
···371371 default = null;
372372 type = types.nullOr types.str;
373373 example = "DE";
374374- description = ''
375375- <warning>
376376- <para>This option exists since Nextcloud 21! If older versions are used,
377377- this will throw an eval-error!</para>
378378- </warning>
374374+ description = lib.mdDoc ''
375375+ ::: {.warning}
376376+ This option exists since Nextcloud 21! If older versions are used,
377377+ this will throw an eval-error!
378378+ :::
379379380380- <link xlink:href="https://www.iso.org/iso-3166-country-codes.html">ISO 3611-1</link>
380380+ [ISO 3611-1](https://www.iso.org/iso-3166-country-codes.html)
381381 country codes for automatic phone-number detection without a country code.
382382383383- With e.g. <literal>DE</literal> set, the <literal>+49</literal> can be omitted for
383383+ With e.g. `DE` set, the `+49` can be omitted for
384384 phone-numbers.
385385 '';
386386 };
···519519 type = with types; either str (listOf str);
520520 default = "05:00:00";
521521 example = "Sun 14:00:00";
522522- description = ''
523523- When to run the update. See `systemd.services.<name>.startAt`.
522522+ description = lib.mdDoc ''
523523+ When to run the update. See `systemd.services.<name>.startAt`.
524524 '';
525525 };
526526 };
+10-4
nixos/modules/services/web-apps/wordpress.nix
···9797 plugins = mkOption {
9898 type = types.listOf types.path;
9999 default = [];
100100- description = ''
100100+ description = lib.mdDoc ''
101101 List of path(s) to respective plugin(s) which are copied from the 'plugins' directory.
102102- <note><para>These plugins need to be packaged before use, see example.</para></note>
102102+103103+ ::: {.note}
104104+ These plugins need to be packaged before use, see example.
105105+ :::
103106 '';
104107 example = literalExpression ''
105108 let
···124127 themes = mkOption {
125128 type = types.listOf types.path;
126129 default = [];
127127- description = ''
130130+ description = lib.mdDoc ''
128131 List of path(s) to respective theme(s) which are copied from the 'theme' directory.
129129- <note><para>These themes need to be packaged before use, see example.</para></note>
132132+133133+ ::: {.note}
134134+ These themes need to be packaged before use, see example.
135135+ :::
130136 '';
131137 example = literalExpression ''
132138 let
···484484 user = mkOption {
485485 type = types.str;
486486 default = "wwwrun";
487487- description = ''
487487+ description = lib.mdDoc ''
488488 User account under which httpd children processes run.
489489490490 If you require the main httpd process to run as
491491- <literal>root</literal> add the following configuration:
492492- <programlisting>
491491+ `root` add the following configuration:
492492+ ```
493493 systemd.services.httpd.serviceConfig.User = lib.mkForce "root";
494494- </programlisting>
494494+ ```
495495 '';
496496 };
497497
···4545 { ip = "192.154.1.1"; port = 80; }
4646 { ip = "*"; port = 8080; }
4747 ];
4848- description = ''
4848+ description = lib.mdDoc ''
4949 Listen addresses and ports for this virtual host.
5050- <note>
5151- <para>
5252- This option overrides <literal>addSSL</literal>, <literal>forceSSL</literal> and <literal>onlySSL</literal>.
5353- </para>
5454- <para>
5555- If you only want to set the addresses manually and not the ports, take a look at <literal>listenAddresses</literal>.
5656- </para>
5757- </note>
5050+5151+ ::: {.note}
5252+ This option overrides `addSSL`, `forceSSL` and `onlySSL`.
5353+5454+ If you only want to set the addresses manually and not the ports, take a look at `listenAddresses`.
5555+ :::
5856 '';
5957 };
6058···202200 file = "/home/eelco/some-file.png";
203201 }
204202 ];
205205- description = ''
203203+ description = lib.mdDoc ''
206204 This option provides a simple way to serve individual, static files.
207205208208- <note><para>
209209- This option has been deprecated and will be removed in a future
210210- version of NixOS. You can achieve the same result by making use of
211211- the <literal>locations.<name>.alias</literal> option.
212212- </para></note>
206206+ ::: {.note}
207207+ This option has been deprecated and will be removed in a future
208208+ version of NixOS. You can achieve the same result by making use of
209209+ the `locations.<name>.alias` option.
210210+ :::
213211 '';
214212 };
215213
···5757 user = mkOption {
5858 default = "caddy";
5959 type = types.str;
6060- description = ''
6060+ description = lib.mdDoc ''
6161 User account under which caddy runs.
62626363- <note><para>
6464- If left as the default value this user will automatically be created
6565- on system activation, otherwise you are responsible for
6666- ensuring the user exists before the Caddy service starts.
6767- </para></note>
6363+ ::: {.note}
6464+ If left as the default value this user will automatically be created
6565+ on system activation, otherwise you are responsible for
6666+ ensuring the user exists before the Caddy service starts.
6767+ :::
6868 '';
6969 };
70707171 group = mkOption {
7272 default = "caddy";
7373 type = types.str;
7474- description = ''
7474+ description = lib.mdDoc ''
7575 Group account under which caddy runs.
76767777- <note><para>
7878- If left as the default value this user will automatically be created
7979- on system activation, otherwise you are responsible for
8080- ensuring the user exists before the Caddy service starts.
8181- </para></note>
7777+ ::: {.note}
7878+ If left as the default value this user will automatically be created
7979+ on system activation, otherwise you are responsible for
8080+ ensuring the user exists before the Caddy service starts.
8181+ :::
8282 '';
8383 };
8484···9494 dataDir = mkOption {
9595 type = types.path;
9696 default = "/var/lib/caddy";
9797- description = ''
9797+ description = lib.mdDoc ''
9898 The data directory for caddy.
9999100100- <note>
101101- <para>
102102- If left as the default value this directory will automatically be created
103103- before the Caddy server starts, otherwise you are responsible for ensuring
104104- the directory exists with appropriate ownership and permissions.
105105- </para>
106106- <para>
107107- Caddy v2 replaced <literal>CADDYPATH</literal> with XDG directories.
108108- See <link xlink:href="https://caddyserver.com/docs/conventions#file-locations"/>.
109109- </para>
110110- </note>
100100+ ::: {.note}
101101+ If left as the default value this directory will automatically be created
102102+ before the Caddy server starts, otherwise you are responsible for ensuring
103103+ the directory exists with appropriate ownership and permissions.
104104+105105+ Caddy v2 replaced `CADDYPATH` with XDG directories.
106106+ See <https://caddyserver.com/docs/conventions#file-locations>.
107107+ :::
111108 '';
112109 };
113110114111 logDir = mkOption {
115112 type = types.path;
116113 default = "/var/log/caddy";
117117- description = ''
114114+ description = lib.mdDoc ''
118115 Directory for storing Caddy access logs.
119116120120- <note><para>
121121- If left as the default value this directory will automatically be created
122122- before the Caddy server starts, otherwise the sysadmin is responsible for
123123- ensuring the directory exists with appropriate ownership and permissions.
124124- </para></note>
117117+ ::: {.note}
118118+ If left as the default value this directory will automatically be created
119119+ before the Caddy server starts, otherwise the sysadmin is responsible for
120120+ ensuring the directory exists with appropriate ownership and permissions.
121121+ :::
125122 '';
126123 };
127124···163160 default = "caddyfile";
164161 example = "nginx";
165162 type = types.str;
166166- description = ''
163163+ description = lib.mdDoc ''
167164 Name of the config adapter to use.
168168- See <link xlink:href="https://caddyserver.com/docs/config-adapters"/>
165165+ See <https://caddyserver.com/docs/config-adapters>
169166 for the full list.
170167171171- <note><para>
172172- Any value other than <literal>caddyfile</literal> is only valid when
173173- providing your own <option>configFile</option>.
174174- </para></note>
168168+ ::: {.note}
169169+ Any value other than `caddyfile` is only valid when
170170+ providing your own {option}`configFile`.
171171+ :::
175172 '';
176173 };
177174
···4040 socket = mkOption {
4141 type = types.str;
4242 readOnly = true;
4343- description = ''
4343+ description = lib.mdDoc ''
4444 Path to the unix socket file on which to accept FastCGI requests.
4545- <note><para>This option is read-only and managed by NixOS.</para></note>
4545+4646+ ::: {.note}
4747+ This option is read-only and managed by NixOS.
4848+ :::
4649 '';
4750 example = "${runtimeDir}/<name>.sock";
4851 };
+13-15
nixos/modules/services/web-servers/uwsgi.nix
···167167 "CAP_NET_RAW" # open raw sockets
168168 ]
169169 '';
170170- description = ''
170170+ description = lib.mdDoc ''
171171 Grant capabilities to the uWSGI instance. See the
172172- <literal>capabilities(7)</literal> for available values.
173173- <note>
174174- <para>
175175- uWSGI runs as an unprivileged user (even as Emperor) with the minimal
176176- capabilities required. This option can be used to add fine-grained
177177- permissions without running the service as root.
178178- </para>
179179- <para>
180180- When in Emperor mode, any capability to be inherited by a vassal must
181181- be specified again in the vassal configuration using <literal>cap</literal>.
182182- See the uWSGI <link xlink:href="https://uwsgi-docs.readthedocs.io/en/latest/Capabilities.html">docs</link>
183183- for more information.
184184- </para>
185185- </note>
172172+ `capabilities(7)` for available values.
173173+174174+ ::: {.note}
175175+ uWSGI runs as an unprivileged user (even as Emperor) with the minimal
176176+ capabilities required. This option can be used to add fine-grained
177177+ permissions without running the service as root.
178178+179179+ When in Emperor mode, any capability to be inherited by a vassal must
180180+ be specified again in the vassal configuration using `cap`.
181181+ See the uWSGI [docs](https://uwsgi-docs.readthedocs.io/en/latest/Capabilities.html)
182182+ for more information.
183183+ :::
186184 '';
187185 };
188186 };
+6-4
nixos/modules/services/x11/xserver.nix
···431431 firstPrimary = head heads // { primary = true; };
432432 newHeads = singleton firstPrimary ++ tail heads;
433433 in if heads != [] && !hasPrimary then newHeads else heads;
434434- description = ''
434434+ description = lib.mdDoc ''
435435 Multiple monitor configuration, just specify a list of XRandR
436436 outputs. The individual elements should be either simple strings or
437437 an attribute set of output options.
438438439439 If the element is a string, it is denoting the physical output for a
440440 monitor, if it's an attribute set, you must at least provide the
441441- <option>output</option> option.
441441+ {option}`output` option.
442442443443 The monitors will be mapped from left to right in the order of the
444444 list.
445445446446 By default, the first monitor will be set as the primary monitor if
447447 none of the elements contain an option that has set
448448- <option>primary</option> to <literal>true</literal>.
448448+ {option}`primary` to `true`.
449449450450- <note><para>Only one monitor is allowed to be primary.</para></note>
450450+ ::: {.note}
451451+ Only one monitor is allowed to be primary.
452452+ :::
451453452454 Be careful using this option with multiple graphic adapters or with
453455 drivers that have poor support for XRandR, unexpected things might
+5-7
nixos/modules/system/boot/initrd-openvpn.nix
···25252626 boot.initrd.network.openvpn.configuration = mkOption {
2727 type = types.path; # Same type as boot.initrd.secrets
2828- description = ''
2828+ description = lib.mdDoc ''
2929 The configuration file for OpenVPN.
30303131- <warning>
3232- <para>
3333- Unless your bootloader supports initrd secrets, this configuration
3434- is stored insecurely in the global Nix store.
3535- </para>
3636- </warning>
3131+ ::: {.warning}
3232+ Unless your bootloader supports initrd secrets, this configuration
3333+ is stored insecurely in the global Nix store.
3434+ :::
3735 '';
3836 example = literalExpression "./configuration.ovpn";
3937 };
+15-18
nixos/modules/system/boot/initrd-ssh.nix
···4747 "/etc/secrets/initrd/ssh_host_rsa_key"
4848 "/etc/secrets/initrd/ssh_host_ed25519_key"
4949 ];
5050- description = ''
5050+ description = lib.mdDoc ''
5151 Specify SSH host keys to import into the initrd.
52525353 To generate keys, use
5454- <citerefentry><refentrytitle>ssh-keygen</refentrytitle><manvolnum>1</manvolnum></citerefentry>
5454+ {manpage}`ssh-keygen(1)`
5555 as root:
56565757- <programlisting>
5757+ ```
5858 ssh-keygen -t rsa -N "" -f /etc/secrets/initrd/ssh_host_rsa_key
5959 ssh-keygen -t ed25519 -N "" -f /etc/secrets/initrd/ssh_host_ed25519_key
6060- </programlisting>
6060+ ```
6161+6262+ ::: {.warning}
6363+ Unless your bootloader supports initrd secrets, these keys
6464+ are stored insecurely in the global Nix store. Do NOT use
6565+ your regular SSH host private keys for this purpose or
6666+ you'll expose them to regular users!
61676262- <warning>
6363- <para>
6464- Unless your bootloader supports initrd secrets, these keys
6565- are stored insecurely in the global Nix store. Do NOT use
6666- your regular SSH host private keys for this purpose or
6767- you'll expose them to regular users!
6868- </para>
6969- <para>
7070- Additionally, even if your initrd supports secrets, if
7171- you're using initrd SSH to unlock an encrypted disk then
7272- using your regular host keys exposes the private keys on
7373- your unencrypted boot partition.
7474- </para>
7575- </warning>
6868+ Additionally, even if your initrd supports secrets, if
6969+ you're using initrd SSH to unlock an encrypted disk then
7070+ using your regular host keys exposes the private keys on
7171+ your unencrypted boot partition.
7272+ :::
7673 '';
7774 };
7875
+22-22
nixos/modules/system/boot/loader/grub/grub.nix
···417417 splashImage = mkOption {
418418 type = types.nullOr types.path;
419419 example = literalExpression "./my-background.png";
420420- description = ''
420420+ description = lib.mdDoc ''
421421 Background image used for GRUB.
422422- Set to <literal>null</literal> to run GRUB in text mode.
422422+ Set to `null` to run GRUB in text mode.
423423424424- <note><para>
424424+ ::: {.note}
425425 For grub 1:
426426 It must be a 640x480,
427427 14-colour image in XPM format, optionally compressed with
428428- <command>gzip</command> or <command>bzip2</command>.
429429- </para></note>
428428+ {command}`gzip` or {command}`bzip2`.
429429+ :::
430430431431- <note><para>
431431+ ::: {.note}
432432 For grub 2:
433433 File must be one of .png, .tga, .jpg, or .jpeg. JPEG images must
434434 not be progressive.
435435 The image will be scaled if necessary to fit the screen.
436436- </para></note>
436436+ :::
437437 '';
438438 };
439439···441441 type = types.nullOr types.str;
442442 example = "#7EBAE4";
443443 default = null;
444444- description = ''
444444+ description = lib.mdDoc ''
445445 Background color to be used for GRUB to fill the areas the image isn't filling.
446446447447- <note><para>
447447+ ::: {.note}
448448 This options has no effect for GRUB 1.
449449- </para></note>
449449+ :::
450450 '';
451451 };
452452453453 entryOptions = mkOption {
454454 default = "--class nixos --unrestricted";
455455 type = types.nullOr types.str;
456456- description = ''
456456+ description = lib.mdDoc ''
457457 Options applied to the primary NixOS menu entry.
458458459459- <note><para>
459459+ ::: {.note}
460460 This options has no effect for GRUB 1.
461461- </para></note>
461461+ :::
462462 '';
463463 };
464464465465 subEntryOptions = mkOption {
466466 default = "--class nixos";
467467 type = types.nullOr types.str;
468468- description = ''
468468+ description = lib.mdDoc ''
469469 Options applied to the secondary NixOS submenu entry.
470470471471- <note><para>
471471+ ::: {.note}
472472 This options has no effect for GRUB 1.
473473- </para></note>
473473+ :::
474474 '';
475475 };
476476···478478 type = types.nullOr types.path;
479479 example = literalExpression "pkgs.nixos-grub2-theme";
480480 default = null;
481481- description = ''
481481+ description = lib.mdDoc ''
482482 Grub theme to be used.
483483484484- <note><para>
484484+ ::: {.note}
485485 This options has no effect for GRUB 1.
486486- </para></note>
486486+ :::
487487 '';
488488 };
489489490490 splashMode = mkOption {
491491 type = types.enum [ "normal" "stretch" ];
492492 default = "stretch";
493493- description = ''
493493+ description = lib.mdDoc ''
494494 Whether to stretch the image or show the image in the top-left corner unstretched.
495495496496- <note><para>
496496+ ::: {.note}
497497 This options has no effect for GRUB 1.
498498- </para></note>
498498+ :::
499499 '';
500500 };
501501
+9-7
nixos/modules/virtualisation/qemu-vm.nix
···510510 ]
511511 '';
512512 description =
513513- ''
513513+ lib.mdDoc ''
514514 When using the SLiRP user networking (default), this option allows to
515515 forward ports to/from the host/guest.
516516517517- <warning><para>
518518- If the NixOS firewall on the virtual machine is enabled, you also
519519- have to open the guest ports to enable the traffic between host and
520520- guest.
521521- </para></warning>
517517+ ::: {.warning}
518518+ If the NixOS firewall on the virtual machine is enabled, you also
519519+ have to open the guest ports to enable the traffic between host and
520520+ guest.
521521+ :::
522522523523- <note><para>Currently QEMU supports only IPv4 forwarding.</para></note>
523523+ ::: {.note}
524524+ Currently QEMU supports only IPv4 forwarding.
525525+ :::
524526 '';
525527 };
526528
+17-17
nixos/modules/virtualisation/virtualbox-host.nix
···18181919{
2020 options.virtualisation.virtualbox.host = {
2121- enable = mkEnableOption "VirtualBox" // {
2222- description = ''
2121+ enable = mkEnableOption (lib.mdDoc "VirtualBox") // {
2222+ description = lib.mdDoc ''
2323 Whether to enable VirtualBox.
24242525- <note><para>
2626- In order to pass USB devices from the host to the guests, the user
2727- needs to be in the <literal>vboxusers</literal> group.
2828- </para></note>
2525+ ::: {.note}
2626+ In order to pass USB devices from the host to the guests, the user
2727+ needs to be in the `vboxusers` group.
2828+ :::
2929 '';
3030 };
31313232- enableExtensionPack = mkEnableOption "VirtualBox extension pack" // {
3333- description = ''
3232+ enableExtensionPack = mkEnableOption (lib.mdDoc "VirtualBox extension pack") // {
3333+ description = lib.mdDoc ''
3434 Whether to install the Oracle Extension Pack for VirtualBox.
35353636- <important><para>
3737- You must set <literal>nixpkgs.config.allowUnfree = true</literal> in
3838- order to use this. This requires you accept the VirtualBox PUEL.
3939- </para></important>
3636+ ::: {.important}
3737+ You must set `nixpkgs.config.allowUnfree = true` in
3838+ order to use this. This requires you accept the VirtualBox PUEL.
3939+ :::
4040 '';
4141 };
4242···6060 enableHardening = mkOption {
6161 type = types.bool;
6262 default = true;
6363- description = ''
6363+ description = lib.mdDoc ''
6464 Enable hardened VirtualBox, which ensures that only the binaries in the
6565 system path get access to the devices exposed by the kernel modules
6666 instead of all users in the vboxusers group.
67676868- <important><para>
6969- Disabling this can put your system's security at risk, as local users
7070- in the vboxusers group can tamper with the VirtualBox device files.
7171- </para></important>
6868+ ::: {.important}
6969+ Disabling this can put your system's security at risk, as local users
7070+ in the vboxusers group can tamper with the VirtualBox device files.
7171+ :::
7272 '';
7373 };
7474
+12-12
nixos/modules/virtualisation/vmware-host.nix
···2020{
2121 options = with lib; {
2222 virtualisation.vmware.host = {
2323- enable = mkEnableOption "VMware" // {
2424- description = ''
2323+ enable = mkEnableOption (lib.mdDoc "VMware") // {
2424+ description = lib.mdDoc ''
2525 This enables VMware host virtualisation for running VMs.
26262727- <important><para>
2828- <literal>vmware-vmx</literal> will cause kcompactd0 due to
2929- <literal>Transparent Hugepages</literal> feature in kernel.
3030- Apply <literal>[ "transparent_hugepage=never" ]</literal> in
3131- option <option>boot.kernelParams</option> to disable them.
3232- </para></important>
2727+ ::: {.important}
2828+ `vmware-vmx` will cause kcompactd0 due to
2929+ `Transparent Hugepages` feature in kernel.
3030+ Apply `[ "transparent_hugepage=never" ]` in
3131+ option {option}`boot.kernelParams` to disable them.
3232+ :::
33333434- <note><para>
3535- If that didn't work disable <literal>TRANSPARENT_HUGEPAGE</literal>,
3636- <literal>COMPACTION</literal> configs and recompile kernel.
3737- </para></note>
3434+ ::: {.note}
3535+ If that didn't work disable `TRANSPARENT_HUGEPAGE`,
3636+ `COMPACTION` configs and recompile kernel.
3737+ :::
3838 '';
3939 };
4040 package = mkOption {