bf9b0bc3 |
1 | {{The most common kinds of domain configuration}} |
2 | |
a54ae325 |
3 | val default_node : (node) = "mire"; |
4cb2e7e7 |
4 | val web_node : (web_node) = "mire"; |
ae175ff1 |
5 | |
6 | val webAt = |
6322242f |
7 | \ n : (web_node) -> |
8 | \ host : (host) -> |
9 | \\ config : Vhost -> begin |
10 | dns (dnsA host (ip_of_node (web_node_to_node n))); |
ae175ff1 |
11 | |
6322242f |
12 | vhost host where |
13 | WebPlaces = [web_place_default n] |
14 | with |
15 | config |
16 | end |
17 | end; |
ae175ff1 |
18 | |
19 | val web = webAt web_node; |
bf9b0bc3 |
20 | |
f4018a6e |
21 | val webAtIp = |
6322242f |
22 | \ ip : (your_ip) -> |
23 | \ host : (host) -> |
24 | \\ config : Vhost -> begin |
25 | dns (dnsA host (your_ip_to_ip ip)); |
f4018a6e |
26 | |
6322242f |
27 | vhost host where |
28 | WebPlaces = [web_place web_node ip] |
29 | with |
30 | config |
31 | end |
32 | end; |
f4018a6e |
33 | |
70ecef16 |
34 | val addDefaultAlias = begin |
446f4d45 |
35 | mailbox <- Mailbox; |
70ecef16 |
36 | defaultAlias mailbox |
446f4d45 |
37 | end; |
38 | |
39 | val addWww = begin |
40 | web "www" with |
41 | serverAliasDefault; |
42 | www : [Vhost] <- WWW; |
43 | www |
44 | end |
45 | end; |
46 | |
70ecef16 |
47 | val dom = |
6322242f |
48 | \ d : (your_domain) -> |
49 | \\ config : Domain -> |
50 | domain d with |
51 | dns (dnsNS "ns1.hcoop.net"); |
52 | dns (dnsNS "ns3.hcoop.net"); |
bf9b0bc3 |
53 | |
6322242f |
54 | dns (dnsDefaultA (ip_of_node (web_node_to_node web_node))); |
a54ae325 |
55 | |
6322242f |
56 | handleMail; |
57 | dns (dnsMX 1 "deleuze.hcoop.net"); |
bf9b0bc3 |
58 | |
6322242f |
59 | createWWW : bool <- CreateWWW; |
60 | if createWWW then |
61 | addWww |
62 | else |
63 | Skip |
64 | end; |
446f4d45 |
65 | |
6322242f |
66 | defAl : bool <- DefaultAlias; |
67 | if defAl then |
68 | addDefaultAlias |
69 | else |
70 | Skip |
71 | end; |
446f4d45 |
72 | |
6322242f |
73 | config |
74 | end; |
9b3f6729 |
75 | |
695b8c37 |
76 | val nameserver = \host -> dns (dnsNS host); |
77 | val dnsIP = \from -> \to -> dns (dnsA from to); |
58751538 |
78 | val dnsIPv6 = \from -> \to -> dns (dnsAAAA from to); |
695b8c37 |
79 | val dnsMail = \num -> \host -> dns (dnsMX num host); |
80 | val dnsAlias = \from -> \to -> dns (dnsCNAME from to); |
d71ae374 |
81 | val dnsDefault = \to -> dns (dnsDefaultA to); |
58751538 |
82 | val dnsDefaultv6 = \to -> dns (dnsDefaultAAAA to); |