summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/mail/mailman.xml
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/mail/mailman.xml')
-rw-r--r--nixos/modules/services/mail/mailman.xml122
1 files changed, 70 insertions, 52 deletions
diff --git a/nixos/modules/services/mail/mailman.xml b/nixos/modules/services/mail/mailman.xml
index 27247fb064f2..23b0d0b7da4c 100644
--- a/nixos/modules/services/mail/mailman.xml
+++ b/nixos/modules/services/mail/mailman.xml
@@ -1,79 +1,95 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:xi="http://www.w3.org/2001/XInclude"
- version="5.0"
- xml:id="module-services-mailman">
+<!-- Do not edit this file directly, edit its companion .md instead
+ and regenerate this file using nixos/doc/manual/md-to-db.sh -->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="module-services-mailman">
<title>Mailman</title>
<para>
<link xlink:href="https://www.list.org">Mailman</link> is free
software for managing electronic mail discussion and e-newsletter
lists. Mailman and its web interface can be configured using the
corresponding NixOS module. Note that this service is best used with
- an existing, securely configured Postfix setup, as it does not automatically configure this.
+ an existing, securely configured Postfix setup, as it does not
+ automatically configure this.
</para>
-
<section xml:id="module-services-mailman-basic-usage">
<title>Basic usage with Postfix</title>
<para>
- For a basic configuration with Postfix as the MTA, the following settings are suggested:
- <programlisting>{ config, ... }: {
+ For a basic configuration with Postfix as the MTA, the following
+ settings are suggested:
+ </para>
+ <programlisting>
+{ config, ... }: {
services.postfix = {
enable = true;
- relayDomains = ["hash:/var/lib/mailman/data/postfix_domains"];
- sslCert = config.security.acme.certs."lists.example.org".directory + "/full.pem";
- sslKey = config.security.acme.certs."lists.example.org".directory + "/key.pem";
+ relayDomains = [&quot;hash:/var/lib/mailman/data/postfix_domains&quot;];
+ sslCert = config.security.acme.certs.&quot;lists.example.org&quot;.directory + &quot;/full.pem&quot;;
+ sslKey = config.security.acme.certs.&quot;lists.example.org&quot;.directory + &quot;/key.pem&quot;;
config = {
- transport_maps = ["hash:/var/lib/mailman/data/postfix_lmtp"];
- local_recipient_maps = ["hash:/var/lib/mailman/data/postfix_lmtp"];
+ transport_maps = [&quot;hash:/var/lib/mailman/data/postfix_lmtp&quot;];
+ local_recipient_maps = [&quot;hash:/var/lib/mailman/data/postfix_lmtp&quot;];
};
};
services.mailman = {
- <link linkend="opt-services.mailman.enable">enable</link> = true;
- <link linkend="opt-services.mailman.serve.enable">serve.enable</link> = true;
- <link linkend="opt-services.mailman.hyperkitty.enable">hyperkitty.enable</link> = true;
- <link linkend="opt-services.mailman.webHosts">webHosts</link> = ["lists.example.org"];
- <link linkend="opt-services.mailman.siteOwner">siteOwner</link> = "mailman@example.org";
+ enable = true;
+ serve.enable = true;
+ hyperkitty.enable = true;
+ webHosts = [&quot;lists.example.org&quot;];
+ siteOwner = &quot;mailman@example.org&quot;;
};
- <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">services.nginx.virtualHosts."lists.example.org".enableACME</link> = true;
- <link linkend="opt-networking.firewall.allowedTCPPorts">networking.firewall.allowedTCPPorts</link> = [ 25 80 443 ];
-}</programlisting>
- </para>
+ services.nginx.virtualHosts.&quot;lists.example.org&quot;.enableACME = true;
+ networking.firewall.allowedTCPPorts = [ 25 80 443 ];
+}
+</programlisting>
<para>
DNS records will also be required:
- <itemizedlist>
- <listitem><para><literal>AAAA</literal> and <literal>A</literal> records pointing to the host in question, in order for browsers to be able to discover the address of the web server;</para></listitem>
- <listitem><para>An <literal>MX</literal> record pointing to a domain name at which the host is reachable, in order for other mail servers to be able to deliver emails to the mailing lists it hosts.</para></listitem>
- </itemizedlist>
</para>
+ <itemizedlist spacing="compact">
+ <listitem>
+ <para>
+ <literal>AAAA</literal> and <literal>A</literal> records
+ pointing to the host in question, in order for browsers to be
+ able to discover the address of the web server;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ An <literal>MX</literal> record pointing to a domain name at
+ which the host is reachable, in order for other mail servers
+ to be able to deliver emails to the mailing lists it hosts.
+ </para>
+ </listitem>
+ </itemizedlist>
<para>
- After this has been done and appropriate DNS records have been
- set up, the Postorius mailing list manager and the Hyperkitty
- archive browser will be available at
- https://lists.example.org/. Note that this setup is not
- sufficient to deliver emails to most email providers nor to
- avoid spam -- a number of additional measures for authenticating
- incoming and outgoing mails, such as SPF, DMARC and DKIM are
- necessary, but outside the scope of the Mailman module.
+ After this has been done and appropriate DNS records have been set
+ up, the Postorius mailing list manager and the Hyperkitty archive
+ browser will be available at https://lists.example.org/. Note that
+ this setup is not sufficient to deliver emails to most email
+ providers nor to avoid spam – a number of additional measures for
+ authenticating incoming and outgoing mails, such as SPF, DMARC and
+ DKIM are necessary, but outside the scope of the Mailman module.
</para>
</section>
<section xml:id="module-services-mailman-other-mtas">
<title>Using with other MTAs</title>
<para>
- Mailman also supports other MTA, though with a little bit more configuration. For example, to use Mailman with Exim, you can use the following settings:
- <programlisting>{ config, ... }: {
+ Mailman also supports other MTA, though with a little bit more
+ configuration. For example, to use Mailman with Exim, you can use
+ the following settings:
+ </para>
+ <programlisting>
+{ config, ... }: {
services = {
mailman = {
enable = true;
- siteOwner = "mailman@example.org";
- <link linkend="opt-services.mailman.enablePostfix">enablePostfix</link> = false;
+ siteOwner = &quot;mailman@example.org&quot;;
+ enablePostfix = false;
settings.mta = {
- incoming = "mailman.mta.exim4.LMTP";
- outgoing = "mailman.mta.deliver.deliver";
- lmtp_host = "localhost";
- lmtp_port = "8024";
- smtp_host = "localhost";
- smtp_port = "25";
- configuration = "python:mailman.config.exim4";
+ incoming = &quot;mailman.mta.exim4.LMTP&quot;;
+ outgoing = &quot;mailman.mta.deliver.deliver&quot;;
+ lmtp_host = &quot;localhost&quot;;
+ lmtp_port = &quot;8024&quot;;
+ smtp_host = &quot;localhost&quot;;
+ smtp_port = &quot;25&quot;;
+ configuration = &quot;python:mailman.config.exim4&quot;;
};
};
exim = {
@@ -82,13 +98,15 @@
config = builtins.readFile ./exim.conf;
};
};
-}</programlisting>
- </para>
+}
+</programlisting>
<para>
- The exim config needs some special additions to work with Mailman. Currently
- NixOS can't manage Exim config with such granularity. Please refer to
- <link xlink:href="https://mailman.readthedocs.io/en/latest/src/mailman/docs/mta.html">Mailman documentation</link>
- for more info on configuring Mailman for working with Exim.
+ The exim config needs some special additions to work with Mailman.
+ Currently NixOS can’t manage Exim config with such granularity.
+ Please refer to
+ <link xlink:href="https://mailman.readthedocs.io/en/latest/src/mailman/docs/mta.html">Mailman
+ documentation</link> for more info on configuring Mailman for
+ working with Exim.
</para>
</section>
</chapter>