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