X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/325285ab74fb24bf441fa8137556accc3a518905..660f5874aa860c9cb2bf4c3022aca4d971ae815c:/lib/mailman.dtl diff --git a/lib/mailman.dtl b/lib/mailman.dtl index 2cf0445..f2158b7 100644 --- a/lib/mailman.dtl +++ b/lib/mailman.dtl @@ -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 web_node, 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 web_place, but based on mailman_nodes}} + +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.}}