apache: Implement fastcgi alias support
[hcoop/domtool2.git] / lib / easy_domain.dtl
CommitLineData
6bb366c5
AC
1{{The most common kinds of domain configuration}}
2
a51387b8 3val web_node : (web_node) = "navajos";
733d4d61 4val default_node : (node) = web_node_to_node web_node;
539abe03 5val web_ip = ip_of_node (web_node_to_node web_node);
15e529d6 6
733d4d61
CE
7var WebPlaces = [web_place_default web_node];
8
15e529d6 9val webAt =
ae272cb5
AC
10 \ n : (web_node) ->
11 \ host : (host) ->
12 \\ config : Vhost -> begin
cfedb922 13 dns (dnsA (literal host) (ip_of_node (web_node_to_node n)));
15e529d6 14
ae272cb5
AC
15 vhost host where
16 WebPlaces = [web_place_default n]
17 with
18 config
19 end
20 end;
15e529d6 21
5c8b4fb8
CE
22val web = \ host -> \\ config : Vhost -> begin
23 n <- DefaultWebNode;
24 webAt n host with config end;
25end;
6bb366c5 26
2e87719c 27val webAtIp =
ae272cb5
AC
28 \ ip : (your_ip) ->
29 \ host : (host) ->
30 \\ config : Vhost -> begin
cfedb922 31 dns (dnsA (literal host) (your_ip_to_ip ip));
2e87719c 32
ae272cb5
AC
33 vhost host where
34 WebPlaces = [web_place web_node ip]
35 with
36 config
37 end
38 end;
2e87719c 39
a356587a 40val addDefaultAlias = begin
d4e42f2a 41 mailbox <- Mailbox;
945262dc
CE
42 source <- DefaultAliasSource;
43 aliasPrim source (addressTarget mailbox)
d4e42f2a
AC
44end;
45
46val addWww = begin
47 web "www" with
48 serverAliasDefault;
49 www : [Vhost] <- WWW;
50 www
51 end
52end;
53
a356587a 54val dom =
ae272cb5
AC
55 \ d : (your_domain) ->
56 \\ config : Domain ->
57 domain d with
58 dns (dnsNS "ns1.hcoop.net");
0c195384 59 dns (dnsNS "ns2.hcoop.net");
6bb366c5 60
5c8b4fb8
CE
61 user_web_node <- DefaultWebNode;
62
942d94ab
AC
63 defa : bool <- DefaultA;
64 if defa then
5c8b4fb8 65 dns (dnsA default (ip_of_node (web_node_to_node user_web_node)))
942d94ab
AC
66 else
67 Skip
68 end;
6eeb3bf9 69
b3cab94c
AC
70 hmail : bool <- HandleMail;
71 if hmail then
72 handleMail
73 else
74 Skip
75 end;
76
77 amx : bool <- AddMX;
78 if amx then
4515633d 79 dns (dnsMX 1 "mail.hcoop.net");
b3cab94c
AC
80 else
81 Skip
82 end;
6bb366c5 83
ae272cb5
AC
84 createWWW : bool <- CreateWWW;
85 if createWWW then
86 addWww
87 else
88 Skip
89 end;
d4e42f2a 90
ae272cb5
AC
91 defAl : bool <- DefaultAlias;
92 if defAl then
93 addDefaultAlias
94 else
95 Skip
96 end;
d4e42f2a 97
ae272cb5 98 config
5c8b4fb8 99end;
6b718954 100
8c142ff5 101val nameserver = \host -> dns (dnsNS host);
cfedb922
AC
102val dnsIP = \from -> \to -> dns (dnsA (literal from) to);
103val dnsIPv6 = \from -> \to -> dns (dnsAAAA (literal from) to);
8c142ff5 104val dnsMail = \num -> \host -> dns (dnsMX num host);
cfedb922
AC
105val dnsAlias = \from -> \to -> dns (dnsCNAME (literal from) to);
106val dnsDefault = \to -> dns (dnsA default to);
107val dnsDefaultv6 = \to -> dns (dnsAAAA default to);
63ac3b82
AC
108val dnsText = \from -> \to -> dns (dnsTXT (srv_literal from) to);
109val dnsDefaultText = \to -> dns (dnsTXT srv_default to);
6b65a0a6 110
1b1021cb 111val dnsWildcardIP = \to -> dns (dnsA wildcard to);
5ea8643a
CE
112
113val addDefaultSPF = dnsDefaultText "v=spf1 mx -all";