vhost IP specification working
[hcoop/domtool2.git] / lib / easy_domain.dtl
index 9a1ace5..82c66bf 100644 (file)
@@ -1,22 +1,76 @@
 {{The most common kinds of domain configuration}}
 
-val web_ip : (ip) = "1.2.3.4";
+val default_node : (node) = "mire";
+val web_node : (web_node) = "mire";
 
-val dom =
+val webAt =
+       \ n : (web_node) ->
+       \ host : (host) ->
+       \\ config : Vhost ->
+               (dns (dnsA host (ip_of_node (web_node_to_node n)));
+
+               vhost host where
+                       WebPlaces = [web_place_default n]
+               with
+                       config
+               end);
+
+val web = webAt web_node;
+
+val addDefaultAlias = begin
+  mailbox <- Mailbox;
+  defaultAlias mailbox
+end;
+
+val addWww = begin
+  web "www" with
+    serverAliasDefault;
+    www : [Vhost] <- WWW;
+    www
+  end
+end;
+
+val domNoWwwNoDefaultAlias =
        \ d : (your_domain) ->
        \\ config : Domain ->
                domain d with
-                       dns (dnsNS "ns.hcoop.net");
-                       dns (dnsNS "ns2.hcoop.net");
+                       dns (dnsNS "ns1.hcoop.net");
+                       dns (dnsNS "ns3.hcoop.net");
 
-                       dns (dnsA "www" web_ip);
+                       dns (dnsDefaultA (ip_of_node (web_node_to_node web_node)));
 
                        handleMail;
-                       mailbox <- Mailbox;
-                       catchAllAlias mailbox;
-
-                       vhost "www" with
-                       end;
+                       dns (dnsMX 1 "deleuze.hcoop.net");
 
                        config
                end;
+
+val domNoDefaultAlias =
+       \ d : (your_domain) ->
+       \\ config : Domain ->
+               domNoWwwNoDefaultAlias d with
+                 addWww;
+                 config
+               end;
+
+val domNoWww =
+       \ d : (your_domain) ->
+       \\ config : Domain ->
+               domNoWwwNoDefaultAlias d with
+                 config;
+                 addDefaultAlias;
+               end;
+
+val dom =
+       \ d : (your_domain) ->
+       \\ config : Domain ->
+               domNoDefaultAlias d with
+                 config;
+                 addDefaultAlias;
+               end;
+
+val nameserver = \host -> dns (dnsNS host);
+val dnsIP = \from -> \to -> dns (dnsA from to);
+val dnsMail = \num -> \host -> dns (dnsMX num host);
+val dnsAlias = \from -> \to -> dns (dnsCNAME from to);
+val dnsDefault = \to -> dns (dnsDefaultA to);