···50done
5152popd
53+54+# now handle module chapters. we'll need extra checks to ensure that we don't process
55+# markdown files we're not interested in, so we'll require an x.nix file for ever x.md
56+# that we'll convert to xml.
57+pushd "$DIR/../../modules"
58+59+mapfile -t MD_FILES < <(find . -type f -regex '.*\.md$')
60+61+for mf in ${MD_FILES[*]}; do
62+ [ -f "${mf%.md}.nix" ] || continue
63+64+ pandoc --top-level-division=chapter "$mf" "${pandoc_flags[@]}" -o "${mf%.md}.xml"
65+done
66+67+popd
+1-2
nixos/modules/i18n/input-method/default.nix
···6667 meta = {
68 maintainers = with lib.maintainers; [ ericsagnes ];
69- # Don't edit the docbook xml directly, edit the md and generate it:
70- # `pandoc default.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > default.xml`
71 doc = ./default.xml;
72 };
73
···6667 meta = {
68 maintainers = with lib.maintainers; [ ericsagnes ];
69+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
070 doc = ./default.xml;
71 };
72
+1-1
nixos/modules/i18n/input-method/default.xml
···234};
235</programlisting>
236 <para>
237- Note: The <xref linkend="opt-i18n.inputMethod.uim.toolbar"></xref>
238 option can be used to choose uim toolbar.
239 </para>
240 </section>
···234};
235</programlisting>
236 <para>
237+ Note: The <xref linkend="opt-i18n.inputMethod.uim.toolbar" />
238 option can be used to choose uim toolbar.
239 </para>
240 </section>
+2-3
nixos/modules/programs/digitalbitbox/default.nix
···33 };
3435 meta = {
36- # Don't edit the docbook xml directly, edit the md and generate it:
37- # `pandoc doc.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > doc.xml`
38- doc = ./doc.xml;
39 maintainers = with lib.maintainers; [ vidbina ];
40 };
41}
···33 };
3435 meta = {
36+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
37+ doc = ./default.xml;
038 maintainers = with lib.maintainers; [ vidbina ];
39 };
40}
···13</programlisting>
14 <para>
15 and bundles the <literal>digitalbitbox</literal> package (see
16- <xref linkend="sec-digitalbitbox-package"></xref>), which contains
17- the <literal>dbb-app</literal> and <literal>dbb-cli</literal>
18- binaries, along with the hardware module (see
19- <xref linkend="sec-digitalbitbox-hardware-module"></xref>) which
20- sets up the necessary udev rules to access the device.
21 </para>
22 <para>
23 Enabling the digitalbitbox module is pretty much the easiest way to
···25 </para>
26 <para>
27 For more information, see
28- <link xlink:href="https://digitalbitbox.com/start_linux" role="uri">https://digitalbitbox.com/start_linux</link>.
29 </para>
30 <section xml:id="sec-digitalbitbox-package">
31 <title>Package</title>
···13</programlisting>
14 <para>
15 and bundles the <literal>digitalbitbox</literal> package (see
16+ <xref linkend="sec-digitalbitbox-package" />), which contains the
17+ <literal>dbb-app</literal> and <literal>dbb-cli</literal> binaries,
18+ along with the hardware module (see
19+ <xref linkend="sec-digitalbitbox-hardware-module" />) which sets up
20+ the necessary udev rules to access the device.
21 </para>
22 <para>
23 Enabling the digitalbitbox module is pretty much the easiest way to
···25 </para>
26 <para>
27 For more information, see
28+ <link xlink:href="https://digitalbitbox.com/start_linux">https://digitalbitbox.com/start_linux</link>.
29 </para>
30 <section xml:id="sec-digitalbitbox-package">
31 <title>Package</title>
+1-2
nixos/modules/programs/plotinus.nix
···8{
9 meta = {
10 maintainers = pkgs.plotinus.meta.maintainers;
11- # Don't edit the docbook xml directly, edit the md and generate it:
12- # `pandoc plotinus.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > plotinus.xml`
13 doc = ./plotinus.xml;
14 };
15
···8{
9 meta = {
10 maintainers = pkgs.plotinus.meta.maintainers;
11+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
012 doc = ./plotinus.xml;
13 };
14
+1-1
nixos/modules/programs/plotinus.xml
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9- <link xlink:href="https://github.com/p-e-w/plotinus" role="uri">https://github.com/p-e-w/plotinus</link>
10 </para>
11 <para>
12 Plotinus is a searchable command palette in every modern GTK
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9+ <link xlink:href="https://github.com/p-e-w/plotinus">https://github.com/p-e-w/plotinus</link>
10 </para>
11 <para>
12 Plotinus is a searchable command palette in every modern GTK
+1-2
nixos/modules/programs/zsh/oh-my-zsh.nix
···142143 };
144145- # Don't edit the docbook xml directly, edit the md and generate it:
146- # `pandoc oh-my-zsh.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > oh-my-zsh.xml`
147 meta.doc = ./oh-my-zsh.xml;
148 }
···142143 };
144145+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0146 meta.doc = ./oh-my-zsh.xml;
147 }
+1-1
nixos/modules/programs/zsh/oh-my-zsh.xml
···93 <section xml:id="module-programs-oh-my-zsh-packaging-customizations">
94 <title>Package your own customizations</title>
95 <para>
96- If third-party customizations (e.g. new themes) are supposed to be
97 added to <literal>oh-my-zsh</literal> there are several pitfalls
98 to keep in mind:
99 </para>
···93 <section xml:id="module-programs-oh-my-zsh-packaging-customizations">
94 <title>Package your own customizations</title>
95 <para>
96+ If third-party customizations (e.g. new themes) are supposed to be
97 added to <literal>oh-my-zsh</literal> there are several pitfalls
98 to keep in mind:
99 </para>
+2-3
nixos/modules/security/acme/default.nix
···916917 meta = {
918 maintainers = lib.teams.acme.members;
919- # Don't edit the docbook xml directly, edit the md and generate it:
920- # `pandoc doc.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > doc.xml`
921- doc = ./doc.xml;
922 };
923}
···916917 meta = {
918 maintainers = lib.teams.acme.members;
919+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
920+ doc = ./default.xml;
0921 };
922}
···19 <para>
20 To use the ACME module, you must accept the provider’s terms of
21 service by setting
22- <xref linkend="opt-security.acme.acceptTerms"></xref> to
23 <literal>true</literal>. The Let’s Encrypt ToS can be found
24 <link xlink:href="https://letsencrypt.org/repository/">here</link>.
25 </para>
26 <para>
27 You must also set an email address to be used when creating
28 accounts with Let’s Encrypt. You can set this for all certs with
29- <xref linkend="opt-security.acme.defaults.email"></xref> and/or on
30- a per-cert basis with
31- <xref linkend="opt-security.acme.certs._name_.email"></xref>. This
32 address is only used for registration and renewal reminders, and
33 cannot be used to administer the certificates in any way.
34 </para>
35 <para>
36 Alternatively, you can use a different ACME server by changing the
37- <xref linkend="opt-security.acme.defaults.server"></xref> option
38- to a provider of your choosing, or just change the server for one
39- cert with
40- <xref linkend="opt-security.acme.certs._name_.server"></xref>.
41 </para>
42 <para>
43 You will need an HTTP server or DNS server for verification. For
···173 <filename>/var/lib/acme/foo.example.com</filename>.
174 </para>
175 <para>
176- Refer to <xref linkend="ch-options"></xref> for all available
177 configuration options for the
178 <link linkend="opt-security.acme.certs">security.acme</link>
179 module.
···275 <para>
276 You must follow the guide above on configuring DNS-01 validation
277 first, however instead of setting the options for one certificate
278- (e.g. <xref linkend="opt-security.acme.certs._name_.dnsProvider"></xref>)
279- you will set them as defaults
280- (e.g. <xref linkend="opt-security.acme.defaults.dnsProvider"></xref>).
0281 </para>
282 <programlisting>
283# Configure ACME appropriately
···19 <para>
20 To use the ACME module, you must accept the provider’s terms of
21 service by setting
22+ <xref linkend="opt-security.acme.acceptTerms" /> to
23 <literal>true</literal>. The Let’s Encrypt ToS can be found
24 <link xlink:href="https://letsencrypt.org/repository/">here</link>.
25 </para>
26 <para>
27 You must also set an email address to be used when creating
28 accounts with Let’s Encrypt. You can set this for all certs with
29+ <xref linkend="opt-security.acme.defaults.email" /> and/or on a
30+ per-cert basis with
31+ <xref linkend="opt-security.acme.certs._name_.email" />. This
32 address is only used for registration and renewal reminders, and
33 cannot be used to administer the certificates in any way.
34 </para>
35 <para>
36 Alternatively, you can use a different ACME server by changing the
37+ <xref linkend="opt-security.acme.defaults.server" /> option to a
38+ provider of your choosing, or just change the server for one cert
39+ with <xref linkend="opt-security.acme.certs._name_.server" />.
040 </para>
41 <para>
42 You will need an HTTP server or DNS server for verification. For
···172 <filename>/var/lib/acme/foo.example.com</filename>.
173 </para>
174 <para>
175+ Refer to <xref linkend="ch-options" /> for all available
176 configuration options for the
177 <link linkend="opt-security.acme.certs">security.acme</link>
178 module.
···274 <para>
275 You must follow the guide above on configuring DNS-01 validation
276 first, however instead of setting the options for one certificate
277+ (e.g.
278+ <xref linkend="opt-security.acme.certs._name_.dnsProvider" />) you
279+ will set them as defaults (e.g.
280+ <xref linkend="opt-security.acme.defaults.dnsProvider" />).
281 </para>
282 <programlisting>
283# Configure ACME appropriately
+1-2
nixos/modules/services/backup/borgbackup.nix
···226227in {
228 meta.maintainers = with maintainers; [ dotlambda ];
229- # Don't edit the docbook xml directly, edit the md and generate it:
230- # `pandoc borgbackup.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > borgbackup.xml`
231 meta.doc = ./borgbackup.xml;
232233 ###### interface
···226227in {
228 meta.maintainers = with maintainers; [ dotlambda ];
229+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0230 meta.doc = ./borgbackup.xml;
231232 ###### interface
+3-3
nixos/modules/services/backup/borgbackup.xml
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9- <link xlink:href="https://borgbackup.readthedocs.io/" role="uri">https://borgbackup.readthedocs.io/</link>
10 </para>
11 <para>
12 <link xlink:href="https://www.borgbackup.org/">BorgBackup</link>
···200 protect your data from disk failure, ransomware and theft.
201 </para>
202 <para>
203- It can be installed in NixOS e.g. by adding
204 <literal>pkgs.vorta</literal> to
205- <xref linkend="opt-environment.systemPackages"></xref>.
206 </para>
207 <para>
208 Details about using Vorta can be found under
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9+ <link xlink:href="https://borgbackup.readthedocs.io/">https://borgbackup.readthedocs.io/</link>
10 </para>
11 <para>
12 <link xlink:href="https://www.borgbackup.org/">BorgBackup</link>
···200 protect your data from disk failure, ransomware and theft.
201 </para>
202 <para>
203+ It can be installed in NixOS e.g. by adding
204 <literal>pkgs.vorta</literal> to
205+ <xref linkend="opt-environment.systemPackages" />.
206 </para>
207 <para>
208 Details about using Vorta can be found under
+1-2
nixos/modules/services/databases/foundationdb.nix
···424 };
425 };
426427- # Don't edit the docbook xml directly, edit the md and generate it:
428- # `pandoc foundationdb.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > foundationdb.xml`
429 meta.doc = ./foundationdb.xml;
430 meta.maintainers = with lib.maintainers; [ thoughtpolice ];
431}
···424 };
425 };
426427+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0428 meta.doc = ./foundationdb.xml;
429 meta.maintainers = with lib.maintainers; [ thoughtpolice ];
430}
+2-2
nixos/modules/services/databases/foundationdb.xml
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9- <link xlink:href="https://apple.github.io/foundationdb/" role="uri">https://apple.github.io/foundationdb/</link>
10 </para>
11 <para>
12 <emphasis>Maintainer:</emphasis> Austin Seipp
···417 FoundationDB is a complex piece of software, and requires careful
418 administration to properly use. Full documentation for
419 administration can be found here:
420- <link xlink:href="https://apple.github.io/foundationdb/" role="uri">https://apple.github.io/foundationdb/</link>.
421 </para>
422 </section>
423</chapter>
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9+ <link xlink:href="https://apple.github.io/foundationdb/">https://apple.github.io/foundationdb/</link>
10 </para>
11 <para>
12 <emphasis>Maintainer:</emphasis> Austin Seipp
···417 FoundationDB is a complex piece of software, and requires careful
418 administration to properly use. Full documentation for
419 administration can be found here:
420+ <link xlink:href="https://apple.github.io/foundationdb/">https://apple.github.io/foundationdb/</link>.
421 </para>
422 </section>
423</chapter>
+1-2
nixos/modules/services/databases/postgresql.nix
···585586 };
587588- # Don't edit the docbook xml directly, edit the md and generate it:
589- # `pandoc postgresql.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > postgresql.xml`
590 meta.doc = ./postgresql.xml;
591 meta.maintainers = with lib.maintainers; [ thoughtpolice danbst ];
592}
···585586 };
587588+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0589 meta.doc = ./postgresql.xml;
590 meta.maintainers = with lib.maintainers; [ thoughtpolice danbst ];
591}
+12-14
nixos/modules/services/databases/postgresql.xml
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9- <link xlink:href="http://www.postgresql.org/docs/" role="uri">http://www.postgresql.org/docs/</link>
10 </para>
11 <para>
12- PostgreSQL is an advanced, free relational database. <!-- MORE -->
13 </para>
14 <section xml:id="module-services-postgres-configuring">
15 <title>Configuring</title>
···23</programlisting>
24 <para>
25 Note that you are required to specify the desired version of
26- PostgreSQL (e.g. <literal>pkgs.postgresql_11</literal>). Since
27 upgrading your PostgreSQL version requires a database dump and
28 reload (see below), NixOS cannot provide a default value for
29- <xref linkend="opt-services.postgresql.package"></xref> such as
30- the most recent release of PostgreSQL.
31 </para>
32 <para>
33 By default, PostgreSQL stores its databases in
34 <filename>/var/lib/postgresql/$psqlSchema</filename>. You can
35 override this using
36- <xref linkend="opt-services.postgresql.dataDir"></xref>, e.g.
37 </para>
38 <programlisting>
39services.postgresql.dataDir = "/data/postgresql";
···122 the new one. You may supply arguments like
123 <literal>--jobs 4</literal> and <literal>--link</literal> to
124 speedup migration process. See
125- <link xlink:href="https://www.postgresql.org/docs/current/pgupgrade.html" role="uri">https://www.postgresql.org/docs/current/pgupgrade.html</link>
126 for details.
127 </para>
128 </listitem>
···130 <para>
131 Change postgresql package in NixOS configuration to the one
132 you were upgrading to via
133- <xref linkend="opt-services.postgresql.package"></xref>.
134- Rebuild NixOS. This should start new postgres using upgraded
135- data directory and all services you stopped during the
136- upgrade.
137 </para>
138 </listitem>
139 <listitem>
···151 <para>
152 For PostgreSQL < 14, run (as
153 <literal>su -l postgres</literal> in the
154- <xref linkend="opt-services.postgresql.dataDir"></xref>,
155- in this example
156- <filename>/var/lib/postgresql/13</filename>):
157 </para>
158 <programlisting>
159$ ./analyze_new_cluster.sh
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9+ <link xlink:href="http://www.postgresql.org/docs/">http://www.postgresql.org/docs/</link>
10 </para>
11 <para>
12+ PostgreSQL is an advanced, free relational database.
13 </para>
14 <section xml:id="module-services-postgres-configuring">
15 <title>Configuring</title>
···23</programlisting>
24 <para>
25 Note that you are required to specify the desired version of
26+ PostgreSQL (e.g. <literal>pkgs.postgresql_11</literal>). Since
27 upgrading your PostgreSQL version requires a database dump and
28 reload (see below), NixOS cannot provide a default value for
29+ <xref linkend="opt-services.postgresql.package" /> such as the
30+ most recent release of PostgreSQL.
31 </para>
32 <para>
33 By default, PostgreSQL stores its databases in
34 <filename>/var/lib/postgresql/$psqlSchema</filename>. You can
35 override this using
36+ <xref linkend="opt-services.postgresql.dataDir" />, e.g.
37 </para>
38 <programlisting>
39services.postgresql.dataDir = "/data/postgresql";
···122 the new one. You may supply arguments like
123 <literal>--jobs 4</literal> and <literal>--link</literal> to
124 speedup migration process. See
125+ <link xlink:href="https://www.postgresql.org/docs/current/pgupgrade.html">https://www.postgresql.org/docs/current/pgupgrade.html</link>
126 for details.
127 </para>
128 </listitem>
···130 <para>
131 Change postgresql package in NixOS configuration to the one
132 you were upgrading to via
133+ <xref linkend="opt-services.postgresql.package" />. Rebuild
134+ NixOS. This should start new postgres using upgraded data
135+ directory and all services you stopped during the upgrade.
0136 </para>
137 </listitem>
138 <listitem>
···150 <para>
151 For PostgreSQL < 14, run (as
152 <literal>su -l postgres</literal> in the
153+ <xref linkend="opt-services.postgresql.dataDir" />, in
154+ this example <filename>/var/lib/postgresql/13</filename>):
0155 </para>
156 <programlisting>
157$ ./analyze_new_cluster.sh
+1-2
nixos/modules/services/desktops/flatpak.nix
···7 cfg = config.services.flatpak;
8in {
9 meta = {
10- # Don't edit the docbook xml directly, edit the md and generate it:
11- # `pandoc flatpak.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > flatpak.xml`
12 doc = ./flatpak.xml;
13 maintainers = pkgs.flatpak.meta.maintainers;
14 };
···7 cfg = config.services.flatpak;
8in {
9 meta = {
10+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
011 doc = ./flatpak.xml;
12 maintainers = pkgs.flatpak.meta.maintainers;
13 };
+1-1
nixos/modules/services/desktops/flatpak.xml
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9- <link xlink:href="https://github.com/flatpak/flatpak/wiki" role="uri">https://github.com/flatpak/flatpak/wiki</link>
10 </para>
11 <para>
12 Flatpak is a system for building, distributing, and running
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9+ <link xlink:href="https://github.com/flatpak/flatpak/wiki">https://github.com/flatpak/flatpak/wiki</link>
10 </para>
11 <para>
12 Flatpak is a system for building, distributing, and running
+1-2
nixos/modules/services/development/blackfire.nix
···11in {
12 meta = {
13 maintainers = pkgs.blackfire.meta.maintainers;
14- # Don't edit the docbook xml directly, edit the md and generate it:
15- # `pandoc blackfire.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > blackfire.xml`
16 doc = ./blackfire.xml;
17 };
18
···11in {
12 meta = {
13 maintainers = pkgs.blackfire.meta.maintainers;
14+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
015 doc = ./blackfire.xml;
16 };
17
+1-1
nixos/modules/services/development/blackfire.xml
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9- <link xlink:href="https://blackfire.io/docs/introduction" role="uri">https://blackfire.io/docs/introduction</link>
10 </para>
11 <para>
12 <link xlink:href="https://blackfire.io">Blackfire</link> is a
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9+ <link xlink:href="https://blackfire.io/docs/introduction">https://blackfire.io/docs/introduction</link>
10 </para>
11 <para>
12 <link xlink:href="https://blackfire.io">Blackfire</link> is a
···99 environment.variables.EDITOR = mkIf cfg.defaultEditor (mkOverride 900 "${editorScript}/bin/emacseditor");
100 };
101102+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0103 meta.doc = ./emacs.xml;
104}
+16-16
nixos/modules/services/editors/emacs.xml
···10 <para>
11 Emacs runs within a graphical desktop environment using the X Window
12 System, but works equally well on a text terminal. Under macOS, a
13- "Mac port" edition is available, which uses Apple's native
14- GUI frameworks.
15 </para>
16 <para>
17- Nixpkgs provides a superior environment for running Emacs. It's
18 simple to create custom builds by overriding the default packages.
19 Chaotic collections of Emacs Lisp code and extensions can be brought
20 under control using declarative package management. NixOS even
···25 <title>Installing Emacs</title>
26 <para>
27 Emacs can be installed in the normal way for Nix (see
28- <xref linkend="sec-package-management"></xref>). In addition, a
29- NixOS <emphasis>service</emphasis> can be enabled.
30 </para>
31 <section xml:id="module-services-emacs-releases">
32 <title>The Different Releases of Emacs</title>
···63 </term>
64 <listitem>
65 <para>
66- Emacs with the "Mac port" patches, providing a
67- more native look and feel under macOS.
68 </para>
69 </listitem>
70 </varlistentry>
71 </variablelist>
72 <para>
73- If those aren't suitable, then the following imitation Emacs
74 editors are also available in Nixpkgs:
75 <link xlink:href="https://www.gnu.org/software/zile/">Zile</link>,
76 <link xlink:href="http://homepage.boetes.org/software/mg/">mg</link>,
···207 <para>
208 If you are on NixOS, you can install this particular Emacs for
209 all users by adding it to the list of system packages (see
210- <xref linkend="sec-declarative-package-mgmt"></xref>). Simply
211- modify your file <filename>configuration.nix</filename> to make
212- it contain:
213 <anchor xml:id="module-services-emacs-configuration-nix" />
214 </para>
215 <programlisting>
···224 In this case, the next <command>nixos-rebuild switch</command>
225 will take care of adding your <command>emacs</command> to the
226 <varname>PATH</varname> environment variable (see
227- <xref linkend="sec-changing-config"></xref>).
228 </para>
229 <para>
230 If you are not on NixOS or want to install this particular Emacs
···292 NixOS provides an optional <command>systemd</command> service
293 which launches
294 <link xlink:href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html">Emacs
295- daemon</link> with the user's login session.
296 </para>
297 <para>
298 <emphasis>Source:</emphasis>
···315 <literal>emacsWithPackages</literal>.
316 </para>
317 <para>
318- Ensure that the Emacs server is enabled for your user's Emacs
319 configuration, either by customizing the
320 <varname>server-mode</varname> variable, or by adding
321 <literal>(server-start)</literal> to
···353 <section xml:id="module-services-emacs-editor-variable">
354 <title>Configuring the <varname>EDITOR</varname> variable</title>
355 <para>
356- If <xref linkend="opt-services.emacs.defaultEditor"></xref> is
357 <literal>true</literal>, the <varname>EDITOR</varname> variable
358 will be set to a wrapper script which launches
359 <command>emacsclient</command>.
···452 <para>
453 To install the DocBook 5.0 schemas, either add
454 <varname>pkgs.docbook5</varname> to
455- <xref linkend="opt-environment.systemPackages"></xref>
456 (<link linkend="sec-declarative-package-mgmt">NixOS</link>), or
457 run <literal>nix-env -f '<nixpkgs>' -iA docbook5</literal>
458 (<link linkend="sec-ad-hoc-packages">Nix</link>).
···10 <para>
11 Emacs runs within a graphical desktop environment using the X Window
12 System, but works equally well on a text terminal. Under macOS, a
13+ <quote>Mac port</quote> edition is available, which uses Apple’s
14+ native GUI frameworks.
15 </para>
16 <para>
17+ Nixpkgs provides a superior environment for running Emacs. It’s
18 simple to create custom builds by overriding the default packages.
19 Chaotic collections of Emacs Lisp code and extensions can be brought
20 under control using declarative package management. NixOS even
···25 <title>Installing Emacs</title>
26 <para>
27 Emacs can be installed in the normal way for Nix (see
28+ <xref linkend="sec-package-management" />). In addition, a NixOS
29+ <emphasis>service</emphasis> can be enabled.
30 </para>
31 <section xml:id="module-services-emacs-releases">
32 <title>The Different Releases of Emacs</title>
···63 </term>
64 <listitem>
65 <para>
66+ Emacs with the <quote>Mac port</quote> patches, providing
67+ a more native look and feel under macOS.
68 </para>
69 </listitem>
70 </varlistentry>
71 </variablelist>
72 <para>
73+ If those aren’t suitable, then the following imitation Emacs
74 editors are also available in Nixpkgs:
75 <link xlink:href="https://www.gnu.org/software/zile/">Zile</link>,
76 <link xlink:href="http://homepage.boetes.org/software/mg/">mg</link>,
···207 <para>
208 If you are on NixOS, you can install this particular Emacs for
209 all users by adding it to the list of system packages (see
210+ <xref linkend="sec-declarative-package-mgmt" />). Simply modify
211+ your file <filename>configuration.nix</filename> to make it
212+ contain:
213 <anchor xml:id="module-services-emacs-configuration-nix" />
214 </para>
215 <programlisting>
···224 In this case, the next <command>nixos-rebuild switch</command>
225 will take care of adding your <command>emacs</command> to the
226 <varname>PATH</varname> environment variable (see
227+ <xref linkend="sec-changing-config" />).
228 </para>
229 <para>
230 If you are not on NixOS or want to install this particular Emacs
···292 NixOS provides an optional <command>systemd</command> service
293 which launches
294 <link xlink:href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html">Emacs
295+ daemon</link> with the user’s login session.
296 </para>
297 <para>
298 <emphasis>Source:</emphasis>
···315 <literal>emacsWithPackages</literal>.
316 </para>
317 <para>
318+ Ensure that the Emacs server is enabled for your user’s Emacs
319 configuration, either by customizing the
320 <varname>server-mode</varname> variable, or by adding
321 <literal>(server-start)</literal> to
···353 <section xml:id="module-services-emacs-editor-variable">
354 <title>Configuring the <varname>EDITOR</varname> variable</title>
355 <para>
356+ If <xref linkend="opt-services.emacs.defaultEditor" /> is
357 <literal>true</literal>, the <varname>EDITOR</varname> variable
358 will be set to a wrapper script which launches
359 <command>emacsclient</command>.
···452 <para>
453 To install the DocBook 5.0 schemas, either add
454 <varname>pkgs.docbook5</varname> to
455+ <xref linkend="opt-environment.systemPackages" />
456 (<link linkend="sec-declarative-package-mgmt">NixOS</link>), or
457 run <literal>nix-env -f '<nixpkgs>' -iA docbook5</literal>
458 (<link linkend="sec-ad-hoc-packages">Nix</link>).
+1-2
nixos/modules/services/hardware/trezord.nix
···8 ### docs
910 meta = {
11- # Don't edit the docbook xml directly, edit the md and generate it:
12- # `pandoc trezord.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > trezord.xml`
13 doc = ./trezord.xml;
14 };
15
···8 ### docs
910 meta = {
11+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
012 doc = ./trezord.xml;
13 };
14
+1-1
nixos/modules/services/hardware/trezord.xml
···12 <link xlink:href="https://wiki.trezor.io/GPG">GPG</link> and a
13 <link xlink:href="https://wiki.trezor.io/Trezor_Password_Manager">password
14 manager</link>. For more information, guides and documentation, see
15- <link xlink:href="https://wiki.trezor.io" role="uri">https://wiki.trezor.io</link>.
16 </para>
17 <para>
18 To enable Trezor support, add the following to your
···12 <link xlink:href="https://wiki.trezor.io/GPG">GPG</link> and a
13 <link xlink:href="https://wiki.trezor.io/Trezor_Password_Manager">password
14 manager</link>. For more information, guides and documentation, see
15+ <link xlink:href="https://wiki.trezor.io">https://wiki.trezor.io</link>.
16 </para>
17 <para>
18 To enable Trezor support, add the following to your
+1-2
nixos/modules/services/mail/mailman.nix
···642643 meta = {
644 maintainers = with lib.maintainers; [ lheckemann qyliss ma27 ];
645- # Don't edit the docbook xml directly, edit the md and generate it:
646- # `pandoc mailman.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > mailman.xml`
647 doc = ./mailman.xml;
648 };
649
···642643 meta = {
644 maintainers = with lib.maintainers; [ lheckemann qyliss ma27 ];
645+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0646 doc = ./mailman.xml;
647 };
648
+1-2
nixos/modules/services/matrix/mjolnir.nix
···236 };
237238 meta = {
239- # Don't edit the docbook xml directly, edit the md and generate it:
240- # `pandoc mjolnir.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > mjolnir.xml`
241 doc = ./mjolnir.xml;
242 maintainers = with maintainers; [ jojosch ];
243 };
···236 };
237238 meta = {
239+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0240 doc = ./mjolnir.xml;
241 maintainers = with maintainers; [ jojosch ];
242 };
+1-2
nixos/modules/services/matrix/synapse.nix
···801802 meta = {
803 buildDocsInSandbox = false;
804- # Don't edit the docbook xml directly, edit the md and generate it:
805- # `pandoc synapse.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > synapse.xml`
806 doc = ./synapse.xml;
807 maintainers = teams.matrix.members;
808 };
···801802 meta = {
803 buildDocsInSandbox = false;
804+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0805 doc = ./synapse.xml;
806 maintainers = teams.matrix.members;
807 };
+6-6
nixos/modules/services/matrix/synapse.xml
···131 <literal>services.matrix-synapse.settings.enable_registration = true;</literal>.
132 Otherwise, or you can generate a registration secret with
133 <command>pwgen -s 64 1</command> and set it with
134- <xref linkend="opt-services.matrix-synapse.settings.registration_shared_secret"></xref>.
135 To create a new user or admin, run the following after you have
136 set the secret and have rebuilt NixOS:
137 </para>
···151 <warning>
152 <para>
153 When using
154- <xref linkend="opt-services.matrix-synapse.settings.registration_shared_secret"></xref>,
155 the secret will end up in the world-readable store. Instead it’s
156 recommended to deploy the secret in an additional file like
157 this:
···173 <citerefentry><refentrytitle>nixops</refentrytitle><manvolnum>1</manvolnum></citerefentry>
174 or
175 <link xlink:href="https://github.com/Mic92/sops-nix/">sops-nix</link>
176- to
177- e.g. <filename>/run/secrets/matrix-shared-secret</filename>
178- and ensure that it’s readable by
179 <literal>matrix-synapse</literal>.
180 </para>
181 </listitem>
···217 <literal>https://element.myhostname.example.org</literal> and
218 <literal>https://element.example.org</literal>. Alternatively, you
219 can use the hosted copy at
220- <link xlink:href="https://app.element.io/" role="uri">https://app.element.io/</link>,
221 or use other web clients or native client applications. Due to the
222 <literal>/.well-known</literal> urls set up done above, many
223 clients should fill in the required connection details
···131 <literal>services.matrix-synapse.settings.enable_registration = true;</literal>.
132 Otherwise, or you can generate a registration secret with
133 <command>pwgen -s 64 1</command> and set it with
134+ <xref linkend="opt-services.matrix-synapse.settings.registration_shared_secret" />.
135 To create a new user or admin, run the following after you have
136 set the secret and have rebuilt NixOS:
137 </para>
···151 <warning>
152 <para>
153 When using
154+ <xref linkend="opt-services.matrix-synapse.settings.registration_shared_secret" />,
155 the secret will end up in the world-readable store. Instead it’s
156 recommended to deploy the secret in an additional file like
157 this:
···173 <citerefentry><refentrytitle>nixops</refentrytitle><manvolnum>1</manvolnum></citerefentry>
174 or
175 <link xlink:href="https://github.com/Mic92/sops-nix/">sops-nix</link>
176+ to e.g.
177+ <filename>/run/secrets/matrix-shared-secret</filename> and
178+ ensure that it’s readable by
179 <literal>matrix-synapse</literal>.
180 </para>
181 </listitem>
···217 <literal>https://element.myhostname.example.org</literal> and
218 <literal>https://element.example.org</literal>. Alternatively, you
219 can use the hosted copy at
220+ <link xlink:href="https://app.element.io/">https://app.element.io/</link>,
221 or use other web clients or native client applications. Due to the
222 <literal>/.well-known</literal> urls set up done above, many
223 clients should fill in the required connection details
+1-2
nixos/modules/services/misc/gitlab.nix
···15021503 };
15041505- # Don't edit the docbook xml directly, edit the md and generate it:
1506- # `pandoc gitlab.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > gitlab.xml`
1507 meta.doc = ./gitlab.xml;
15081509}
···15021503 };
15041505+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
01506 meta.doc = ./gitlab.xml;
15071508}
+1-1
nixos/modules/services/misc/gitlab.xml
···97 enabled for fetching incoming mail.
98 </para>
99 <para>
100- Refer to <xref linkend="ch-options"></xref> for all available
101 configuration options for the
102 <link linkend="opt-services.gitlab.enable">services.gitlab</link>
103 module.
···97 enabled for fetching incoming mail.
98 </para>
99 <para>
100+ Refer to <xref linkend="ch-options" /> for all available
101 configuration options for the
102 <link linkend="opt-services.gitlab.enable">services.gitlab</link>
103 module.
+2-3
nixos/modules/services/misc/sourcehut/default.nix
···1390 '')
1391 ];
13921393- # Don't edit the docbook xml directly, edit the md and generate it:
1394- # `pandoc sourcehut.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > sourcehut.xml`
1395- meta.doc = ./sourcehut.xml;
1396 meta.maintainers = with maintainers; [ tomberek ];
1397}
···1390 '')
1391 ];
13921393+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
1394+ meta.doc = ./default.xml;
01395 meta.maintainers = with maintainers; [ tomberek ];
1396}
···97 </para>
98 </section>
99 <section xml:id="module-services-sourcehut-httpd">
100- <title>Using an alternative webserver as reverse-proxy
101- (e.g. <literal>httpd</literal>)</title>
102 <para>
103 By default, <literal>nginx</literal> is used as reverse-proxy for
104- <literal>sourcehut</literal>. However, it’s possible to use
105- e.g. <literal>httpd</literal> by explicitly disabling
106 <literal>nginx</literal> using
107- <xref linkend="opt-services.nginx.enable"></xref> and fixing the
108 <literal>settings</literal>.
109 </para>
110 </section>
···97 </para>
98 </section>
99 <section xml:id="module-services-sourcehut-httpd">
100+ <title>Using an alternative webserver as reverse-proxy (e.g.
101+ <literal>httpd</literal>)</title>
102 <para>
103 By default, <literal>nginx</literal> is used as reverse-proxy for
104+ <literal>sourcehut</literal>. However, it’s possible to use e.g.
105+ <literal>httpd</literal> by explicitly disabling
106 <literal>nginx</literal> using
107+ <xref linkend="opt-services.nginx.enable" /> and fixing the
108 <literal>settings</literal>.
109 </para>
110 </section>
···7 </para>
8 <para>
9 <emphasis>Upstream documentation:</emphasis>
10- <link xlink:href="https://taskwarrior.org/docs/#taskd" role="uri">https://taskwarrior.org/docs/#taskd</link>
11 </para>
12 <section xml:id="module-services-taskserver-configuration">
13 <title>Configuration</title>
···43 imperatively, the <command>nixos-taskserver</command> tool is used
44 for addition and deletion of organisations along with users and
45 groups defined by
46- <xref linkend="opt-services.taskserver.organisations"></xref> and
47- as well for imperative set up.
48 </para>
49 <para>
50 The tool is designed to not interfere if the command is used to
···7 </para>
8 <para>
9 <emphasis>Upstream documentation:</emphasis>
10+ <link xlink:href="https://taskwarrior.org/docs/#taskd">https://taskwarrior.org/docs/#taskd</link>
11 </para>
12 <section xml:id="module-services-taskserver-configuration">
13 <title>Configuration</title>
···43 imperatively, the <command>nixos-taskserver</command> tool is used
44 for addition and deletion of organisations along with users and
45 groups defined by
46+ <xref linkend="opt-services.taskserver.organisations" /> and as
47+ well for imperative set up.
48 </para>
49 <para>
50 The tool is designed to not interfere if the command is used to
+1-2
nixos/modules/services/misc/weechat.nix
···59 };
60 };
6162- # Don't edit the docbook xml directly, edit the md and generate it:
63- # `pandoc weechat.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > weechat.xml`
64 meta.doc = ./weechat.xml;
65}
···59 };
60 };
6162+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
063 meta.doc = ./weechat.xml;
64}
+2-2
nixos/modules/services/monitoring/parsedmarc.md
···25Note that GeoIP provisioning is disabled in the example for
26simplicity, but should be turned on for fully functional reports.
2728-## Local mail
29Instead of watching an external inbox, a local inbox can be
30automatically provisioned. The recipient's name is by default set to
31`dmarc`, but can be configured in
···49};
50```
5152-## Grafana and GeoIP
53The reports can be visualized and summarized with parsedmarc's
54official Grafana dashboard. For all views to work, and for the data to
55be complete, GeoIP databases are also required. The following example
···25Note that GeoIP provisioning is disabled in the example for
26simplicity, but should be turned on for fully functional reports.
2728+## Local mail {#module-services-parsedmarc-local-mail}
29Instead of watching an external inbox, a local inbox can be
30automatically provisioned. The recipient's name is by default set to
31`dmarc`, but can be configured in
···49};
50```
5152+## Grafana and GeoIP {#module-services-parsedmarc-grafana-geoip}
53The reports can be visualized and summarized with parsedmarc's
54official Grafana dashboard. For all views to work, and for the data to
55be complete, GeoIP databases are also required. The following example
···539 };
540 };
541542+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0543 meta.doc = ./parsedmarc.xml;
544 meta.maintainers = [ lib.maintainers.talyz ];
545}
+2-2
nixos/modules/services/monitoring/parsedmarc.xml
···31 simplicity, but should be turned on for fully functional reports.
32 </para>
33 </section>
34- <section xml:id="local-mail">
35 <title>Local mail</title>
36 <para>
37 Instead of watching an external inbox, a local inbox can be
···57};
58</programlisting>
59 </section>
60- <section xml:id="grafana-and-geoip">
61 <title>Grafana and GeoIP</title>
62 <para>
63 The reports can be visualized and summarized with parsedmarc’s
···31 simplicity, but should be turned on for fully functional reports.
32 </para>
33 </section>
34+ <section xml:id="module-services-parsedmarc-local-mail">
35 <title>Local mail</title>
36 <para>
37 Instead of watching an external inbox, a local inbox can be
···57};
58</programlisting>
59 </section>
60+ <section xml:id="module-services-parsedmarc-grafana-geoip">
61 <title>Grafana and GeoIP</title>
62 <para>
63 The reports can be visualized and summarized with parsedmarc’s
···323 );
324325 meta = {
326- # Don't edit the docbook xml directly, edit the md and generate it:
327- # `pandoc exporters.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > exporters.xml`
328 doc = ./exporters.xml;
329 maintainers = [ maintainers.willibutz ];
330 };
···323 );
324325 meta = {
326+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0327 doc = ./exporters.xml;
328 maintainers = [ maintainers.willibutz ];
329 };
···95 users.groups.litestream = {};
96 };
9798+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
99+ meta.doc = ./default.xml;
0100}
···311312 meta = {
313 maintainers = with lib.maintainers; [ pennae ];
314- # Don't edit the docbook xml directly, edit the md and generate it:
315- # `pandoc firefox-syncserver.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > firefox-syncserver.xml`
316 doc = ./firefox-syncserver.xml;
317 };
318}
···311312 meta = {
313 maintainers = with lib.maintainers; [ pennae ];
314+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0315 doc = ./firefox-syncserver.xml;
316 };
317}
+1-2
nixos/modules/services/networking/mosquitto.nix
···671672 meta = {
673 maintainers = with lib.maintainers; [ pennae ];
674- # Don't edit the docbook xml directly, edit the md and generate it:
675- # `pandoc mosquitto.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > mosquitto.xml`
676 doc = ./mosquitto.xml;
677 };
678}
···671672 meta = {
673 maintainers = with lib.maintainers; [ pennae ];
674+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0675 doc = ./mosquitto.xml;
676 };
677}
+1-2
nixos/modules/services/networking/pleroma.nix
···147148 };
149 meta.maintainers = with lib.maintainers; [ ninjatrappeur ];
150- # Don't edit the docbook xml directly, edit the md and generate it:
151- # `pandoc pleroma.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > pleroma.xml`
152 meta.doc = ./pleroma.xml;
153}
···147148 };
149 meta.maintainers = with lib.maintainers; [ ninjatrappeur ];
150+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0151 meta.doc = ./pleroma.xml;
152}
+7-8
nixos/modules/services/networking/pleroma.xml
···60 </para>
61 <para>
62 This is an example of configuration, where
63- <xref linkend="opt-services.pleroma.configs"></xref> option
64- contains the content of the file <literal>config.exs</literal>,
65- generated
66 <link linkend="module-services-pleroma-generate-config">in the
67 first section</link>, but with the secrets (database password,
68 endpoint secret key, salts, etc.) removed. Removing secrets is
···109</programlisting>
110 <para>
111 Secrets must be moved into a file pointed by
112- <xref linkend="opt-services.pleroma.secretConfigFile"></xref>, in
113- our case <literal>/var/lib/pleroma/secrets.exs</literal>. This
114- file can be created copying the previously generated
115 <literal>config.exs</literal> file and then removing all the
116 settings, except the secrets. This is an example
117 </para>
···136</programlisting>
137 <para>
138 Note that the lines of the same configuration group are comma
139- separated (i.e. all the lines end with a comma, except the last
140 one), so when the lines with passwords are added or removed,
141 commas must be adjusted accordingly.
142 </para>
···156</programlisting>
157 <para>
158 and then accessing
159- <link xlink:href="http://localhost:4000" role="uri">http://localhost:4000</link>
160 from a web browser.
161 </para>
162 </section>
···60 </para>
61 <para>
62 This is an example of configuration, where
63+ <xref linkend="opt-services.pleroma.configs" /> option contains
64+ the content of the file <literal>config.exs</literal>, generated
065 <link linkend="module-services-pleroma-generate-config">in the
66 first section</link>, but with the secrets (database password,
67 endpoint secret key, salts, etc.) removed. Removing secrets is
···108</programlisting>
109 <para>
110 Secrets must be moved into a file pointed by
111+ <xref linkend="opt-services.pleroma.secretConfigFile" />, in our
112+ case <literal>/var/lib/pleroma/secrets.exs</literal>. This file
113+ can be created copying the previously generated
114 <literal>config.exs</literal> file and then removing all the
115 settings, except the secrets. This is an example
116 </para>
···135</programlisting>
136 <para>
137 Note that the lines of the same configuration group are comma
138+ separated (i.e. all the lines end with a comma, except the last
139 one), so when the lines with passwords are added or removed,
140 commas must be adjusted accordingly.
141 </para>
···155</programlisting>
156 <para>
157 and then accessing
158+ <link xlink:href="http://localhost:4000">http://localhost:4000</link>
159 from a web browser.
160 </para>
161 </section>
+1-2
nixos/modules/services/networking/prosody.nix
···905906 };
907908- # Don't edit the docbook xml directly, edit the md and generate it:
909- # `pandoc prosody.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > prosody.xml`
910 meta.doc = ./prosody.xml;
911}
···905906 };
907908+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0909 meta.doc = ./prosody.xml;
910}
+1-2
nixos/modules/services/networking/yggdrasil.nix
···193 environment.systemPackages = [ cfg.package ];
194 });
195 meta = {
196- # Don't edit the docbook xml directly, edit the md and generate it:
197- # `pandoc yggdrasil.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > yggdrasil.xml`
198 doc = ./yggdrasil.xml;
199 maintainers = with lib.maintainers; [ gazally ehmry ];
200 };
···193 environment.systemPackages = [ cfg.package ];
194 });
195 meta = {
196+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0197 doc = ./yggdrasil.xml;
198 maintainers = with lib.maintainers; [ gazally ehmry ];
199 };
+1-1
nixos/modules/services/networking/yggdrasil.xml
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9- <link xlink:href="https://yggdrasil-network.github.io/" role="uri">https://yggdrasil-network.github.io/</link>
10 </para>
11 <para>
12 Yggdrasil is an early-stage implementation of a fully end-to-end
···6 </para>
7 <para>
8 <emphasis>Upstream documentation:</emphasis>
9+ <link xlink:href="https://yggdrasil-network.github.io/">https://yggdrasil-network.github.io/</link>
10 </para>
11 <para>
12 Yggdrasil is an early-stage implementation of a fully end-to-end
+1-2
nixos/modules/services/search/meilisearch.nix
···9{
1011 meta.maintainers = with maintainers; [ Br1ght0ne happysalada ];
12- # Don't edit the docbook xml directly, edit the md and generate it:
13- # `pandoc meilisearch.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > meilisearch.xml`
14 meta.doc = ./meilisearch.xml;
1516 ###### interface
···9{
1011 meta.maintainers = with maintainers; [ Br1ght0ne happysalada ];
12+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
013 meta.doc = ./meilisearch.xml;
1415 ###### interface
···1080 ];
1081 };
10821083+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
01084 meta.doc = ./discourse.xml;
1085 meta.maintainers = [ lib.maintainers.talyz ];
1086}
+27-30
nixos/modules/services/web-apps/discourse.xml
···36 <title>Using a regular TLS certificate</title>
37 <para>
38 To set up TLS using a regular certificate and key on file, use the
39- <xref linkend="opt-services.discourse.sslCertificate"></xref> and
40- <xref linkend="opt-services.discourse.sslCertificateKey"></xref>
41 options:
42 </para>
43 <programlisting>
···61 <para>
62 Discourse uses PostgreSQL to store most of its data. A database
63 will automatically be enabled and a database and role created
64- unless
65- <xref linkend="opt-services.discourse.database.host"></xref> is
66 changed from its default of <literal>null</literal> or
67- <xref linkend="opt-services.discourse.database.createLocally"></xref>
68 is set to <literal>false</literal>.
69 </para>
70 <para>
71 External database access can also be configured by setting
72- <xref linkend="opt-services.discourse.database.host"></xref>,
73- <xref linkend="opt-services.discourse.database.username"></xref>
74- and
75- <xref linkend="opt-services.discourse.database.passwordFile"></xref>
76- as appropriate. Note that you need to manually create a database
77 called <literal>discourse</literal> (or the name you chose in
78- <xref linkend="opt-services.discourse.database.name"></xref>) and
79- allow the configured database user full access to it.
80 </para>
81 </section>
82 <section xml:id="module-services-discourse-mail">
···127 If you want to use a different domain for your outgoing email (for
128 example <literal>example.com</literal> instead of
129 <literal>discourse.example.com</literal>) you should set
130- <xref linkend="opt-services.discourse.mail.notificationEmailAddress"></xref>
131 and
132- <xref linkend="opt-services.discourse.mail.contactEmailAddress"></xref>
133 manually.
134 </para>
135 <note>
136 <para>
137 Setup of TLS for incoming email is currently only configured
138- automatically when a regular TLS certificate is used, i.e. when
139- <xref linkend="opt-services.discourse.sslCertificate"></xref>
140- and
141- <xref linkend="opt-services.discourse.sslCertificateKey"></xref>
142- are set.
143 </para>
144 </note>
145 </section>
···148 <para>
149 Additional site settings and backend settings, for which no
150 explicit NixOS options are provided, can be set in
151- <xref linkend="opt-services.discourse.siteSettings"></xref> and
152- <xref linkend="opt-services.discourse.backendSettings"></xref>
153 respectively.
154 </para>
155 <section xml:id="module-services-discourse-site-settings">
···158 <quote>Site settings</quote> are the settings that can be
159 changed through the Discourse UI. Their
160 <emphasis>default</emphasis> values can be set using
161- <xref linkend="opt-services.discourse.siteSettings"></xref>.
162 </para>
163 <para>
164 Settings are expressed as a Nix attribute set which matches the
165 structure of the configuration in
166 <link xlink:href="https://github.com/discourse/discourse/blob/master/config/site_settings.yml">config/site_settings.yml</link>.
167 To find a setting’s path, you only need to care about the first
168- two levels; i.e. its category (e.g. <literal>login</literal>)
169- and name (e.g. <literal>invite_only</literal>).
170 </para>
171 <para>
172 Settings containing secret data should be set to an attribute
···245 <title>Plugins</title>
246 <para>
247 You can install Discourse plugins using the
248- <xref linkend="opt-services.discourse.plugins"></xref> option.
249 Pre-packaged plugins are provided in
250 <literal><your_discourse_package_here>.plugins</literal>. If
251 you want the full suite of plugins provided through
252 <literal>nixpkgs</literal>, you can also set the
253- <xref linkend="opt-services.discourse.package"></xref> option to
254 <literal>pkgs.discourseAllPlugins</literal>.
255 </para>
256 <para>
···284 Some plugins provide
285 <link linkend="module-services-discourse-site-settings">site
286 settings</link>. Their defaults can be configured using
287- <xref linkend="opt-services.discourse.siteSettings"></xref>, just
288- like regular site settings. To find the names of these settings,
289- look in the <literal>config/settings.yml</literal> file of the
290- plugin repo.
291 </para>
292 <para>
293 For example, to add the
···36 <title>Using a regular TLS certificate</title>
37 <para>
38 To set up TLS using a regular certificate and key on file, use the
39+ <xref linkend="opt-services.discourse.sslCertificate" /> and
40+ <xref linkend="opt-services.discourse.sslCertificateKey" />
41 options:
42 </para>
43 <programlisting>
···61 <para>
62 Discourse uses PostgreSQL to store most of its data. A database
63 will automatically be enabled and a database and role created
64+ unless <xref linkend="opt-services.discourse.database.host" /> is
065 changed from its default of <literal>null</literal> or
66+ <xref linkend="opt-services.discourse.database.createLocally" />
67 is set to <literal>false</literal>.
68 </para>
69 <para>
70 External database access can also be configured by setting
71+ <xref linkend="opt-services.discourse.database.host" />,
72+ <xref linkend="opt-services.discourse.database.username" /> and
73+ <xref linkend="opt-services.discourse.database.passwordFile" /> as
74+ appropriate. Note that you need to manually create a database
075 called <literal>discourse</literal> (or the name you chose in
76+ <xref linkend="opt-services.discourse.database.name" />) and allow
77+ the configured database user full access to it.
78 </para>
79 </section>
80 <section xml:id="module-services-discourse-mail">
···125 If you want to use a different domain for your outgoing email (for
126 example <literal>example.com</literal> instead of
127 <literal>discourse.example.com</literal>) you should set
128+ <xref linkend="opt-services.discourse.mail.notificationEmailAddress" />
129 and
130+ <xref linkend="opt-services.discourse.mail.contactEmailAddress" />
131 manually.
132 </para>
133 <note>
134 <para>
135 Setup of TLS for incoming email is currently only configured
136+ automatically when a regular TLS certificate is used, i.e. when
137+ <xref linkend="opt-services.discourse.sslCertificate" /> and
138+ <xref linkend="opt-services.discourse.sslCertificateKey" /> are
139+ set.
0140 </para>
141 </note>
142 </section>
···145 <para>
146 Additional site settings and backend settings, for which no
147 explicit NixOS options are provided, can be set in
148+ <xref linkend="opt-services.discourse.siteSettings" /> and
149+ <xref linkend="opt-services.discourse.backendSettings" />
150 respectively.
151 </para>
152 <section xml:id="module-services-discourse-site-settings">
···155 <quote>Site settings</quote> are the settings that can be
156 changed through the Discourse UI. Their
157 <emphasis>default</emphasis> values can be set using
158+ <xref linkend="opt-services.discourse.siteSettings" />.
159 </para>
160 <para>
161 Settings are expressed as a Nix attribute set which matches the
162 structure of the configuration in
163 <link xlink:href="https://github.com/discourse/discourse/blob/master/config/site_settings.yml">config/site_settings.yml</link>.
164 To find a setting’s path, you only need to care about the first
165+ two levels; i.e. its category (e.g. <literal>login</literal>)
166+ and name (e.g. <literal>invite_only</literal>).
167 </para>
168 <para>
169 Settings containing secret data should be set to an attribute
···242 <title>Plugins</title>
243 <para>
244 You can install Discourse plugins using the
245+ <xref linkend="opt-services.discourse.plugins" /> option.
246 Pre-packaged plugins are provided in
247 <literal><your_discourse_package_here>.plugins</literal>. If
248 you want the full suite of plugins provided through
249 <literal>nixpkgs</literal>, you can also set the
250+ <xref linkend="opt-services.discourse.package" /> option to
251 <literal>pkgs.discourseAllPlugins</literal>.
252 </para>
253 <para>
···281 Some plugins provide
282 <link linkend="module-services-discourse-site-settings">site
283 settings</link>. Their defaults can be configured using
284+ <xref linkend="opt-services.discourse.siteSettings" />, just like
285+ regular site settings. To find the names of these settings, look
286+ in the <literal>config/settings.yml</literal> file of the plugin
287+ repo.
288 </para>
289 <para>
290 For example, to add the
+1-2
nixos/modules/services/web-apps/grocy.nix
···167168 meta = {
169 maintainers = with maintainers; [ ma27 ];
170- # Don't edit the docbook xml directly, edit the md and generate it:
171- # `pandoc grocy.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > grocy.xml`
172 doc = ./grocy.xml;
173 };
174}
···167168 meta = {
169 maintainers = with maintainers; [ ma27 ];
170+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0171 doc = ./grocy.xml;
172 };
173}
···451 };
452 };
453454+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0455 meta.doc = ./jitsi-meet.xml;
456 meta.maintainers = lib.teams.jitsi.members;
457}
···674 mkIf createLocalMySQL (mkDefault dbPkg);
675 };
676677+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0678 meta.doc = ./keycloak.xml;
679 meta.maintainers = [ maintainers.talyz ];
680}
+23-25
nixos/modules/services/web-apps/keycloak.xml
···15 An administrative user with the username <literal>admin</literal>
16 is automatically created in the <literal>master</literal> realm.
17 Its initial password can be configured by setting
18- <xref linkend="opt-services.keycloak.initialAdminPassword"></xref>
19- and defaults to <literal>changeme</literal>. The password is not
20 stored safely and should be changed immediately in the admin
21 panel.
22 </para>
···32 <para>
33 Keycloak can be used with either PostgreSQL, MariaDB or MySQL.
34 Which one is used can be configured in
35- <xref linkend="opt-services.keycloak.database.type"></xref>. The
36 selected database will automatically be enabled and a database and
37 role created unless
38- <xref linkend="opt-services.keycloak.database.host"></xref> is
39- changed from its default of <literal>localhost</literal> or
40- <xref linkend="opt-services.keycloak.database.createLocally"></xref>
41- is set to <literal>false</literal>.
42 </para>
43 <para>
44 External database access can also be configured by setting
45- <xref linkend="opt-services.keycloak.database.host"></xref>,
46- <xref linkend="opt-services.keycloak.database.name"></xref>,
47- <xref linkend="opt-services.keycloak.database.username"></xref>,
48- <xref linkend="opt-services.keycloak.database.useSSL"></xref> and
49- <xref linkend="opt-services.keycloak.database.caCert"></xref> as
50 appropriate. Note that you need to manually create the database
51 and allow the configured database user full access to it.
52 </para>
53 <para>
54- <xref linkend="opt-services.keycloak.database.passwordFile"></xref>
55 must be set to the path to a file containing the password used to
56 log in to the database. If
57- <xref linkend="opt-services.keycloak.database.host"></xref> and
58- <xref linkend="opt-services.keycloak.database.createLocally"></xref>
59 are kept at their defaults, the database role
60 <literal>keycloak</literal> with that password is provisioned on
61 the local database instance.
···72 <para>
73 The hostname is used to build the public URL used as base for all
74 frontend requests and must be configured through
75- <xref linkend="opt-services.keycloak.settings.hostname"></xref>.
76 </para>
77 <note>
78 <para>
79 If you’re migrating an old Wildfly based Keycloak instance and
80 want to keep compatibility with your current clients, you’ll
81 likely want to set
82- <xref linkend="opt-services.keycloak.settings.http-relative-path"></xref>
83 to <literal>/auth</literal>. See the option description for more
84 details.
85 </para>
86 </note>
87 <para>
88- <xref linkend="opt-services.keycloak.settings.hostname-strict-backchannel"></xref>
89 determines whether Keycloak should force all requests to go
90 through the frontend URL. By default, Keycloak allows backend
91 requests to instead use its local hostname or IP address and may
···110 both
111 <link xlink:href="https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail">PEM
112 formatted</link>. Their paths should be set through
113- <xref linkend="opt-services.keycloak.sslCertificate"></xref> and
114- <xref linkend="opt-services.keycloak.sslCertificateKey"></xref>.
115 </para>
116 <warning>
117 <para>
···124 <title>Themes</title>
125 <para>
126 You can package custom themes and make them visible to Keycloak
127- through <xref linkend="opt-services.keycloak.themes"></xref>. See
128- the
129 <link xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">Themes
130 section of the Keycloak Server Development Guide</link> and the
131 description of the aforementioned NixOS option for more
···136 <title>Configuration file settings</title>
137 <para>
138 Keycloak server configuration parameters can be set in
139- <xref linkend="opt-services.keycloak.settings"></xref>. These
140 correspond directly to options in
141 <filename>conf/keycloak.conf</filename>. Some of the most
142 important parameters are documented as suboptions, the rest can be
···150 containing the attribute <literal>_secret</literal> - a string
151 pointing to a file containing the value the option should be set
152 to. See the description of
153- <xref linkend="opt-services.keycloak.settings"></xref> for an
154- example.
155 </para>
156 </section>
157 <section xml:id="module-services-keycloak-example-config">
···15 An administrative user with the username <literal>admin</literal>
16 is automatically created in the <literal>master</literal> realm.
17 Its initial password can be configured by setting
18+ <xref linkend="opt-services.keycloak.initialAdminPassword" /> and
19+ defaults to <literal>changeme</literal>. The password is not
20 stored safely and should be changed immediately in the admin
21 panel.
22 </para>
···32 <para>
33 Keycloak can be used with either PostgreSQL, MariaDB or MySQL.
34 Which one is used can be configured in
35+ <xref linkend="opt-services.keycloak.database.type" />. The
36 selected database will automatically be enabled and a database and
37 role created unless
38+ <xref linkend="opt-services.keycloak.database.host" /> is changed
39+ from its default of <literal>localhost</literal> or
40+ <xref linkend="opt-services.keycloak.database.createLocally" /> is
41+ set to <literal>false</literal>.
42 </para>
43 <para>
44 External database access can also be configured by setting
45+ <xref linkend="opt-services.keycloak.database.host" />,
46+ <xref linkend="opt-services.keycloak.database.name" />,
47+ <xref linkend="opt-services.keycloak.database.username" />,
48+ <xref linkend="opt-services.keycloak.database.useSSL" /> and
49+ <xref linkend="opt-services.keycloak.database.caCert" /> as
50 appropriate. Note that you need to manually create the database
51 and allow the configured database user full access to it.
52 </para>
53 <para>
54+ <xref linkend="opt-services.keycloak.database.passwordFile" />
55 must be set to the path to a file containing the password used to
56 log in to the database. If
57+ <xref linkend="opt-services.keycloak.database.host" /> and
58+ <xref linkend="opt-services.keycloak.database.createLocally" />
59 are kept at their defaults, the database role
60 <literal>keycloak</literal> with that password is provisioned on
61 the local database instance.
···72 <para>
73 The hostname is used to build the public URL used as base for all
74 frontend requests and must be configured through
75+ <xref linkend="opt-services.keycloak.settings.hostname" />.
76 </para>
77 <note>
78 <para>
79 If you’re migrating an old Wildfly based Keycloak instance and
80 want to keep compatibility with your current clients, you’ll
81 likely want to set
82+ <xref linkend="opt-services.keycloak.settings.http-relative-path" />
83 to <literal>/auth</literal>. See the option description for more
84 details.
85 </para>
86 </note>
87 <para>
88+ <xref linkend="opt-services.keycloak.settings.hostname-strict-backchannel" />
89 determines whether Keycloak should force all requests to go
90 through the frontend URL. By default, Keycloak allows backend
91 requests to instead use its local hostname or IP address and may
···110 both
111 <link xlink:href="https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail">PEM
112 formatted</link>. Their paths should be set through
113+ <xref linkend="opt-services.keycloak.sslCertificate" /> and
114+ <xref linkend="opt-services.keycloak.sslCertificateKey" />.
115 </para>
116 <warning>
117 <para>
···124 <title>Themes</title>
125 <para>
126 You can package custom themes and make them visible to Keycloak
127+ through <xref linkend="opt-services.keycloak.themes" />. See the
0128 <link xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">Themes
129 section of the Keycloak Server Development Guide</link> and the
130 description of the aforementioned NixOS option for more
···135 <title>Configuration file settings</title>
136 <para>
137 Keycloak server configuration parameters can be set in
138+ <xref linkend="opt-services.keycloak.settings" />. These
139 correspond directly to options in
140 <filename>conf/keycloak.conf</filename>. Some of the most
141 important parameters are documented as suboptions, the rest can be
···149 containing the attribute <literal>_secret</literal> - a string
150 pointing to a file containing the value the option should be set
151 to. See the description of
152+ <xref linkend="opt-services.keycloak.settings" /> for an example.
0153 </para>
154 </section>
155 <section xml:id="module-services-keycloak-example-config">
+1-2
nixos/modules/services/web-apps/lemmy.nix
···6in
7{
8 meta.maintainers = with maintainers; [ happysalada ];
9- # Don't edit the docbook xml directly, edit the md and generate it:
10- # `pandoc lemmy.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > lemmy.xml`
11 meta.doc = ./lemmy.xml;
1213 imports = [
···6in
7{
8 meta.maintainers = with maintainers; [ happysalada ];
9+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
010 meta.doc = ./lemmy.xml;
1112 imports = [
···38 <literal>matomo</literal> database user (without needing a
39 password), but no other users. For more information on
40 passwordless login, see
41- <link xlink:href="https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/" role="uri">https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/</link>.
42 </para>
43 <para>
44- Of course, you can use password based authentication as well,
45- e.g. when the database is not on the same host.
46 </para>
47 </section>
48 <section xml:id="module-services-matomo-archive-processing">
···75 <filename>/var/lib/matomo/config/config.ini.php</filename> file.
76 Use a user in the <literal>matomo</literal> group or root to
77 access the file. For more information, see
78- <link xlink:href="https://matomo.org/faq/how-to-install/faq_138/" role="uri">https://matomo.org/faq/how-to-install/faq_138/</link>.
79 </para>
80 </section>
81 <section xml:id="module-services-matomo-issues">
···38 <literal>matomo</literal> database user (without needing a
39 password), but no other users. For more information on
40 passwordless login, see
41+ <link xlink:href="https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/">https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/</link>.
42 </para>
43 <para>
44+ Of course, you can use password based authentication as well, e.g.
45+ when the database is not on the same host.
46 </para>
47 </section>
48 <section xml:id="module-services-matomo-archive-processing">
···75 <filename>/var/lib/matomo/config/config.ini.php</filename> file.
76 Use a user in the <literal>matomo</literal> group or root to
77 access the file. For more information, see
78+ <link xlink:href="https://matomo.org/faq/how-to-install/faq_138/">https://matomo.org/faq/how-to-install/faq_138/</link>.
79 </para>
80 </section>
81 <section xml:id="module-services-matomo-issues">
+2-3
nixos/modules/services/web-apps/matomo.nix
···325 };
326327 meta = {
328- # Don't edit the docbook xml directly, edit the md and generate it:
329- # `pandoc matomo-doc.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > matomo-doc.xml`
330- doc = ./matomo-doc.xml;
331 maintainers = with lib.maintainers; [ florianjacob ];
332 };
333}
···325 };
326327 meta = {
328+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
329+ doc = ./matomo.xml;
0330 maintainers = with lib.maintainers; [ florianjacob ];
331 };
332}
+1-2
nixos/modules/services/web-apps/nextcloud.nix
···1146 }
1147 ]);
11481149- # Don't edit the docbook xml directly, edit the md and generate it:
1150- # `pandoc nextcloud.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > nextcloud.xml`
1151 meta.doc = ./nextcloud.xml;
1152}
···1146 }
1147 ]);
11481149+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
01150 meta.doc = ./nextcloud.xml;
1151}
+13-13
nixos/modules/services/web-apps/nextcloud.xml
···192 external storage such as S3. Please note that this won’t work
193 anymore when using OpenSSL 3 for PHP’s openssl extension
194 because this is implemented using the legacy cipher RC4. If
195- <xref linkend="opt-system.stateVersion"></xref> is
196 <emphasis>above</emphasis> <literal>22.05</literal>, this is
197 disabled by default. To turn it on again and for further
198 information please refer to
199- <xref linkend="opt-services.nextcloud.enableBrokenCiphersForSSE"></xref>.
200 </para>
201 </listitem>
202 </itemizedlist>
203 </section>
204 <section xml:id="module-services-nextcloud-httpd">
205- <title>Using an alternative webserver as reverse-proxy
206- (e.g. <literal>httpd</literal>)</title>
207 <para>
208 By default, <literal>nginx</literal> is used as reverse-proxy for
209- <literal>nextcloud</literal>. However, it’s possible to use
210- e.g. <literal>httpd</literal> by explicitly disabling
211 <literal>nginx</literal> using
212- <xref linkend="opt-services.nginx.enable"></xref> and fixing the
213 settings <literal>listen.owner</literal> &
214 <literal>listen.group</literal> in the
215 <link linkend="opt-services.phpfpm.pools">corresponding
···268 Nextcloud apps are installed statefully through the web interface.
269 Some apps may require extra PHP extensions to be installed. This
270 can be configured with the
271- <xref linkend="opt-services.nextcloud.phpExtraExtensions"></xref>
272 setting.
273 </para>
274 <para>
275 Alternatively, extra apps can also be declared with the
276- <xref linkend="opt-services.nextcloud.extraApps"></xref> setting.
277- When using this setting, apps can no longer be managed statefully
278 because this can lead to Nextcloud updating apps that are managed
279 by Nix. If you want automatic updates it is recommended that you
280 use web interface to install apps.
···292 While minor and patch-level updates are no problem and can be done
293 directly in the package-expression (and should be backported to
294 supported stable branches after that), major-releases should be
295- added in a new attribute (e.g. Nextcloud
296 <literal>v19.0.0</literal> should be available in
297 <literal>nixpkgs</literal> as
298 <literal>pkgs.nextcloud19</literal>). To provide simple upgrade
···323</programlisting>
324 <para>
325 Ideally we should make sure that it’s possible to jump two NixOS
326- versions forward: i.e. the warnings and the logic in the module
327- should guard a user to upgrade from a Nextcloud on e.g. 19.09 to a
328 Nextcloud on 20.09.
329 </para>
330 </section>
···192 external storage such as S3. Please note that this won’t work
193 anymore when using OpenSSL 3 for PHP’s openssl extension
194 because this is implemented using the legacy cipher RC4. If
195+ <xref linkend="opt-system.stateVersion" /> is
196 <emphasis>above</emphasis> <literal>22.05</literal>, this is
197 disabled by default. To turn it on again and for further
198 information please refer to
199+ <xref linkend="opt-services.nextcloud.enableBrokenCiphersForSSE" />.
200 </para>
201 </listitem>
202 </itemizedlist>
203 </section>
204 <section xml:id="module-services-nextcloud-httpd">
205+ <title>Using an alternative webserver as reverse-proxy (e.g.
206+ <literal>httpd</literal>)</title>
207 <para>
208 By default, <literal>nginx</literal> is used as reverse-proxy for
209+ <literal>nextcloud</literal>. However, it’s possible to use e.g.
210+ <literal>httpd</literal> by explicitly disabling
211 <literal>nginx</literal> using
212+ <xref linkend="opt-services.nginx.enable" /> and fixing the
213 settings <literal>listen.owner</literal> &
214 <literal>listen.group</literal> in the
215 <link linkend="opt-services.phpfpm.pools">corresponding
···268 Nextcloud apps are installed statefully through the web interface.
269 Some apps may require extra PHP extensions to be installed. This
270 can be configured with the
271+ <xref linkend="opt-services.nextcloud.phpExtraExtensions" />
272 setting.
273 </para>
274 <para>
275 Alternatively, extra apps can also be declared with the
276+ <xref linkend="opt-services.nextcloud.extraApps" /> setting. When
277+ using this setting, apps can no longer be managed statefully
278 because this can lead to Nextcloud updating apps that are managed
279 by Nix. If you want automatic updates it is recommended that you
280 use web interface to install apps.
···292 While minor and patch-level updates are no problem and can be done
293 directly in the package-expression (and should be backported to
294 supported stable branches after that), major-releases should be
295+ added in a new attribute (e.g. Nextcloud
296 <literal>v19.0.0</literal> should be available in
297 <literal>nixpkgs</literal> as
298 <literal>pkgs.nextcloud19</literal>). To provide simple upgrade
···323</programlisting>
324 <para>
325 Ideally we should make sure that it’s possible to jump two NixOS
326+ versions forward: i.e. the warnings and the logic in the module
327+ should guard a user to upgrade from a Nextcloud on e.g. 19.09 to a
328 Nextcloud on 20.09.
329 </para>
330 </section>
+1-2
nixos/modules/services/web-apps/pict-rs.nix
···5in
6{
7 meta.maintainers = with maintainers; [ happysalada ];
8- # Don't edit the docbook xml directly, edit the md and generate it:
9- # `pandoc pict-rs.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > pict-rs.xml`
10 meta.doc = ./pict-rs.xml;
1112 options.services.pict-rs = {
···5in
6{
7 meta.maintainers = with maintainers; [ happysalada ];
8+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
09 meta.doc = ./pict-rs.xml;
1011 options.services.pict-rs = {
+37-3
nixos/modules/services/web-apps/pict-rs.xml
···30 <para>
31 This endpoint returns the following JSON structure on success
32 with a 201 Created status
33- <literal>json { "files": [ { "delete_token": "JFvFhqJA98", "file": "lkWZDRvugm.jpg" }, { "delete_token": "kAYy9nk2WK", "file": "8qFS0QooAn.jpg" }, { "delete_token": "OxRpM3sf0Y", "file": "1hJaYfGE01.jpg" } ], "msg": "ok" }</literal>
34 </para>
000000000000000000035 </listitem>
36 <listitem>
37 <para>
···53 <literal>GET /image/details/original/{file}</literal> for
54 getting the details of a full-resolution image. The returned
55 JSON is structured like so:
56- <literal>json { "width": 800, "height": 537, "content_type": "image/webp", "created_at": [ 2020, 345, 67376, 394363487 ] }</literal>
57 </para>
000000000000058 </listitem>
59 <listitem>
60 <para>
···111 </para>
112 <para>
113 An example of usage could be
114- <literal>GET /image/process.jpg?src=asdf.png&thumbnail=256&blur=3.0</literal>
0000115 which would create a 256x256px JPEG thumbnail and blur it
116 </para>
117 </listitem>
···30 <para>
31 This endpoint returns the following JSON structure on success
32 with a 201 Created status
033 </para>
34+ <programlisting language="json">
35+{
36+ "files": [
37+ {
38+ "delete_token": "JFvFhqJA98",
39+ "file": "lkWZDRvugm.jpg"
40+ },
41+ {
42+ "delete_token": "kAYy9nk2WK",
43+ "file": "8qFS0QooAn.jpg"
44+ },
45+ {
46+ "delete_token": "OxRpM3sf0Y",
47+ "file": "1hJaYfGE01.jpg"
48+ }
49+ ],
50+ "msg": "ok"
51+}
52+</programlisting>
53 </listitem>
54 <listitem>
55 <para>
···71 <literal>GET /image/details/original/{file}</literal> for
72 getting the details of a full-resolution image. The returned
73 JSON is structured like so:
074 </para>
75+ <programlisting language="json">
76+{
77+ "width": 800,
78+ "height": 537,
79+ "content_type": "image/webp",
80+ "created_at": [
81+ 2020,
82+ 345,
83+ 67376,
84+ 394363487
85+ ]
86+}
87+</programlisting>
88 </listitem>
89 <listitem>
90 <para>
···141 </para>
142 <para>
143 An example of usage could be
144+ </para>
145+ <programlisting>
146+GET /image/process.jpg?src=asdf.png&thumbnail=256&blur=3.0
147+</programlisting>
148+ <para>
149 which would create a 256x256px JPEG thumbnail and blur it
150 </para>
151 </listitem>
+1-2
nixos/modules/services/web-apps/plausible.nix
···292 };
293294 meta.maintainers = with maintainers; [ ma27 ];
295- # Don't edit the docbook xml directly, edit the md and generate it:
296- # `pandoc plausible.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > plausible.xml`
297 meta.doc = ./plausible.xml;
298}
···292 };
293294 meta.maintainers = with maintainers; [ ma27 ];
295+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
0296 meta.doc = ./plausible.xml;
297}
···16 <title>General considerations on upgrades</title>
17 <para>
18 Garage provides a cookbook documentation on how to upgrade:
19- <link xlink:href="https://garagehq.deuxfleurs.fr/documentation/cookbook/upgrading/" role="uri">https://garagehq.deuxfleurs.fr/documentation/cookbook/upgrading/</link>
20 </para>
21 <warning>
22 <para>
···36 <para>
37 Until 1.0 is released, patch-level upgrades are considered as
38 minor version upgrades. Minor version upgrades are considered as
39- major version upgrades. i.e. 0.6 to 0.7 is a major version
40 upgrade.
41 </para>
42 </warning>
···45 <para>
46 <emphasis role="strong">Straightforward upgrades (patch-level
47 upgrades).</emphasis> Upgrades must be performed one by one,
48- i.e. for each node, stop it, upgrade it : change
49 <link linkend="opt-system.stateVersion">stateVersion</link> or
50 <link linkend="opt-services.garage.package">services.garage.package</link>,
51 restart it if it was not already by switching.
···110 </listitem>
111 <listitem>
112 <para>
113- Backup the metadata folder of ALL your nodes, e.g. for a
114 metadata directory (the default one) in
115 <literal>/var/lib/garage/meta</literal>, you can run
116 <literal>pushd /var/lib/garage; tar -acf meta-v0.7.tar.zst meta/; popd</literal>.
···166 While patch-level updates are no problem and can be done directly
167 in the package-expression (and should be backported to supported
168 stable branches after that), major-releases should be added in a
169- new attribute (e.g. Garage <literal>v0.8.0</literal> should be
170 available in <literal>nixpkgs</literal> as
171 <literal>pkgs.garage_0_8_0</literal>). To provide simple upgrade
172 paths it’s generally useful to backport those as well to stable
···196</programlisting>
197 <para>
198 Ideally we should make sure that it’s possible to jump two NixOS
199- versions forward: i.e. the warnings and the logic in the module
200- should guard a user to upgrade from a Garage on e.g. 22.11 to a
201 Garage on 23.11.
202 </para>
203 </section>
···16 <title>General considerations on upgrades</title>
17 <para>
18 Garage provides a cookbook documentation on how to upgrade:
19+ <link xlink:href="https://garagehq.deuxfleurs.fr/documentation/cookbook/upgrading/">https://garagehq.deuxfleurs.fr/documentation/cookbook/upgrading/</link>
20 </para>
21 <warning>
22 <para>
···36 <para>
37 Until 1.0 is released, patch-level upgrades are considered as
38 minor version upgrades. Minor version upgrades are considered as
39+ major version upgrades. i.e. 0.6 to 0.7 is a major version
40 upgrade.
41 </para>
42 </warning>
···45 <para>
46 <emphasis role="strong">Straightforward upgrades (patch-level
47 upgrades).</emphasis> Upgrades must be performed one by one,
48+ i.e. for each node, stop it, upgrade it : change
49 <link linkend="opt-system.stateVersion">stateVersion</link> or
50 <link linkend="opt-services.garage.package">services.garage.package</link>,
51 restart it if it was not already by switching.
···110 </listitem>
111 <listitem>
112 <para>
113+ Backup the metadata folder of ALL your nodes, e.g. for a
114 metadata directory (the default one) in
115 <literal>/var/lib/garage/meta</literal>, you can run
116 <literal>pushd /var/lib/garage; tar -acf meta-v0.7.tar.zst meta/; popd</literal>.
···166 While patch-level updates are no problem and can be done directly
167 in the package-expression (and should be backported to supported
168 stable branches after that), major-releases should be added in a
169+ new attribute (e.g. Garage <literal>v0.8.0</literal> should be
170 available in <literal>nixpkgs</literal> as
171 <literal>pkgs.garage_0_8_0</literal>). To provide simple upgrade
172 paths it’s generally useful to backport those as well to stable
···196</programlisting>
197 <para>
198 Ideally we should make sure that it’s possible to jump two NixOS
199+ versions forward: i.e. the warnings and the logic in the module
200+ should guard a user to upgrade from a Garage on e.g. 22.11 to a
201 Garage on 23.11.
202 </para>
203 </section>
+2-3
nixos/modules/services/web-servers/garage.nix
···9in
10{
11 meta = {
12- # Don't edit the docbook xml directly, edit the md and generate it:
13- # `pandoc garage-doc.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > garage-doc.xml`
14- doc = ./garage-doc.xml;
15 maintainers = with pkgs.lib.maintainers; [ raitobezarius ];
16 };
17
···9in
10{
11 meta = {
12+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
13+ doc = ./garage.xml;
014 maintainers = with pkgs.lib.maintainers; [ raitobezarius ];
15 };
16
···66{
6768 meta = {
69- # Don't edit the docbook xml directly, edit the md and generate it:
70- # `pandoc gnome.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > gnome.xml`
71 doc = ./gnome.xml;
72 maintainers = teams.gnome.members;
73 };
···66{
6768 meta = {
69+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
070 doc = ./gnome.xml;
71 maintainers = teams.gnome.members;
72 };
···48 <para>
49 If you’d only like to omit a subset of the core utilities, you
50 can use
51- <xref linkend="opt-environment.gnome.excludePackages"></xref>.
52- Note that this mechanism can only exclude core utilities, games
53- and core developer tools.
54 </para>
55 </section>
56 <section xml:id="sec-gnome-disabling-services">
···103 <para>
104 It is also possible to create custom sessions that replace
105 Metacity with a different window manager using
106- <xref linkend="opt-services.xserver.desktopManager.gnome.flashback.customSessions"></xref>.
107 </para>
108 <para>
109 The following example uses <literal>xmonad</literal> window
···128 </para>
129 <para>
130 You can add them to
131- <xref linkend="opt-environment.systemPackages"></xref> and switch
132- to them with GNOME Tweaks. If you’d like to do this manually in
133 dconf, change the values of the following keys:
134 </para>
135 <programlisting>
···204 </warning>
205 <para>
206 You can override the default GSettings values using the
207- <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides"></xref>
208 option.
209 </para>
210 <para>
211 Take note that whatever packages you want to override GSettings
212 for, you need to add them to
213- <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages"></xref>.
214 </para>
215 <para>
216 You can use <literal>dconf-editor</literal> tool to explore which
···48 <para>
49 If you’d only like to omit a subset of the core utilities, you
50 can use
51+ <xref linkend="opt-environment.gnome.excludePackages" />. Note
52+ that this mechanism can only exclude core utilities, games and
53+ core developer tools.
54 </para>
55 </section>
56 <section xml:id="sec-gnome-disabling-services">
···103 <para>
104 It is also possible to create custom sessions that replace
105 Metacity with a different window manager using
106+ <xref linkend="opt-services.xserver.desktopManager.gnome.flashback.customSessions" />.
107 </para>
108 <para>
109 The following example uses <literal>xmonad</literal> window
···128 </para>
129 <para>
130 You can add them to
131+ <xref linkend="opt-environment.systemPackages" /> and switch to
132+ them with GNOME Tweaks. If you’d like to do this manually in
133 dconf, change the values of the following keys:
134 </para>
135 <programlisting>
···204 </warning>
205 <para>
206 You can override the default GSettings values using the
207+ <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides" />
208 option.
209 </para>
210 <para>
211 Take note that whatever packages you want to override GSettings
212 for, you need to add them to
213+ <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages" />.
214 </para>
215 <para>
216 You can use <literal>dconf-editor</literal> tool to explore which
···17{
1819 meta = {
20- # Don't edit the docbook xml directly, edit the md and generate it:
21- # `pandoc pantheon.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart --lua-filter ../../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > pantheon.xml`
22 doc = ./pantheon.xml;
23 maintainers = teams.pantheon.members;
24 };
···17{
1819 meta = {
20+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
021 doc = ./pantheon.xml;
22 maintainers = teams.pantheon.members;
23 };
···8{
9 meta = {
10 maintainers = with maintainers; [ cole-h grahamc raitobezarius ];
11- # Don't edit the docbook xml directly, edit the md and generate it:
12- # `pandoc external.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > external.xml`
13 doc = ./external.xml;
14 };
15
···8{
9 meta = {
10 maintainers = with maintainers; [ cole-h grahamc raitobezarius ];
11+ # Don't edit the docbook xml directly, edit the md and generate it using md-to-db.sh
012 doc = ./external.xml;
13 };
14