easy_domain: fix argument
[hcoop/domtool2.git] / lib / easy_domain.dtl
index 26f1eb7..26de1b1 100644 (file)
@@ -1,14 +1,18 @@
 {{The most common kinds of domain configuration}}
 
-val default_node : (node) = "navajos";
-val web_node : (web_node) = "navajos";
+val web_node : (web_node) = "shelob";
+val default_node : (node) = web_node_to_node web_node;
 val web_ip = ip_of_node (web_node_to_node web_node);
+val web_ipv6 = ipv6_of_node (web_node_to_node web_node);
+
+var WebPlaces = [web_place_default web_node];
 
 val webAt =
   \ n : (web_node) ->
   \ host : (host) ->
   \\ config : Vhost -> begin
     dns (dnsA (literal host) (ip_of_node (web_node_to_node n)));
+    dns (dnsAAAA (literal host) (ipv6_of_node (web_node_to_node n)));
 
     vhost host where
       WebPlaces = [web_place_default n]
@@ -24,17 +28,39 @@ end;
 
 val webAtIp =
   \ ip : (your_ip) ->
+  \ ipv6 : (your_ipv6) ->
   \ host : (host) ->
   \\ config : Vhost -> begin
     dns (dnsA (literal host) (your_ip_to_ip ip));
+    dns (dnsAAAA (literal host) (your_ipv6_to_ipv6 ipv6));
 
     vhost host where
-      WebPlaces = [web_place web_node ip]
+      WebPlaces = [web_place web_node ip ipv6]
     with
       config
     end
   end;
 
+val webSsl = \ host -> \ certFile -> \\ config : Vhost -> begin
+  n <- DefaultWebNode;
+  webAt n host where
+    SSL = certFile;
+  with config end;
+
+  force_ssl <- ForceSSL;
+  if force_ssl then
+    webAt n host where
+      SSL = no_ssl;
+    with
+      rewriteRule "^(.*)$" "https://%{HTTP_HOST}$1" [redirect];
+    end;
+  else
+    webAt n host where
+      SSL = no_ssl;
+    with config end;
+  end;
+end;
+
 val addDefaultAlias = begin
   mailbox <- Mailbox;
   source <- DefaultAliasSource;
@@ -60,7 +86,8 @@ val dom =
 
     defa : bool <- DefaultA;
     if defa then
-      dns (dnsA default (ip_of_node (web_node_to_node user_web_node)))
+      dns (dnsA default (ip_of_node (web_node_to_node user_web_node)));
+      dns (dnsAAAA default (ipv6_of_node (web_node_to_node user_web_node)))
     else
       Skip
     end;
@@ -74,7 +101,7 @@ val dom =
 
     amx : bool <- AddMX;
     if amx then
-      dns (dnsMX 1 "mail.hcoop.net")
+      dns (dnsMX 1 "mail.hcoop.net");
     else
       Skip
     end;