···114114 To use any input method, the package must be added in the
115115 configuration, as shown above, and also (after running
116116 <literal>nixos-rebuild</literal>) the input method must be added
117117- from IBus' preference dialog.
117117+ from IBus’ preference dialog.
118118 </para>
119119 <section xml:id="module-services-input-methods-troubleshooting">
120120 <title>Troubleshooting</title>
···221221 <section xml:id="module-services-input-methods-uim">
222222 <title>Uim</title>
223223 <para>
224224- Uim (short for "universal input method") is a
224224+ Uim (short for <quote>universal input method</quote>) is a
225225 multilingual input method framework. Applications can use it
226226 through so-called bridges.
227227 </para>
···244244 Hime is an extremely easy-to-use input method framework. It is
245245 lightweight, stable, powerful and supports many commonly used
246246 input methods, including Cangjie, Zhuyin, Dayi, Rank, Shrimp,
247247- Greek, Korean Pinyin, Latin Alphabet, etc...
247247+ Greek, Korean Pinyin, Latin Alphabet, etc…
248248 </para>
249249 <para>
250250 The following snippet can be used to configure Hime:
···258258 <section xml:id="module-services-input-methods-kime">
259259 <title>Kime</title>
260260 <para>
261261- Kime is Korean IME. it's built with Rust language and let you get
261261+ Kime is Korean IME. it’s built with Rust language and let you get
262262 simple, safe, fast Korean typing
263263 </para>
264264 <para>
+1-1
nixos/modules/programs/digitalbitbox/default.nix
···34343535 meta = {
3636 # Don't edit the docbook xml directly, edit the md and generate it:
3737- # `pandoc doc.md -t docbook --top-level-division=chapter --extract-media=media -f markdown-smart > doc.xml`
3737+ # `pandoc doc.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > doc.xml`
3838 doc = ./doc.xml;
3939 maintainers = with lib.maintainers; [ vidbina ];
4040 };
···6363 </para>
6464 <para>
6565 Rather than using a single mutable path for
6666- <literal>ZSH_CUSTOM</literal>, it's also possible to generate this
6666+ <literal>ZSH_CUSTOM</literal>, it’s also possible to generate this
6767 path from a list of Nix packages:
6868 </para>
6969 <programlisting>
···9393 <section xml:id="module-programs-oh-my-zsh-packaging-customizations">
9494 <title>Package your own customizations</title>
9595 <para>
9696- If third-party customizations (e.g. new themes) are supposed to be
9696+ If third-party customizations (e.g. new themes) are supposed to be
9797 added to <literal>oh-my-zsh</literal> there are several pitfalls
9898 to keep in mind:
9999 </para>
···33 <para>
44 NixOS supports automatic domain validation & certificate
55 retrieval and renewal using the ACME protocol. Any provider can be
66- used, but by default NixOS uses Let's Encrypt. The alternative ACME
66+ used, but by default NixOS uses Let’s Encrypt. The alternative ACME
77 client
88 <link xlink:href="https://go-acme.github.io/lego/">lego</link> is
99 used under the hood.
···1717 <section xml:id="module-security-acme-prerequisites">
1818 <title>Prerequisites</title>
1919 <para>
2020- To use the ACME module, you must accept the provider's terms of
2020+ To use the ACME module, you must accept the provider’s terms of
2121 service by setting
2222 <xref linkend="opt-security.acme.acceptTerms"></xref> to
2323- <literal>true</literal>. The Let's Encrypt ToS can be found
2323+ <literal>true</literal>. The Let’s Encrypt ToS can be found
2424 <link xlink:href="https://letsencrypt.org/repository/">here</link>.
2525 </para>
2626 <para>
2727 You must also set an email address to be used when creating
2828- accounts with Let's Encrypt. You can set this for all certs with
2828+ accounts with Let’s Encrypt. You can set this for all certs with
2929 <xref linkend="opt-security.acme.defaults.email"></xref> and/or on
3030 a per-cert basis with
3131 <xref linkend="opt-security.acme.certs._name_.email"></xref>. This
···9393 <para>
9494 Using ACME certificates with Apache virtual hosts is identical to
9595 using them with Nginx. The attribute names are all the same, just
9696- replace "nginx" with "httpd" where
9696+ replace <quote>nginx</quote> with <quote>httpd</quote> where
9797 appropriate.
9898 </para>
9999 </section>
···257257};
258258</programlisting>
259259 <para>
260260- Now you're all set to generate certs! You should monitor the first
260260+ Now you’re all set to generate certs! You should monitor the first
261261 invocation by running
262262 <literal>systemctl start acme-example.com.service & journalctl -fu acme-example.com.service</literal>
263263 and watching its log output.
···270270 including those automatically configured via the Nginx/Apache
271271 <link linkend="opt-services.nginx.virtualHosts._name_.enableACME"><literal>enableACME</literal></link>
272272 option. This configuration pattern is fully supported and part of
273273- the module's test suite for Nginx + Apache.
273273+ the module’s test suite for Nginx + Apache.
274274 </para>
275275 <para>
276276 You must follow the guide above on configuring DNS-01 validation
277277 first, however instead of setting the options for one certificate
278278- (e.g.
279279- <xref linkend="opt-security.acme.certs._name_.dnsProvider"></xref>)
280280- you will set them as defaults (e.g.
281281- <xref linkend="opt-security.acme.defaults.dnsProvider"></xref>).
278278+ (e.g. <xref linkend="opt-security.acme.certs._name_.dnsProvider"></xref>)
279279+ you will set them as defaults
280280+ (e.g. <xref linkend="opt-security.acme.defaults.dnsProvider"></xref>).
282281 </para>
283282 <programlisting>
284283# Configure ACME appropriately
···304303}
305304</programlisting>
306305 <para>
307307- And that's it! Next time your configuration is rebuilt, or when
306306+ And that’s it! Next time your configuration is rebuilt, or when
308307 you add a new virtualHost, it will be DNS-01 validated.
309308 </para>
310309 </section>
···316315 are not owned by root. PostgreSQL and OpenSMTPD are examples of
317316 these. There is no way to change the user the ACME module uses (it
318317 will always be <literal>acme</literal>), however you can use
319319- systemd's <literal>LoadCredential</literal> feature to resolve
318318+ systemd’s <literal>LoadCredential</literal> feature to resolve
320319 this elegantly. Below is an example configuration for OpenSMTPD,
321320 but this pattern can be applied to any service.
322321 </para>
···360359 <title>Regenerating certificates</title>
361360 <para>
362361 Should you need to regenerate a particular certificate in a hurry,
363363- such as when a vulnerability is found in Let's Encrypt, there is
362362+ such as when a vulnerability is found in Let’s Encrypt, there is
364363 now a convenient mechanism for doing so. Running
365364 <literal>systemctl clean --what=state acme-example.com.service</literal>
366365 will remove all certificate files and the account data for the
···200200 protect your data from disk failure, ransomware and theft.
201201 </para>
202202 <para>
203203- It can be installed in NixOS e.g. by adding
203203+ It can be installed in NixOS e.g. by adding
204204 <literal>pkgs.vorta</literal> to
205205 <xref linkend="opt-environment.systemPackages"></xref>.
206206 </para>
···1515 <emphasis>Available version(s):</emphasis> 5.1.x, 5.2.x, 6.0.x
1616 </para>
1717 <para>
1818- FoundationDB (or "FDB") is an open source, distributed,
1818+ FoundationDB (or <quote>FDB</quote>) is an open source, distributed,
1919 transactional key-value store.
2020 </para>
2121 <section xml:id="module-services-foundationdb-configuring">
···115115 SSD-storage based database for development and basic usage. This
116116 storage engine is designed for SSDs and will perform poorly on
117117 HDDs; however it can handle far more data than the alternative
118118- "memory" engine and is a better default choice for most
119119- deployments. (Note that you can change the storage backend
118118+ <quote>memory</quote> engine and is a better default choice for
119119+ most deployments. (Note that you can change the storage backend
120120 on-the-fly for a given FoundationDB cluster using
121121 <command>fdbcli</command>.)
122122 </para>
···151151 <para>
152152 FoundationDB worker processes typically require 4GB of RAM
153153 per-process at minimum for good performance, so this option is set
154154- to 1 by default since the maximum amount of RAM is unknown. You're
154154+ to 1 by default since the maximum amount of RAM is unknown. You’re
155155 advised to abide by this restriction, so pick a number of
156156 processes so that each has 4GB or more.
157157 </para>
···282282 FoundationDB uses a pluggable design to transport security, and
283283 out of the box it supports a LibreSSL-based plugin for TLS
284284 support. This plugin not only does in-flight encryption, but also
285285- performs client authorization based on the given endpoint's
285285+ performs client authorization based on the given endpoint’s
286286 certificate chain. For example, a FoundationDB server may be
287287 configured to only accept client connections over TLS, where the
288288 client TLS certificate is from organization <emphasis>Acme
···303303 </para>
304304 <para>
305305 After you have a key and certificate file in place, it is not
306306- enough to simply set the NixOS module options -- you must also
306306+ enough to simply set the NixOS module options – you must also
307307 configure the <command>fdb.cluster</command> file to specify that
308308 a given set of coordinators use TLS. This is as simple as adding
309309 the suffix <command>:tls</command> to your cluster coordinator
···333333 </para>
334334 <para>
335335 However, a side effect of this is that the
336336- <command>fdbbackup</command> command doesn't work properly for
336336+ <command>fdbbackup</command> command doesn’t work properly for
337337 local filesystem backups: FoundationDB uses a server process
338338 alongside the database processes to perform backups and copy the
339339 backups to the filesystem. As a result, this process is put under
···403403 <section xml:id="module-services-foundationdb-options">
404404 <title>Options</title>
405405 <para>
406406- NixOS's FoundationDB module allows you to configure all of the
406406+ NixOS’s FoundationDB module allows you to configure all of the
407407 most relevant configuration options for
408408 <command>fdbmonitor</command>, matching it quite closely. A
409409 complete list of options for the FoundationDB module may be found
···2323</programlisting>
2424 <para>
2525 Note that you are required to specify the desired version of
2626- PostgreSQL (e.g. <literal>pkgs.postgresql_11</literal>). Since
2626+ PostgreSQL (e.g. <literal>pkgs.postgresql_11</literal>). Since
2727 upgrading your PostgreSQL version requires a database dump and
2828 reload (see below), NixOS cannot provide a default value for
2929 <xref linkend="opt-services.postgresql.package"></xref> such as
···5151 <para>
5252 Major PostgreSQL upgrades require a downtime and a few imperative
5353 steps to be called. This is the case because each major version
5454- has some internal changes in the databases' state during major
5454+ has some internal changes in the databases’ state during major
5555 releases. Because of that, NixOS places the state into
5656 <filename>/var/lib/postgresql/<version></filename> where
5757 each <literal>version</literal> can be obtained like this:
···138138 </listitem>
139139 <listitem>
140140 <para>
141141- After the upgrade it's advisable to analyze the new cluster.
141141+ After the upgrade it’s advisable to analyze the new cluster.
142142 </para>
143143 <itemizedlist>
144144 <listitem>
···228228}
229229</programlisting>
230230 <para>
231231- Here's a recipe on how to override a particular plugin through an
231231+ Here’s a recipe on how to override a particular plugin through an
232232 overlay:
233233 </para>
234234 <programlisting>
···6161 up, the Postorius mailing list manager and the Hyperkitty archive
6262 browser will be available at https://lists.example.org/. Note that
6363 this setup is not sufficient to deliver emails to most email
6464- providers nor to avoid spam -- a number of additional measures for
6464+ providers nor to avoid spam – a number of additional measures for
6565 authenticating incoming and outgoing mails, such as SPF, DMARC and
6666 DKIM are necessary, but outside the scope of the Mailman module.
6767 </para>
···100100</programlisting>
101101 <para>
102102 The exim config needs some special additions to work with Mailman.
103103- Currently NixOS can't manage Exim config with such granularity.
103103+ Currently NixOS can’t manage Exim config with such granularity.
104104 Please refer to
105105 <link xlink:href="https://mailman.readthedocs.io/en/latest/src/mailman/docs/mta.html">Mailman
106106 documentation</link> for more info on configuring Mailman for
···77 </para>
88 <para>
99 As an all-in-one moderation tool, it can protect your server from
1010- malicious invites, spam messages, and whatever else you don't want.
1010+ malicious invites, spam messages, and whatever else you don’t want.
1111 In addition to server-level protection, Mjolnir is great for
1212 communities wanting to protect their rooms without having to use
1313 their personal accounts for moderation.
···2121 See the
2222 <link xlink:href="https://github.com/matrix-org/mjolnir#readme">README</link>
2323 page and the
2424- <link xlink:href="https://github.com/matrix-org/mjolnir/blob/main/docs/moderators.md">Moderator's
2424+ <link xlink:href="https://github.com/matrix-org/mjolnir/blob/main/docs/moderators.md">Moderator’s
2525 guide</link> for additional instructions on how to setup and use
2626 Mjolnir.
2727 </para>
···3636 <para>
3737 First create a new Room which will be used as a management room
3838 for Mjolnir. In this room, Mjolnir will log possible errors and
3939- debugging information. You'll need to set this Room-ID in
3939+ debugging information. You’ll need to set this Room-ID in
4040 <link linkend="opt-services.mjolnir.managementRoom">services.mjolnir.managementRoom</link>.
4141 </para>
4242 <para>
···5151 </para>
5252 <para>
5353 If you want Mjolnir to be able to deactivate users, move room
5454- aliases, shutdown rooms, etc. you'll need to make the Mjolnir user
5454+ aliases, shutdown rooms, etc. you’ll need to make the Mjolnir user
5555 a Matrix server admin.
5656 </para>
5757 <para>
···9393 <title>Element Matrix Services (EMS)</title>
9494 <para>
9595 If you are using a managed
9696- <link xlink:href="https://ems.element.io/">"Element Matrix
9797- Services (EMS)"</link> server, you will need to consent to
9898- the terms and conditions. Upon startup, an error log entry with
9999- a URL to the consent page will be generated.
9696+ <link xlink:href="https://ems.element.io/"><quote>Element Matrix
9797+ Services (EMS)</quote></link> server, you will need to consent
9898+ to the terms and conditions. Upon startup, an error log entry
9999+ with a URL to the consent page will be generated.
100100 </para>
101101 </section>
102102 </section>
···152152 <para>
153153 When using
154154 <xref linkend="opt-services.matrix-synapse.settings.registration_shared_secret"></xref>,
155155- the secret will end up in the world-readable store. Instead it's
155155+ the secret will end up in the world-readable store. Instead it’s
156156 recommended to deploy the secret in an additional file like
157157 this:
158158 </para>
···173173 <citerefentry><refentrytitle>nixops</refentrytitle><manvolnum>1</manvolnum></citerefentry>
174174 or
175175 <link xlink:href="https://github.com/Mic92/sops-nix/">sops-nix</link>
176176- to e.g.
177177- <filename>/run/secrets/matrix-shared-secret</filename> and
178178- ensure that it's readable by
176176+ to
177177+ e.g. <filename>/run/secrets/matrix-shared-secret</filename>
178178+ and ensure that it’s readable by
179179 <literal>matrix-synapse</literal>.
180180 </para>
181181 </listitem>
···195195 </warning>
196196 <note>
197197 <para>
198198- It's also possible to user alternative authentication mechanism
198198+ It’s also possible to user alternative authentication mechanism
199199 such as
200200 <link xlink:href="https://github.com/matrix-org/matrix-synapse-ldap3">LDAP
201201 (via <literal>matrix-synapse-ldap3</literal>)</link> or
···7878};
7979</programlisting>
8080 <para>
8181- If you're setting up a new GitLab instance, generate new secrets.
8181+ If you’re setting up a new GitLab instance, generate new secrets.
8282 You for instance use
8383 <literal>tr -dc A-Za-z0-9 < /dev/urandom | head -c 128 > /var/keys/gitlab/db</literal>
8484 to generate a new db secret. Make sure the files can be read by,
8585 and only by, the user specified by
8686 <link linkend="opt-services.gitlab.user">services.gitlab.user</link>.
8787- GitLab encrypts sensitive data stored in the database. If you're
8787+ GitLab encrypts sensitive data stored in the database. If you’re
8888 restoring an existing GitLab instance, you must specify the
8989 secrets secret from <literal>config/secrets.yml</literal> located
9090 in your GitLab state folder.
···125125 <section xml:id="module-services-gitlab-maintenance-rake">
126126 <title>Rake tasks</title>
127127 <para>
128128- You can run GitLab's rake tasks with
128128+ You can run GitLab’s rake tasks with
129129 <literal>gitlab-rake</literal> which will be available on the
130130 system when GitLab is enabled. You will have to run the command
131131 as the user that you configured to run GitLab with.
···9797 </para>
9898 </section>
9999 <section xml:id="module-services-sourcehut-httpd">
100100- <title>Using an alternative webserver as reverse-proxy (e.g.
101101- <literal>httpd</literal>)</title>
100100+ <title>Using an alternative webserver as reverse-proxy
101101+ (e.g. <literal>httpd</literal>)</title>
102102 <para>
103103 By default, <literal>nginx</literal> is used as reverse-proxy for
104104- <literal>sourcehut</literal>. However, it's possible to use e.g.
105105- <literal>httpd</literal> by explicitly disabling
104104+ <literal>sourcehut</literal>. However, it’s possible to use
105105+ e.g. <literal>httpd</literal> by explicitly disabling
106106 <literal>nginx</literal> using
107107 <xref linkend="opt-services.nginx.enable"></xref> and fixing the
108108 <literal>settings</literal>.
···1616 certificates, so you either need to roll your own CA or purchase a
1717 certificate from a known CA, which allows creation of client
1818 certificates. These certificates are usually advertised as
1919- "server certificates".
1919+ <quote>server certificates</quote>.
2020 </para>
2121 <para>
2222 So in order to make it easier to handle your own CA, there is a
···5454 For example if you add a new organisation using
5555 <command>nixos-taskserver org add foo</command>, the organisation
5656 is not modified and deleted no matter what you define in
5757- <option>services.taskserver.organisations</option>, even if you're
5757+ <option>services.taskserver.organisations</option>, even if you’re
5858 adding the same organisation in that option.
5959 </para>
6060 <para>
···8080 client machine.
8181 </para>
8282 <para>
8383- For example, let's say you have the following configuration:
8383+ For example, let’s say you have the following configuration:
8484 </para>
8585 <programlisting>
8686{
···121121 <para>
122122 If you set any options within
123123 <link linkend="opt-services.taskserver.pki.manual.ca.cert">service.taskserver.pki.manual</link>.*,
124124- <command>nixos-taskserver</command> won't issue certificates, but
124124+ <command>nixos-taskserver</command> won’t issue certificates, but
125125 you can still use it for adding or removing user accounts.
126126 </para>
127127 </section>
···1111 One of the most common exporters is the
1212 <link xlink:href="https://github.com/prometheus/node_exporter">node
1313 exporter</link>, it provides hardware and OS metrics from the host
1414- it's running on. The exporter could be configured as follows:
1414+ it’s running on. The exporter could be configured as follows:
1515 </para>
1616 <programlisting>
1717 services.prometheus.exporters.node = {
···3434 <link xlink:href="https://github.com/prometheus/node_exporter#enabled-by-default">enabled
3535 by default</link>, via http under <literal>/metrics</literal>. In
3636 this example the firewall should just allow incoming connections
3737- to the exporter's port on the bridge interface
3737+ to the exporter’s port on the bridge interface
3838 <literal>br0</literal> (this would have to be configured
3939 separately of course). For more information about configuration
4040 see <literal>man configuration.nix</literal> or search through the
···194194 <para>
195195 This should already be enough for the postfix exporter.
196196 Additionally one could now add assertions and conditional
197197- default values. This can be done in the 'meta-module' that
198198- combines all exporter definitions and generates the
199199- submodules:
197197+ default values. This can be done in the
198198+ <quote>meta-module</quote> that combines all exporter
199199+ definitions and generates the submodules:
200200 <literal>nixpkgs/nixos/modules/services/prometheus/exporters.nix</literal>
201201 </para>
202202 </listitem>
···99 <para>
1010 Litestream service is managed by a dedicated user named
1111 <literal>litestream</literal> which needs permission to the
1212- database file. Here's an example config which gives required
1212+ database file. Here’s an example config which gives required
1313 permissions to access
1414 <link linkend="opt-services.grafana.settings.database.path">grafana
1515 database</link>:
···136136</programlisting>
137137 <para>
138138 Note that the lines of the same configuration group are comma
139139- separated (i.e. all the lines end with a comma, except the last
139139+ separated (i.e. all the lines end with a comma, except the last
140140 one), so when the lines with passwords are added or removed,
141141 commas must be adjusted accordingly.
142142 </para>
···179179 4000. Nginx can be configured as a Reverse Proxy, for forwarding
180180 requests from public ports to the Pleroma service. This is an
181181 example of configuration, using
182182- <link xlink:href="https://letsencrypt.org/">Let's Encrypt</link>
182182+ <link xlink:href="https://letsencrypt.org/">Let’s Encrypt</link>
183183 for the TLS certificates
184184 </para>
185185 <programlisting>
···2424 <link xlink:href="https://xmpp.org/extensions/xep-0045.html">Multi
2525 User Chat (MUC)</link> and the
2626 <link xlink:href="https://xmpp.org/extensions/xep-0363.html">HTTP
2727- File Upload</link> ones. You'll need to create a DNS subdomain for
2727+ File Upload</link> ones. You’ll need to create a DNS subdomain for
2828 each of those. The current convention is to name your MUC endpoint
2929 <literal>conference.example.org</literal> and your HTTP upload
3030 domain <literal>upload.example.org</literal>.
···5858</programlisting>
5959 </section>
6060 <section xml:id="module-services-prosody-letsencrypt">
6161- <title>Let's Encrypt Configuration</title>
6161+ <title>Let’s Encrypt Configuration</title>
6262 <para>
6363 As you can see in the code snippet from the
6464 <link linkend="module-services-prosody-basic-usage">previous
6565- section</link>, you'll need a single TLS certificate covering your
6565+ section</link>, you’ll need a single TLS certificate covering your
6666 main endpoint, the MUC one as well as the HTTP Upload one. We can
6767 generate such a certificate by leveraging the ACME
6868 <link linkend="opt-security.acme.certs._name_.extraDomainNames">extraDomainNames</link>
6969 module option.
7070 </para>
7171 <para>
7272- Provided the setup detailed in the previous section, you'll need
7272+ Provided the setup detailed in the previous section, you’ll need
7373 the following acme configuration to generate a TLS certificate for
7474 the three endponits:
7575 </para>
···77 <section xml:id="module-services-discourse-basic-usage">
88 <title>Basic usage</title>
99 <para>
1010- A minimal configuration using Let's Encrypt for TLS certificates
1010+ A minimal configuration using Let’s Encrypt for TLS certificates
1111 looks like this:
1212 </para>
1313 <programlisting>
···2626security.acme.acceptTerms = true;
2727</programlisting>
2828 <para>
2929- Provided a proper DNS setup, you'll be able to connect to the
2929+ Provided a proper DNS setup, you’ll be able to connect to the
3030 instance at <literal>discourse.example.com</literal> and log in
3131 using the credentials provided in
3232 <literal>services.discourse.admin</literal>.
···8282 <section xml:id="module-services-discourse-mail">
8383 <title>Email</title>
8484 <para>
8585- In addition to the basic setup, you'll want to configure an SMTP
8585+ In addition to the basic setup, you’ll want to configure an SMTP
8686 server Discourse can use to send user registration and password
8787 reset emails, among others. You can also optionally let Discourse
8888 receive email, which enables people to reply to threads and
···116116};
117117</programlisting>
118118 <para>
119119- This assumes you have set up an MX record for the address you've
119119+ This assumes you have set up an MX record for the address you’ve
120120 set in
121121 <link linkend="opt-services.discourse.hostname">hostname</link>
122122 and requires proper SPF, DKIM and DMARC configuration to be done
123123- for the domain you're sending from, in order for email to be
123123+ for the domain you’re sending from, in order for email to be
124124 reliably delivered.
125125 </para>
126126 <para>
···135135 <note>
136136 <para>
137137 Setup of TLS for incoming email is currently only configured
138138- automatically when a regular TLS certificate is used, i.e. when
138138+ automatically when a regular TLS certificate is used, i.e. when
139139 <xref linkend="opt-services.discourse.sslCertificate"></xref>
140140 and
141141 <xref linkend="opt-services.discourse.sslCertificateKey"></xref>
···155155 <section xml:id="module-services-discourse-site-settings">
156156 <title>Site settings</title>
157157 <para>
158158- "Site settings" are the settings that can be changed
159159- through the Discourse UI. Their <emphasis>default</emphasis>
160160- values can be set using
158158+ <quote>Site settings</quote> are the settings that can be
159159+ changed through the Discourse UI. Their
160160+ <emphasis>default</emphasis> values can be set using
161161 <xref linkend="opt-services.discourse.siteSettings"></xref>.
162162 </para>
163163 <para>
164164 Settings are expressed as a Nix attribute set which matches the
165165 structure of the configuration in
166166 <link xlink:href="https://github.com/discourse/discourse/blob/master/config/site_settings.yml">config/site_settings.yml</link>.
167167- To find a setting's path, you only need to care about the first
168168- two levels; i.e. its category (e.g. <literal>login</literal>)
169169- and name (e.g. <literal>invite_only</literal>).
167167+ To find a setting’s path, you only need to care about the first
168168+ two levels; i.e. its category (e.g. <literal>login</literal>)
169169+ and name (e.g. <literal>invite_only</literal>).
170170 </para>
171171 <para>
172172 Settings containing secret data should be set to an attribute
···263263 <link xlink:href="https://nixos.org/manual/nixpkgs/stable/#developing-with-ruby">Developing
264264 with Ruby</link> section of the Nixpkgs manual and the appropriate
265265 gem options set in <literal>bundlerEnvArgs</literal> (normally
266266- <literal>gemdir</literal> is sufficient). A plugin's Ruby
266266+ <literal>gemdir</literal> is sufficient). A plugin’s Ruby
267267 dependencies are listed in its <filename>plugin.rb</filename> file
268268 as function calls to <literal>gem</literal>. To construct the
269269 corresponding <filename>Gemfile</filename> manually, run
···2929 credentials <literal>admin:admin</literal> can be used to login.
3030 </para>
3131 <para>
3232- The application's state is persisted at
3232+ The application’s state is persisted at
3333 <literal>/var/lib/grocy/grocy.db</literal> in a
3434 <literal>sqlite3</literal> database. The migration is applied when
3535 requesting the <literal>/</literal>-route of the application.
···7676 </para>
7777 <note>
7878 <para>
7979- If you're migrating an old Wildfly based Keycloak instance and
8080- want to keep compatibility with your current clients, you'll
7979+ If you’re migrating an old Wildfly based Keycloak instance and
8080+ want to keep compatibility with your current clients, you’ll
8181 likely want to set
8282 <xref linkend="opt-services.keycloak.settings.http-relative-path"></xref>
8383 to <literal>/auth</literal>. See the option description for more
···102102 <section xml:id="module-services-keycloak-tls">
103103 <title>Setting up TLS/SSL</title>
104104 <para>
105105- By default, Keycloak won't accept unsecured HTTP connections
105105+ By default, Keycloak won’t accept unsecured HTTP connections
106106 originating from outside its local network.
107107 </para>
108108 <para>
+3-3
nixos/modules/services/web-apps/matomo-doc.xml
···4141 <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>.
4242 </para>
4343 <para>
4444- Of course, you can use password based authentication as well, e.g.
4545- when the database is not on the same host.
4444+ Of course, you can use password based authentication as well,
4545+ e.g. when the database is not on the same host.
4646 </para>
4747 </section>
4848 <section xml:id="module-services-matomo-archive-processing">
···8484 <listitem>
8585 <para>
8686 Matomo will warn you that the JavaScript tracker is not
8787- writable. This is because it's located in the read-only nix
8787+ writable. This is because it’s located in the read-only nix
8888 store. You can safely ignore this, unless you need a plugin
8989 that needs JavaScript tracker access.
9090 </para>
···1919 (<link linkend="opt-services.nextcloud.enable"><literal>services.nextcloud</literal></link>
2020 optionally supports
2121 <link linkend="opt-services.nginx.enable"><literal>services.nginx</literal></link>)
2222- and a database (it's recommended to use
2222+ and a database (it’s recommended to use
2323 <link linkend="opt-services.postgresql.enable"><literal>services.postgresql</literal></link>).
2424 </para>
2525 <para>
···6767 and <literal>nginx</literal>. The <literal>config</literal>
6868 attribute set is used by the imperative installer and all values
6969 are written to an additional file to ensure that changes can be
7070- applied by changing the module's options.
7070+ applied by changing the module’s options.
7171 </para>
7272 <para>
7373 In case the application serves multiple domains (those are checked
7474 with
7575 <link xlink:href="http://php.net/manual/en/reserved.variables.server.php"><literal>$_SERVER['HTTP_HOST']</literal></link>)
7676- it's needed to add them to
7676+ it’s needed to add them to
7777 <link linkend="opt-services.nextcloud.config.extraTrustedDomains"><literal>services.nextcloud.config.extraTrustedDomains</literal></link>.
7878 </para>
7979 <para>
···101101 which is generated by the module and linked from the store to
102102 ensure that all values from <filename>config.php</filename>
103103 can be modified by the module. However
104104- <filename>config.php</filename> manages the application's
105105- state and shouldn't be touched manually because of that.
104104+ <filename>config.php</filename> manages the application’s
105105+ state and shouldn’t be touched manually because of that.
106106 </para>
107107 <warning>
108108 <para>
109109- Don't delete <filename>config.php</filename>! This file
110110- tracks the application's state and a deletion can cause
109109+ Don’t delete <filename>config.php</filename>! This file
110110+ tracks the application’s state and a deletion can cause
111111 unwanted side-effects!
112112 </para>
113113 </warning>
114114 <warning>
115115 <para>
116116- Don't rerun
116116+ Don’t rerun
117117 <literal>nextcloud-occ maintenance:install</literal>! This
118118 command tries to install the application and can cause
119119 unwanted side-effects!
···123123 <listitem>
124124 <para>
125125 <emphasis role="strong">Multiple version upgrades.</emphasis>
126126- Nextcloud doesn't allow to move more than one major-version
127127- forward. E.g., if you're on <literal>v16</literal>, you cannot
126126+ Nextcloud doesn’t allow to move more than one major-version
127127+ forward. E.g., if you’re on <literal>v16</literal>, you cannot
128128 upgrade to <literal>v18</literal>, you need to upgrade to
129129 <literal>v17</literal> first. This is ensured automatically as
130130 long as the
···159159 this is most likely because the maintenance mode is
160160 active. It can be deactivated by running
161161 <command>nextcloud-occ maintenance:mode --off</command>.
162162- It's advisable though to check the logs first on why the
162162+ It’s advisable though to check the logs first on why the
163163 maintenance mode was activated.
164164 </para>
165165 </listitem>
···175175 <emphasis>deleting</emphasis>
176176 <filename>/var/lib/nextcloud/config/config.php</filename>.
177177 This is the only time advisable because the fresh install
178178- doesn't have any state that can be lost. In case that
179179- doesn't help, an entire re-creation can be forced via
178178+ doesn’t have any state that can be lost. In case that
179179+ doesn’t help, an entire re-creation can be forced via
180180 <command>rm -rf ~nextcloud/</command>.
181181 </para>
182182 </listitem>
···189189 <link xlink:href="https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/encryption_configuration.html">server-side
190190 encryption (SSE)</link>. This is not an end-to-end encryption,
191191 but can be used to encrypt files that will be persisted to
192192- external storage such as S3. Please note that this won't work
193193- anymore when using OpenSSL 3 for PHP's openssl extension
192192+ external storage such as S3. Please note that this won’t work
193193+ anymore when using OpenSSL 3 for PHP’s openssl extension
194194 because this is implemented using the legacy cipher RC4. If
195195 <xref linkend="opt-system.stateVersion"></xref> is
196196 <emphasis>above</emphasis> <literal>22.05</literal>, this is
···202202 </itemizedlist>
203203 </section>
204204 <section xml:id="module-services-nextcloud-httpd">
205205- <title>Using an alternative webserver as reverse-proxy (e.g.
206206- <literal>httpd</literal>)</title>
205205+ <title>Using an alternative webserver as reverse-proxy
206206+ (e.g. <literal>httpd</literal>)</title>
207207 <para>
208208 By default, <literal>nginx</literal> is used as reverse-proxy for
209209- <literal>nextcloud</literal>. However, it's possible to use e.g.
210210- <literal>httpd</literal> by explicitly disabling
209209+ <literal>nextcloud</literal>. However, it’s possible to use
210210+ e.g. <literal>httpd</literal> by explicitly disabling
211211 <literal>nginx</literal> using
212212 <xref linkend="opt-services.nginx.enable"></xref> and fixing the
213213 settings <literal>listen.owner</literal> &
···292292 While minor and patch-level updates are no problem and can be done
293293 directly in the package-expression (and should be backported to
294294 supported stable branches after that), major-releases should be
295295- added in a new attribute (e.g. Nextcloud
295295+ added in a new attribute (e.g. Nextcloud
296296 <literal>v19.0.0</literal> should be available in
297297 <literal>nixpkgs</literal> as
298298 <literal>pkgs.nextcloud19</literal>). To provide simple upgrade
299299- paths it's generally useful to backport those as well to stable
300300- branches. As long as the package-default isn't altered, this won't
299299+ paths it’s generally useful to backport those as well to stable
300300+ branches. As long as the package-default isn’t altered, this won’t
301301 break existing setups. After that, the versioning-warning in the
302302 <literal>nextcloud</literal>-module should be updated to make sure
303303 that the
···322322}
323323</programlisting>
324324 <para>
325325- Ideally we should make sure that it's possible to jump two NixOS
326326- versions forward: i.e. the warnings and the logic in the module
327327- should guard a user to upgrade from a Nextcloud on e.g. 19.09 to a
325325+ Ideally we should make sure that it’s possible to jump two NixOS
326326+ versions forward: i.e. the warnings and the logic in the module
327327+ should guard a user to upgrade from a Nextcloud on e.g. 19.09 to a
328328 Nextcloud on 20.09.
329329 </para>
330330 </section>
···3636 <para>
3737 Until 1.0 is released, patch-level upgrades are considered as
3838 minor version upgrades. Minor version upgrades are considered as
3939- major version upgrades. i.e. 0.6 to 0.7 is a major version
3939+ major version upgrades. i.e. 0.6 to 0.7 is a major version
4040 upgrade.
4141 </para>
4242 </warning>
···4545 <para>
4646 <emphasis role="strong">Straightforward upgrades (patch-level
4747 upgrades).</emphasis> Upgrades must be performed one by one,
4848- i.e. for each node, stop it, upgrade it : change
4848+ i.e. for each node, stop it, upgrade it : change
4949 <link linkend="opt-system.stateVersion">stateVersion</link> or
5050 <link linkend="opt-services.garage.package">services.garage.package</link>,
5151 restart it if it was not already by switching.
···5555 <para>
5656 <emphasis role="strong">Multiple version upgrades.</emphasis>
5757 Garage do not provide any guarantee on moving more than one
5858- major-version forward. E.g., if you're on
5858+ major-version forward. E.g., if you’re on
5959 <literal>0.7</literal>, you cannot upgrade to
6060 <literal>0.9</literal>. You need to upgrade to
6161 <literal>0.8</literal> first. As long as
···110110 </listitem>
111111 <listitem>
112112 <para>
113113- Backup the metadata folder of ALL your nodes, e.g. for a
113113+ Backup the metadata folder of ALL your nodes, e.g. for a
114114 metadata directory (the default one) in
115115 <literal>/var/lib/garage/meta</literal>, you can run
116116 <literal>pushd /var/lib/garage; tar -acf meta-v0.7.tar.zst meta/; popd</literal>.
···166166 While patch-level updates are no problem and can be done directly
167167 in the package-expression (and should be backported to supported
168168 stable branches after that), major-releases should be added in a
169169- new attribute (e.g. Garage <literal>v0.8.0</literal> should be
169169+ new attribute (e.g. Garage <literal>v0.8.0</literal> should be
170170 available in <literal>nixpkgs</literal> as
171171 <literal>pkgs.garage_0_8_0</literal>). To provide simple upgrade
172172- paths it's generally useful to backport those as well to stable
173173- branches. As long as the package-default isn't altered, this won't
172172+ paths it’s generally useful to backport those as well to stable
173173+ branches. As long as the package-default isn’t altered, this won’t
174174 break existing setups. After that, the versioning-warning in the
175175 <literal>garage</literal>-module should be updated to make sure
176176 that the
···195195}
196196</programlisting>
197197 <para>
198198- Ideally we should make sure that it's possible to jump two NixOS
199199- versions forward: i.e. the warnings and the logic in the module
200200- should guard a user to upgrade from a Garage on e.g. 22.11 to a
198198+ Ideally we should make sure that it’s possible to jump two NixOS
199199+ versions forward: i.e. the warnings and the logic in the module
200200+ should guard a user to upgrade from a Garage on e.g. 22.11 to a
201201 Garage on 23.11.
202202 </para>
203203 </section>
···1717services.xserver.desktopManager.pantheon.enable = true;
1818</programlisting>
1919 <para>
2020- This automatically enables LightDM and Pantheon's LightDM greeter.
2121- If you'd like to disable this, set
2020+ This automatically enables LightDM and Pantheon’s LightDM greeter.
2121+ If you’d like to disable this, set
2222 </para>
2323 <programlisting>
2424services.xserver.displayManager.lightdm.greeters.pantheon.enable = false;
···2727 <para>
2828 but please be aware using Pantheon without LightDM as a display
2929 manager will break screenlocking from the UI. The NixOS module for
3030- Pantheon installs all of Pantheon's default applications. If you'd
3131- like to not install Pantheon's apps, set
3030+ Pantheon installs all of Pantheon’s default applications. If you’d
3131+ like to not install Pantheon’s apps, set
3232 </para>
3333 <programlisting>
3434services.pantheon.apps.enable = false;
···8686 <para>
8787 please note that, like how the NixOS options describe these as
8888 extra plugins, this would only add to the default plugins included
8989- with the programs. If for some reason you'd like to configure
8989+ with the programs. If for some reason you’d like to configure
9090 which plugins to use exactly, both packages have an argument for
9191 this:
9292 </para>