Expanding TXT support
[hcoop/domtool2.git] / lib / mailman.dtl
index 2cf0445..f2158b7 100644 (file)
@@ -3,3 +3,45 @@
 extern val mailmanWebHost : domain -> [Domain];
 {{Set the hostname of the web site for administration of mailing lists for this
   domain.}}
+
+extern type mailman_node;
+{{Like <tt>web_node</tt>, but with the possibility of using some additional
+  nodes set by the admins.}}
+
+extern val mailman_node : mailman_node;
+{{The default location for Mailman web interfaces}}
+
+extern val mailman_node_to_node : mailman_node -> node;
+
+extern type mailman_place;
+extern val mailman_place_default : mailman_node -> mailman_place;
+extern val mailman_place : mailman_node -> your_ip -> mailman_place;
+extern val mailman_place_to_web_node : mailman_place -> web_node;
+extern val mailman_place_to_node : mailman_place -> node;
+extern val mailman_place_to_ip : mailman_place -> ip;
+{{Analogous to <tt>web_place</tt>, but based on <tt>mailman_node</tt>s}}
+
+extern val mailmanVhost : host -> [Domain]
+  {MailmanPlaces : [mailman_place],
+  SSL : ssl,
+  User : your_user,
+  ServerAdmin : email};
+{{Create an Apache virtual host to serve as the web interface for some Mailman
+  lists.}}
+
+val mailman = \ host : (host) -> begin
+  let
+    domainHost host;
+  in
+    dnsIP host (ip_of_node (mailman_node_to_node mailman_node));
+    mwh <- Hostname;
+    mailmanWebHost mwh;
+    mailmanVhost host where
+      MailmanPlaces = [mailman_place_default mailman_node];
+      SSL = no_ssl
+    end
+  end
+end;
+{{The most common Mailman config, for when you want to have a virtual host of your
+  domain dedicated to a Mailman interface.  Provide the name of that host (e.g.,
+  "lists") to this directive, and it will take care of the rest.}}