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