1var DSP_CLOUDFLARE = NewDnsProvider("cloudflare");
2var REG_NONE = NewRegistrar("none");
3
4var DZWONEK_IP4 = "94.237.26.47";
5var DZWONEK_IP6 = "2a04:3542:1000:910:6898:1dff:fea1:4b4b";
6var DZWONEK_IPS = [DZWONEK_IP4, DZWONEK_IP6];
7var TRIMOUNTS_IP4 = "159.195.58.28";
8var TRIMOUNTS_IP6 = "2a0a:4cc0:c1:e83d::b00b";
9var TRIMOUNTS_IPS = [TRIMOUNTS_IP4, TRIMOUNTS_IP6];
10
11function host(name, ips, opts) {
12 return [
13 A(name, ips[0], opts),
14 AAAA(name, ips[1], opts),
15 ];
16}
17
18function hosts(_names, ips, opts) {
19 var names = [];
20 if (typeof _names === "string")
21 names.push(_names);
22 else
23 names = _names;
24
25 var records = [];
26 _.each(names, function (name) {
27 _.each(host(name, ips, opts), function (r) {
28 records.push(r);
29 });
30 });
31 return records;
32}
33
34function TRIMOUNTS(names, opts) {
35 return hosts(names, TRIMOUNTS_IPS, opts);
36}
37function DZWONEK(names, opts) {
38 return hosts(names, DZWONEK_IPS, opts);
39}
40
41function IGNORE_ACME() {
42 return IGNORE_NAME("_acme-challenge");
43}
44
45D(
46 "gaze.systems",
47 REG_NONE,
48 DnsProvider(DSP_CLOUDFLARE),
49 DefaultTTL(1),
50 TRIMOUNTS(
51 [
52 "@", "doc", "pmart", "dash", "id",
53 "knot", "spindle",
54 "guestbook",
55 ],
56 CF_PROXY_OFF,
57 ),
58 DZWONEK("vpn", CF_PROXY_OFF),
59 // github pages
60 CNAME("dev", "90-008.github.io."),
61 // fastmail
62 CNAME("fm1._domainkey", "fm1.gaze.systems.dkim.fmhosted.com."),
63 CNAME("fm2._domainkey", "fm2.gaze.systems.dkim.fmhosted.com."),
64 CNAME("fm3._domainkey", "fm3.gaze.systems.dkim.fmhosted.com."),
65 MX("@", 10, "in1-smtp.messagingengine.com."),
66 MX("@", 20, "in2-smtp.messagingengine.com."),
67 TXT("@", "v=spf1 include:spf.messagingengine.com ?all"),
68 TXT("_dmarc", "v=DMARC1; p=reject;"),
69 // resend
70 MX("send.poke", 10, "feedback-smtp.us-east-1.amazonses.com."),
71 TXT(
72 "resend._domainkey.poke",
73 "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8/06F14LZgg7l6eko9GXasUwCBUGHe1Abd5hMg0Xf9ufdUj7lAUB746DS1ErS04oxGEbCdjamkAGqRsYWvk5KGRIXmeYuKyMPFM44U0dt6caHOIr8pHoDj9ytAJD/RS/p1xQZoFXHBxKgAeEY3TUZy7iNLvGxCLkxuPnO7nlWKwIDAQAB",
74 ),
75 TXT("send.poke", "v=spf1 include:amazonses.com ~all"),
76 // atproto
77 TXT("_atproto.eris", "did=did:plc:bxjnsrfzozl365rsdo5yvuz5", TTL(60)),
78 TXT("_atproto.drew", "did=did:plc:vo6ie3kd6xvpjlof4pnb2zzp", TTL(60)),
79 IGNORE_ACME(),
80);
81
82D(
83 "9.0.0.0.8.e.f.1.5.0.7.4.0.1.0.0.2.ip6.arpa",
84 REG_NONE,
85 DnsProvider(DSP_CLOUDFLARE),
86 DefaultTTL(1),
87 TRIMOUNTS("@", CF_PROXY_ON),
88 TXT("@", "a data endpoint for entity with serial id /90008/."),
89 TXT(
90 "@",
91 "entity linked here uses it/that pronouns. it can also be referred to as /dawn/.",
92 ),
93 TXT(
94 "@",
95 "this one is not a human, try to refer to it in third person. use /this one/, /this thing/, etc.",
96 ),
97 TXT(
98 "@",
99 "try connecting to https://gaze.systems/about for more information.",
100 ),
101 IGNORE_ACME(),
102);
103
104D(
105 "poor.dog",
106 REG_NONE,
107 DnsProvider(DSP_CLOUDFLARE),
108 DefaultTTL(1),
109 TRIMOUNTS("@", CF_PROXY_OFF),
110 TXT("@", "v=spf1 -all"),
111 TXT("_dmarc", "v=DMARC1; p=reject;"),
112 TXT("_atproto", "did=did:plc:dfl62fgb7wtjj3fcbb72naae", TTL(60)),
113 IGNORE_ACME(),
114);
115
116var EMAIL_TTL = 86400;
117
118D(
119 "ptr.pet",
120 REG_NONE,
121 DnsProvider(DSP_CLOUDFLARE),
122 DefaultTTL(1),
123 TRIMOUNTS("@", CF_PROXY_OFF),
124 DZWONEK(["nucleus", "trill"], CF_PROXY_OFF),
125 // atproto
126 TXT("_atproto", "did=did:plc:dfl62fgb7wtjj3fcbb72naae"),
127 TXT("_atproto.nil", "did=did:plc:dumbmutt4po52ept2tczimje"),
128 TXT("_atproto.june", "did=did:plc:y3z2rr7q5rywu4fjn3fmfyop"),
129 // june
130 CNAME("june", "girlboss.ceo."),
131 CNAME("*.june", "girlboss.ceo."),
132 // email
133 // verification
134 TXT("@", "hosted-email-verify=zr04ylon", TTL(EMAIL_TTL)),
135
136 MX("@", 10, "aspmx1.migadu.com.", TTL(EMAIL_TTL)),
137 MX("@", 20, "aspmx2.migadu.com.", TTL(EMAIL_TTL)),
138
139 // DKIM
140 CNAME(
141 "key1._domainkey",
142 "key1.ptr.pet._domainkey.migadu.com.",
143 TTL(EMAIL_TTL),
144 ),
145 CNAME(
146 "key2._domainkey",
147 "key2.ptr.pet._domainkey.migadu.com.",
148 TTL(EMAIL_TTL),
149 ),
150 CNAME(
151 "key3._domainkey",
152 "key3.ptr.pet._domainkey.migadu.com.",
153 TTL(EMAIL_TTL),
154 ),
155
156 // SPF
157 TXT("@", "v=spf1 include:spf.migadu.com -all", TTL(EMAIL_TTL)),
158
159 // DMARC
160 TXT(
161 "_dmarc",
162 "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; fo=1; pct=100; rua=mailto:infrastructure@ptr.pet; ruf=mailto:infrastructure@ptr.pet",
163 TTL(EMAIL_TTL),
164 ),
165
166 // configuration
167 TXT(
168 "@",
169 "mailconf=https://autoconfig.migadu.com/mail/config-v1.1.xml",
170 TTL(EMAIL_TTL),
171 ),
172
173 // TLS reporting
174 TXT(
175 "_smtp._tls",
176 "v=TLSRPTv1; rua=mailto:infrastructure@ptr.pet",
177 TTL(EMAIL_TTL),
178 ),
179
180 // mta-sts
181 TRIMOUNTS("mta-sts", CF_PROXY_OFF),
182 TXT("_mta-sts", "v=STSv1; id=20250930T1945", TTL(EMAIL_TTL)),
183
184 // autoconfig
185 TRIMOUNTS(["autoconfig", "autodiscover"], CF_PROXY_OFF),
186
187 // autodiscovery
188 SRV(
189 "_autodiscover._tcp",
190 0,
191 1,
192 443,
193 "autodiscover.migadu.com.",
194 TTL(EMAIL_TTL),
195 ),
196 SRV("_submissions._tcp", 0, 1, 465, "smtp.migadu.com.", TTL(EMAIL_TTL)),
197 SRV("_imaps._tcp", 0, 1, 993, "imap.migadu.com.", TTL(EMAIL_TTL)),
198 SRV("_pop3s._tcp", 0, 1, 995, "pop.migadu.com.", TTL(EMAIL_TTL)),
199
200 IGNORE_ACME(),
201);