dnscontrol: Automate & version control DNS management

This commit is contained in:
Sanchayan Maity 2022-12-08 21:36:28 +05:30
parent b52dedf03d
commit 49d126e023
2 changed files with 72 additions and 0 deletions

3
.gitignore vendored
View File

@ -27,3 +27,6 @@ gnupg/.gnupg/*.d
gnupg/.gnupg/.#*
qutebrowser/.config/qutebrowser/bookmarks/
qutebrowser/.config/qutebrowser/quickmarks
creds.json
*-domains.js
zones/*

69
dnscontrol/dnsconfig.js Normal file
View File

@ -0,0 +1,69 @@
// Providers:
// A “Registrar” is who you register the domain with.
// Start with NONE, which is a provider that never talks to or updates
// the registrar.
var REG_NONE = NewRegistrar('none');
var REG_GANDI = NewRegistrar('gandi');
// Porkbun as a registrar is not supported
// var REG_PORKBUN = NewRegistrar('porkbun');
// Domains:
// A “DnsProvider” is the service that actually provides DNS service (port 53)
// and may be the same or different as the registrar.
var DNS_BIND = NewDnsProvider('bind');
var DNS_DESEC = NewDnsProvider('desec');
D('sanchayanmaity.net', REG_GANDI, DnsProvider(DNS_DESEC),
DefaultTTL("1h"),
A('@', '157.90.118.14'),
CAA("@", "issue", "letsencrypt.org"),
CNAME("git" , "sanchayanmaity.net."),
CNAME("www" , "sanchayanmaity.net."),
MX("@", 10, "in1-smtp.messagingengine.com."),
MX("@", 20, "in2-smtp.messagingengine.com."),
TXT('@', 'v=spf1 include:spf.messagingengine.com ?all'),
TXT('*', 'v=spf1 include:spf.messagingengine.com ?all'),
CNAME("fm1._domainkey", "fm1.sanchayanmaity.net.dkim.fmhosted.com."),
CNAME("fm2._domainkey", "fm2.sanchayanmaity.net.dkim.fmhosted.com."),
CNAME("fm3._domainkey", "fm3.sanchayanmaity.net.dkim.fmhosted.com."),
// Create SRV records for mail service
// ,priority, weight, port, target
SRV('_submission._tcp', 0 , 1, 587, 'smtp.fastmail.com.'),
SRV('_imap._tcp' , 0 , 0, 0 , '.'),
SRV('_imaps._tcp' , 0 , 1, 993, 'imap.fastmail.com.'),
SRV('_pop3._tcp' , 0 , 0, 0 , '.'),
SRV('_pop3s._tcp' , 10, 1, 995, 'pop.fastmail.com.'),
SRV('_jmap._tcp' , 0 , 1, 443, 'api.fastmail.com.'),
SRV('_carddav._tcp' , 0 , 0, 0 , '.'),
SRV('_carddavs._tcp' , 0 , 1, 443, 'carddav.fastmail.com.'),
SRV('_caldav._tcp' , 0 , 0, 0 , '.'),
SRV('_caldavs._tcp' , 0 , 1, 443, 'caldav.fastmail.com.')
);
D('sanchayanmaity.com', REG_NONE, DnsProvider(DNS_DESEC),
DefaultTTL("1h"),
A('@', '157.90.118.14'),
CAA("@", "issue", "letsencrypt.org"),
CNAME("git" , "sanchayanmaity.com."),
CNAME("www" , "sanchayanmaity.com."),
MX("@", 10, "in1-smtp.messagingengine.com."),
MX("@", 20, "in2-smtp.messagingengine.com."),
TXT('@', 'v=spf1 include:spf.messagingengine.com ?all'),
TXT('*', 'v=spf1 include:spf.messagingengine.com ?all'),
CNAME("fm1._domainkey", "fm1.sanchayanmaity.com.dkim.fmhosted.com."),
CNAME("fm2._domainkey", "fm2.sanchayanmaity.com.dkim.fmhosted.com."),
CNAME("fm3._domainkey", "fm3.sanchayanmaity.com.dkim.fmhosted.com."),
// Create SRV records for mail service
// ,priority, weight, port, target
SRV('_submission._tcp', 0 , 1, 587, 'smtp.fastmail.com.'),
SRV('_imap._tcp' , 0 , 0, 0 , '.'),
SRV('_imaps._tcp' , 0 , 1, 993, 'imap.fastmail.com.'),
SRV('_pop3._tcp' , 0 , 0, 0 , '.'),
SRV('_pop3s._tcp' , 10, 1, 995, 'pop.fastmail.com.'),
SRV('_jmap._tcp' , 0 , 1, 443, 'api.fastmail.com.'),
SRV('_carddav._tcp' , 0 , 0, 0 , '.'),
SRV('_carddavs._tcp' , 0 , 1, 443, 'carddav.fastmail.com.'),
SRV('_caldav._tcp' , 0 , 0, 0 , '.'),
SRV('_caldavs._tcp' , 0 , 1, 443, 'caldav.fastmail.com.')
);