X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/5c8b4fb802400591683a958265a03bd2e2abaeec..refs/heads/feature-apache-ipv6:/lib/easy_domain.dtl diff --git a/lib/easy_domain.dtl b/lib/easy_domain.dtl index 2a58423..26de1b1 100644 --- a/lib/easy_domain.dtl +++ b/lib/easy_domain.dtl @@ -1,14 +1,18 @@ {{The most common kinds of domain configuration}} -val default_node : (node) = "mire"; -val web_node : (web_node) = "mire"; +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,20 +28,43 @@ 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; - defaultAlias mailbox + source <- DefaultAliasSource; + aliasPrim source (addressTarget mailbox) end; val addWww = begin @@ -59,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; @@ -73,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; @@ -106,3 +134,5 @@ val dnsText = \from -> \to -> dns (dnsTXT (srv_literal from) to); val dnsDefaultText = \to -> dns (dnsTXT srv_default to); val dnsWildcardIP = \to -> dns (dnsA wildcard to); + +val addDefaultSPF = dnsDefaultText "v=spf1 mx -all";