···88 <subtitle>Version <xi:include href="./generated/version" parse="text" />
99 </subtitle>
1010 </info>
1111- <preface>
1111+ <preface xml:id="preface">
1212 <title>Preface</title>
1313 <para>
1414 This manual describes how to install, use and extend NixOS, a Linux
···2323 bridge.</para></listitem>
2424</itemizedlist>
25252626-<section><title>IBus</title>
2626+<section xml:id="module-services-input-methods-ibus"><title>IBus</title>
27272828<para>IBus is an Intelligent Input Bus. It provides full featured and user
2929 friendly input method user interface.</para>
···8282</simplesect>
8383</section>
84848585-<section><title>Fcitx</title>
8585+<section xml:id="module-services-input-methods-fcitx"><title>Fcitx</title>
86868787<para>Fcitx is an input method framework with extension support. It has three
8888 built-in Input Method Engine, Pinyin, QuWei and Table-based input
···122122</itemizedlist>
123123</section>
124124125125-<section><title>Nabi</title>
125125+<section xml:id="module-services-input-methods-nabi"><title>Nabi</title>
126126127127<para>Nabi is an easy to use Korean X input method. It allows you to enter
128128 phonetic Korean characters (hangul) and pictographic Korean characters
···136136</programlisting>
137137</section>
138138139139-<section><title>Uim</title>
139139+<section xml:id="module-services-input-methods-uim"><title>Uim</title>
140140141141<para>Uim (short for "universal input method") is a multilingual input method
142142 framework. Applications can use it through so-called bridges.</para>
+4-4
nixos/modules/programs/zsh/oh-my-zsh.xml
···1010to manage your <link xlink:href="https://www.zsh.org/">ZSH</link> configuration
1111including completion scripts for several CLI tools or custom prompt themes.</para>
12121313-<section><title>Basic usage</title>
1313+<section xml:id="module-programs-oh-my-zsh-usage"><title>Basic usage</title>
1414<para>The module uses the <literal>oh-my-zsh</literal> package with all available features. The
1515initial setup using Nix expressions is fairly similar to the configuration format
1616of <literal>oh-my-zsh</literal>.
···3232configuration and writes it into your <literal>/etc/zshrc</literal>.
3333</para></section>
34343535-<section><title>Custom additions</title>
3535+<section xml:id="module-programs-oh-my-zsh-additions"><title>Custom additions</title>
36363737<para>Sometimes third-party or custom scripts such as a modified theme may be needed.
3838<literal>oh-my-zsh</literal> provides the
···4848</programlisting>
4949</para></section>
50505151-<section><title>Custom environments</title>
5151+<section xml:id="module-programs-oh-my-zsh-environments"><title>Custom environments</title>
52525353<para>There are several extensions for <literal>oh-my-zsh</literal> packaged in <literal>nixpkgs</literal>.
5454One of them is <link xlink:href="https://github.com/spwhitt/nix-zsh-completions">nix-zsh-completions</link>
···7777will be thrown if both <literal>custom</literal> and <literal>customPkgs</literal> are set.</emphasis>
7878</para></section>
79798080-<section><title>Package your own customizations</title>
8080+<section xml:id="module-programs-oh-my-zsh-packaging-customizations"><title>Package your own customizations</title>
81818282<para>If third-party customizations (e.g. new themes) are supposed to be added to <literal>oh-my-zsh</literal>
8383there are several pitfalls to keep in mind:</para>
+3-3
nixos/modules/security/acme.xml
···1111implemented by and for Let's Encrypt. The alternative ACME client
1212<literal>simp_le</literal> is used under the hood.</para>
13131414-<section><title>Prerequisites</title>
1414+<section xml:id="module-security-acme-prerequisites"><title>Prerequisites</title>
15151616<para>You need to have a running HTTP server for verification. The server must
1717have a webroot defined that can serve
···41414242</section>
43434444-<section><title>Configuring</title>
4444+<section xml:id="module-security-acme-configuring"><title>Configuring</title>
45454646<para>To enable ACME certificate retrieval & renewal for a certificate for
4747<literal>foo.example.com</literal>, add the following in your
···66666767</section>
68686969-<section><title>Using ACME certificates in Nginx</title>
6969+<section xml:id="module-security-acme-nginx"><title>Using ACME certificates in Nginx</title>
7070<para>NixOS supports fetching ACME certificates for you by setting
7171 <literal><link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;</literal> in a virtualHost config. We
7272first create self-signed placeholder certificates in place of the
+9-9
nixos/modules/services/databases/foundationdb.xml
···1717<para>FoundationDB (or "FDB") is an open source, distributed, transactional
1818key-value store.</para>
19192020-<section><title>Configuring and basic setup</title>
2020+<section xml:id="module-services-foundationdb-configuring"><title>Configuring and basic setup</title>
21212222<para>To enable FoundationDB, add the following to your
2323<filename>configuration.nix</filename>:
···133133134134</section>
135135136136-<section><title>Scaling processes and backup agents</title>
136136+<section xml:id="module-services-foundationdb-scaling"><title>Scaling processes and backup agents</title>
137137138138<para>Scaling the number of server processes is quite easy; simply specify
139139<option>services.foundationdb.serverProcesses</option> to be the number of
···151151152152</section>
153153154154-<section><title>Clustering</title>
154154+<section xml:id="module-services-foundationdb-clustering"><title>Clustering</title>
155155156156<para>FoundationDB on NixOS works similarly to other Linux systems, so this
157157section will be brief. Please refer to the full FoundationDB documentation for
···221221222222</section>
223223224224-<section><title>Client connectivity</title>
224224+<section xml:id="module-services-foundationdb-connectivity"><title>Client connectivity</title>
225225226226<para>By default, all clients must use the current
227227<command>fdb.cluster</command> file to access a given FoundationDB cluster.
···232232233233</section>
234234235235-<section><title>Client authorization and TLS</title>
235235+<section xml:id="module-services-foundationdb-authorization"><title>Client authorization and TLS</title>
236236237237<para>By default, any user who can connect to a FoundationDB process with the
238238correct cluster configuration can access anything. FoundationDB uses a
···270270271271</section>
272272273273-<section><title>Backups and Disaster Recovery</title>
273273+<section xml:id="module-services-foundationdb-disaster-recovery"><title>Backups and Disaster Recovery</title>
274274275275<para>The usual rules for doing FoundationDB backups apply on NixOS as written
276276in the FoundationDB manual. However, one important difference is the security
···316316317317</section>
318318319319-<section><title>Known limitations</title>
319319+<section xml:id="module-services-foundationdb-limitations"><title>Known limitations</title>
320320321321<para>The FoundationDB setup for NixOS should currently be considered beta.
322322FoundationDB is not new software, but the NixOS compilation and integration has
···333333334334</section>
335335336336-<section><title>Options</title>
336336+<section xml:id="module-services-foundationdb-options"><title>Options</title>
337337338338<para>NixOS's FoundationDB module allows you to configure all of the most
339339relevant configuration options for <command>fdbmonitor</command>, matching it
···343343344344</section>
345345346346-<section><title>Full documentation</title>
346346+<section xml:id="module-services-foundationdb-full-docs"><title>Full documentation</title>
347347348348<para>FoundationDB is a complex piece of software, and requires careful
349349administration to properly use. Full documentation for administration can be
+3-3
nixos/modules/services/databases/postgresql.xml
···17171818<para>PostgreSQL is an advanced, free relational database.<!-- MORE --></para>
19192020-<section><title>Configuring</title>
2020+<section xml:id="module-services-postgres-configuring"><title>Configuring</title>
21212222<para>To enable PostgreSQL, add the following to your
2323<filename>configuration.nix</filename>:
···6060</section>
616162626363-<section><title>Upgrading</title>
6363+<section xml:id="module-services-postgres-upgrading"><title>Upgrading</title>
64646565<para>FIXME: document dump/upgrade/load cycle.</para>
66666767</section>
686869697070-<section><title>Options</title>
7070+<section xml:id="module-services-postgres-options"><title>Options</title>
71717272 <para>A complete list of options for the PostgreSQL module may be found <link linkend="opt-services.postgresql.enable">here</link>.</para>
7373
+12-12
nixos/modules/services/editors/emacs.xml
···3939 starting the Emacs daemon.
4040 </para>
41414242- <section>
4242+ <section xml:id="module-services-emacs-installing">
4343 <title>Installing <application>Emacs</application></title>
44444545 <para>
···4949 can be enabled.
5050 </para>
51515252- <section>
5252+ <section xml:id="module-services-emacs-releases">
5353 <title>The Different Releases of Emacs</title>
54545555 <para>
···100100 </para>
101101102102 </section>
103103- <section>
103103+ <section xml:id="module-services-emacs-adding-packages">
104104 <title>Adding Packages to Emacs</title>
105105 <para>
106106 Emacs includes an entire ecosystem of functionality beyond
···339339 </para>
340340 </section>
341341342342- <section>
342342+ <section xml:id="module-services-emacs-advanced">
343343 <title>Advanced Emacs Configuration</title>
344344345345 <para>
···380380 </section>
381381 </section>
382382383383-<section>
383383+<section xml:id="module-services-emacs-running">
384384 <title>Running Emacs as a Service</title>
385385 <para>
386386 <productname>NixOS</productname> provides an optional
···396396 <filename>modules/services/editors/emacs.nix</filename>
397397 </para>
398398399399- <section>
399399+ <section xml:id="module-services-emacs-enabling">
400400 <title>Enabling the Service</title>
401401402402 <para>
···438438439439 </section>
440440441441- <section>
441441+ <section xml:id="module-services-emacs-starting-client">
442442 <title>Starting the client</title>
443443 <para>
444444 Ensure that the emacs server is enabled, either by customizing
···457457 </para>
458458 </section>
459459460460- <section>
460460+ <section xml:id="module-services-emacs-editor-variable">
461461 <title>Configuring the <varname>EDITOR</varname> variable</title>
462462 <!--<title><command>emacsclient</command> as the Default Editor</title>-->
463463···487487 </para>
488488 </section>
489489490490- <section>
490490+ <section xml:id="module-services-emacs-per-user">
491491 <title>Per-User Enabling of the Service</title>
492492493493 <para>
···515515 </section>
516516</section>
517517518518-<section>
518518+<section xml:id="module-services-emacs-configuring">
519519 <title>Configuring Emacs</title>
520520521521 <para>
···548548 server-switch-hook, server-done-hook?
549549 -->
550550551551- <section>
551551+ <section xml:id="module-services-emacs-major-mode">
552552 <title>A Major Mode for Nix Expressions</title>
553553554554 <para>
···558558 </para>
559559 </section>
560560561561- <section>
561561+ <section xml:id="module-services-emacs-man-pages">
562562 <title>Accessing man pages</title>
563563 <para>
564564 You can use <function>woman</function> to get completion of all
+3-3
nixos/modules/services/misc/gitlab.xml
···8899<para>Gitlab is a feature-rich git hosting service.</para>
10101111-<section><title>Prerequisites</title>
1111+<section xml:id="module-services-gitlab-prerequisites"><title>Prerequisites</title>
12121313<para>The gitlab service exposes only an Unix socket at
1414<literal>/run/gitlab/gitlab-workhorse.socket</literal>. You need to configure a
···35353636</section>
37373838-<section><title>Configuring</title>
3838+<section xml:id="module-services-gitlab-configuring"><title>Configuring</title>
39394040<para>Gitlab depends on both PostgreSQL and Redis and will automatically enable
4141both services. In the case of PostgreSQL, a database and a role will be created.
···119119120120</section>
121121122122-<section><title>Maintenance</title>
122122+<section xml:id="module-services-gitlab-maintenance"><title>Maintenance</title>
123123124124<para>You can run Gitlab's rake tasks with <literal>gitlab-rake</literal>
125125which will be available on the system when gitlab is enabled. You will
···8899<para>Prometheus exporters provide metrics for the <link xlink:href="https://prometheus.io">prometheus monitoring system</link>.</para>
10101111-<section><title>Configuration</title>
1111+<section xml:id="module-services-prometheus-exporters-configuration"><title>Configuration</title>
1212 <para>One of the most common exporters is the <link xlink:href="https://github.com/prometheus/node_exporter">node exporter</link>, it provides hardware and OS metrics from the host it's running on. The exporter could be configured as follows:
1313<programlisting>
1414 services.promtheus.exporters.node = {
···3333search through the <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available options</link>.
3434</para>
3535</section>
3636-<section><title>Adding a new exporter</title>
3636+<section xml:id="module-services-prometheus-exporters-new-exporter"><title>Adding a new exporter</title>
3737 <para>To add a new exporter, it has to be packaged first (see <literal>nixpkgs/pkgs/servers/monitoring/prometheus/</literal> for examples), then a module can be added. The postfix exporter is used in this example:</para>
3838<itemizedlist>
3939 <listitem>
···1414 upstream is trustworthy).
1515 </para>
16161717- <sect1><title>Basic configuration</title>
1717+ <sect1 xml:id="sec-dnscrypt-proxy-configuration"><title>Basic configuration</title>
18181919 <para>
2020 To enable the client proxy, set
···31313232 </sect1>
33333434- <sect1><title>As a forwarder for another DNS client</title>
3434+ <sect1 xml:id="sec-dnscrypt-proxy-forwarder"><title>As a forwarder for another DNS client</title>
35353636 <para>
3737 To run the DNSCrypt proxy client as a forwarder for another
···4242 </programlisting>
4343 </para>
44444545- <sect2><title>dnsmasq</title>
4545+ <sect2 xml:id="sec-dnscrypt-proxy-forwarder-dsnmasq"><title>dnsmasq</title>
4646 <para>
4747 <programlisting>
4848{
···5353 </para>
5454 </sect2>
55555656- <sect2><title>unbound</title>
5656+ <sect2 xml:id="sec-dnscrypt-proxy-forwarder-unbound"><title>unbound</title>
5757 <para>
5858 <programlisting>
5959{
+4-4
nixos/modules/services/web-apps/matomo-doc.xml
···1515 </para>
161617171818- <section>
1818+ <section xml:id="module-services-matomo-database-setup">
1919 <title>Database Setup</title>
20202121 <para>
···5151 </section>
525253535454- <section>
5454+ <section xml:id="module-services-matomo-backups">
5555 <title>Backup</title>
5656 <para>
5757 You only need to take backups of your MySQL database and the
···6262 </section>
636364646565- <section>
6565+ <section xml:id="module-services-matomo-issues">
6666 <title>Issues</title>
6767 <itemizedlist>
6868 <listitem>
···8383 </section>
848485858686- <section>
8686+ <section xml:id="module-services-matomo-other-web-servers">
8787 <title>Using other Web Servers than nginx</title>
88888989 <para>