From 090d4758ae439a5c38f0be2f643e26c6f37db0ea Mon Sep 17 00:00:00 2001 From: Arxify R <69035413+ArxifyByte@users.noreply.github.com> Date: Mon, 30 Jan 2023 18:22:37 +0100 Subject: [PATCH 01/11] Create arxify.is-cool.dev.json --- domains/arxify.is-cool.dev.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 domains/arxify.is-cool.dev.json diff --git a/domains/arxify.is-cool.dev.json b/domains/arxify.is-cool.dev.json new file mode 100644 index 00000000..b914e548 --- /dev/null +++ b/domains/arxify.is-cool.dev.json @@ -0,0 +1,18 @@ +{ + "$schema": "../schemas/domain.schema.json", + + "description": "A personal website for Arxify (Student & Software Developer)", + + "domain": "is-cool.dev", + "subdomain": "arxify", + + "owner": { + "email": "arxifybusiness@proton.me" + }, + + "record": { + "A": ["https://arxifybyte.github.io/arxify-beta"] + }, + + "proxy": false +} From 9b5a6bd3a8c1e539c5faf9e63c0138bffd584aeb Mon Sep 17 00:00:00 2001 From: Arxify R <69035413+ArxifyByte@users.noreply.github.com> Date: Mon, 30 Jan 2023 18:28:27 +0100 Subject: [PATCH 02/11] Update arxify.is-cool.dev.json --- domains/arxify.is-cool.dev.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domains/arxify.is-cool.dev.json b/domains/arxify.is-cool.dev.json index b914e548..aa4e4158 100644 --- a/domains/arxify.is-cool.dev.json +++ b/domains/arxify.is-cool.dev.json @@ -11,7 +11,7 @@ }, "record": { - "A": ["https://arxifybyte.github.io/arxify-beta"] + "A": ["https://arxifybyte.github.io/arxify-beta"], }, "proxy": false From ea23528b07e1750e68a8fe01f8c4499b31402aa5 Mon Sep 17 00:00:00 2001 From: William Harrison Date: Tue, 31 Jan 2023 07:23:12 +0800 Subject: [PATCH 03/11] fix record --- domains/arxify.is-cool.dev.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domains/arxify.is-cool.dev.json b/domains/arxify.is-cool.dev.json index aa4e4158..513eabab 100644 --- a/domains/arxify.is-cool.dev.json +++ b/domains/arxify.is-cool.dev.json @@ -11,7 +11,7 @@ }, "record": { - "A": ["https://arxifybyte.github.io/arxify-beta"], + "CNAME": "arxifybyte.github.io" }, "proxy": false From b8f663029fe52633c77a05c195c3eca9796ae02a Mon Sep 17 00:00:00 2001 From: William Harrison Date: Tue, 31 Jan 2023 07:25:22 +0800 Subject: [PATCH 04/11] Update arxify.is-cool.dev.json --- domains/arxify.is-cool.dev.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domains/arxify.is-cool.dev.json b/domains/arxify.is-cool.dev.json index 513eabab..4adeedf3 100644 --- a/domains/arxify.is-cool.dev.json +++ b/domains/arxify.is-cool.dev.json @@ -11,7 +11,7 @@ }, "record": { - "CNAME": "arxifybyte.github.io" + "CNAME": "arxifybyte.github.io." }, "proxy": false From b76fa4be4755c5c17553e678ee26725ff84539d1 Mon Sep 17 00:00:00 2001 From: William Harrison Date: Tue, 31 Jan 2023 07:38:11 +0800 Subject: [PATCH 05/11] feat: no longer require dot --- dnsconfig.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dnsconfig.js b/dnsconfig.js index 6affbec1..8738844a 100644 --- a/dnsconfig.js +++ b/dnsconfig.js @@ -72,12 +72,20 @@ for (var idx in domains) { } } + if (!domainData.record.CNAME.endsWith(".")) { + domainData.record.CNAME = domainData.record.CNAME + "."; + } + if (domainData.record.CNAME) { commit[domainData.domain].push( CNAME(domainData.subdomain, domainData.record.CNAME, proxyState) // https://stackexchange.github.io/dnscontrol/js#CNAME ) } - + + if (!domainData.record.MX.endsWith(".")) { + domainData.record.MX = domainData.record.MX + "."; + } + if (domainData.record.MX) { for (var mx in domainData.record.MX) { commit[domainData.domain].push( @@ -86,6 +94,10 @@ for (var idx in domains) { } } + if (!domainData.record.NS.endsWith(".")) { + domainData.record.NS = domainData.record.NS + "."; + } + if (domainData.record.NS) { for (var ns in domainData.record.NS) { commit[domainData.domain].push( From 75a085f2cbee088d9255854f8d437e3718051c9d Mon Sep 17 00:00:00 2001 From: William Harrison Date: Tue, 31 Jan 2023 07:38:59 +0800 Subject: [PATCH 06/11] Update www.is-cool.dev.json --- domains/reserved/www.is-cool.dev.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domains/reserved/www.is-cool.dev.json b/domains/reserved/www.is-cool.dev.json index 46424dad..537d20e2 100644 --- a/domains/reserved/www.is-cool.dev.json +++ b/domains/reserved/www.is-cool.dev.json @@ -11,7 +11,7 @@ }, "record": { - "CNAME": "is-cool.dev." + "CNAME": "is-cool.dev" }, "proxy": false From 34ff439934e455f5c43700a053e54b40ebe79e65 Mon Sep 17 00:00:00 2001 From: andrewstech Date: Tue, 31 Jan 2023 00:00:14 +0000 Subject: [PATCH 07/11] Delete dnsconfig.js --- dnsconfig.js | 120 --------------------------------------------------- 1 file changed, 120 deletions(-) delete mode 100644 dnsconfig.js diff --git a/dnsconfig.js b/dnsconfig.js deleted file mode 100644 index 8738844a..00000000 --- a/dnsconfig.js +++ /dev/null @@ -1,120 +0,0 @@ -var regNone = NewRegistrar("none"); -var providerCf = DnsProvider(NewDnsProvider("cloudflare")); - -var proxy = { // https://stackexchange.github.io/dnscontrol/providers/cloudflare - on: { "cloudflare_proxy": "on" }, - off: { "cloudflare_proxy": "off" } -} - -/** - * Note: glob() is only an internal undocumented helper function (maybe risky). - * - * @param {String} filesPath - * @returns {{ - * name: string, - * data: { - * description: string, - * domain: string, - * subdomain: string, - * owner?: {repo?: string, email?: string}, - * record: {TXT?: string[], A?: string[], AAAA?: string[], CNAME?: string, NS?: string[]}, - * proxy?: boolean - * }}[]} -*/ - -function getDomainsList(filesPath) { - var result = []; - var files = glob.apply(null, [filesPath, true, '.json']); - - for (var i = 0; i < files.length; i++) { - var basename = files[i].split('/').reverse()[0]; - var name = basename.split('.')[0]; - - result.push({name: name, data: require(files[i])}); - } - - return result; -} - -var domains = getDomainsList('./domains'); - -/** - * @type {{}} -*/ - -var commit = {}; - -for (var idx in domains) { - var domainData = domains[idx].data; - var proxyState = proxy.on; // enabled by default - - if (!commit[domainData.domain]) { - commit[domainData.domain] = []; - } - - if (domainData.proxy === false) { - proxyState = proxy.off; - } - - if (domainData.record.A) { - for (var a in domainData.record.A) { - commit[domainData.domain].push( - A(domainData.subdomain, IP(domainData.record.A[a]), proxyState) // https://stackexchange.github.io/dnscontrol/js#A - ) - } - } - - if (domainData.record.AAAA) { - for (var aaaa in domainData.record.AAAA) { - commit[domainData.domain].push( - AAAA(domainData.subdomain, domainData.record.AAAA[aaaa], proxyState) // https://stackexchange.github.io/dnscontrol/js#AAAA - ) - } - } - - if (!domainData.record.CNAME.endsWith(".")) { - domainData.record.CNAME = domainData.record.CNAME + "."; - } - - if (domainData.record.CNAME) { - commit[domainData.domain].push( - CNAME(domainData.subdomain, domainData.record.CNAME, proxyState) // https://stackexchange.github.io/dnscontrol/js#CNAME - ) - } - - if (!domainData.record.MX.endsWith(".")) { - domainData.record.MX = domainData.record.MX + "."; - } - - if (domainData.record.MX) { - for (var mx in domainData.record.MX) { - commit[domainData.domain].push( - MX(domainData.subdomain, 10, domainData.record.MX[mx]) // https://stackexchange.github.io/dnscontrol/js#CNAME - ) - } - } - - if (!domainData.record.NS.endsWith(".")) { - domainData.record.NS = domainData.record.NS + "."; - } - - if (domainData.record.NS) { - for (var ns in domainData.record.NS) { - commit[domainData.domain].push( - NS(domainData.subdomain, domainData.record.NS[ns]) // https://stackexchange.github.io/dnscontrol/js#NS - ) - } - } - - if (domainData.record.TXT) { - for (var txt in domainData.record.TXT) { - commit[domainData.domain].push( - TXT(domainData.subdomain, domainData.record.TXT[txt]) // https://stackexchange.github.io/dnscontrol/js#TXT - ) - } - } -} - -for (var domainName in commit) { - D(domainName, regNone, providerCf, commit[domainName]); -} From 531dea44c04a6450ab2f84def48d4f2471e8ebfc Mon Sep 17 00:00:00 2001 From: andrewstech Date: Tue, 31 Jan 2023 00:00:57 +0000 Subject: [PATCH 08/11] Create dnsconfig.js --- dnsconfig.js | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 dnsconfig.js diff --git a/dnsconfig.js b/dnsconfig.js new file mode 100644 index 00000000..6affbec1 --- /dev/null +++ b/dnsconfig.js @@ -0,0 +1,108 @@ +var regNone = NewRegistrar("none"); +var providerCf = DnsProvider(NewDnsProvider("cloudflare")); + +var proxy = { // https://stackexchange.github.io/dnscontrol/providers/cloudflare + on: { "cloudflare_proxy": "on" }, + off: { "cloudflare_proxy": "off" } +} + +/** + * Note: glob() is only an internal undocumented helper function (maybe risky). + * + * @param {String} filesPath + * @returns {{ + * name: string, + * data: { + * description: string, + * domain: string, + * subdomain: string, + * owner?: {repo?: string, email?: string}, + * record: {TXT?: string[], A?: string[], AAAA?: string[], CNAME?: string, NS?: string[]}, + * proxy?: boolean + * }}[]} +*/ + +function getDomainsList(filesPath) { + var result = []; + var files = glob.apply(null, [filesPath, true, '.json']); + + for (var i = 0; i < files.length; i++) { + var basename = files[i].split('/').reverse()[0]; + var name = basename.split('.')[0]; + + result.push({name: name, data: require(files[i])}); + } + + return result; +} + +var domains = getDomainsList('./domains'); + +/** + * @type {{}} +*/ + +var commit = {}; + +for (var idx in domains) { + var domainData = domains[idx].data; + var proxyState = proxy.on; // enabled by default + + if (!commit[domainData.domain]) { + commit[domainData.domain] = []; + } + + if (domainData.proxy === false) { + proxyState = proxy.off; + } + + if (domainData.record.A) { + for (var a in domainData.record.A) { + commit[domainData.domain].push( + A(domainData.subdomain, IP(domainData.record.A[a]), proxyState) // https://stackexchange.github.io/dnscontrol/js#A + ) + } + } + + if (domainData.record.AAAA) { + for (var aaaa in domainData.record.AAAA) { + commit[domainData.domain].push( + AAAA(domainData.subdomain, domainData.record.AAAA[aaaa], proxyState) // https://stackexchange.github.io/dnscontrol/js#AAAA + ) + } + } + + if (domainData.record.CNAME) { + commit[domainData.domain].push( + CNAME(domainData.subdomain, domainData.record.CNAME, proxyState) // https://stackexchange.github.io/dnscontrol/js#CNAME + ) + } + + if (domainData.record.MX) { + for (var mx in domainData.record.MX) { + commit[domainData.domain].push( + MX(domainData.subdomain, 10, domainData.record.MX[mx]) // https://stackexchange.github.io/dnscontrol/js#CNAME + ) + } + } + + if (domainData.record.NS) { + for (var ns in domainData.record.NS) { + commit[domainData.domain].push( + NS(domainData.subdomain, domainData.record.NS[ns]) // https://stackexchange.github.io/dnscontrol/js#NS + ) + } + } + + if (domainData.record.TXT) { + for (var txt in domainData.record.TXT) { + commit[domainData.domain].push( + TXT(domainData.subdomain, domainData.record.TXT[txt]) // https://stackexchange.github.io/dnscontrol/js#TXT + ) + } + } +} + +for (var domainName in commit) { + D(domainName, regNone, providerCf, commit[domainName]); +} From c4e0006d21f21f6f961dd6138f228a6708e0dc98 Mon Sep 17 00:00:00 2001 From: William Harrison Date: Tue, 31 Jan 2023 08:35:48 +0800 Subject: [PATCH 09/11] fix: cname --- domains/reserved/www.is-cool.dev.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domains/reserved/www.is-cool.dev.json b/domains/reserved/www.is-cool.dev.json index 537d20e2..46424dad 100644 --- a/domains/reserved/www.is-cool.dev.json +++ b/domains/reserved/www.is-cool.dev.json @@ -11,7 +11,7 @@ }, "record": { - "CNAME": "is-cool.dev" + "CNAME": "is-cool.dev." }, "proxy": false From a4c3057d121e1871d9a56fbaf34f10c5f5ee6f45 Mon Sep 17 00:00:00 2001 From: hackermon Date: Tue, 31 Jan 2023 08:59:16 -0500 Subject: [PATCH 10/11] Create hmon.localplayer.dev.json --- domains/hmon.localplayer.dev.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 domains/hmon.localplayer.dev.json diff --git a/domains/hmon.localplayer.dev.json b/domains/hmon.localplayer.dev.json new file mode 100644 index 00000000..5c69089b --- /dev/null +++ b/domains/hmon.localplayer.dev.json @@ -0,0 +1,17 @@ +{ + "$schema": "../schemas/domain.schema.json", + "description": "personal web proxy service", + + "domain": "localplayer.dev", + "subdomain": "hmon", + + "owner": { + "email": "daniel@daniel.is-a.dev" + }, + + "record": { + "CNAME": "hmon.gives", + }, + + "proxy": false +} From 395e4b682271afb9f60219446f227041a179952b Mon Sep 17 00:00:00 2001 From: hackermon Date: Tue, 31 Jan 2023 09:01:42 -0500 Subject: [PATCH 11/11] full stop to CNAME. --- domains/hmon.localplayer.dev.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domains/hmon.localplayer.dev.json b/domains/hmon.localplayer.dev.json index 5c69089b..3ce43954 100644 --- a/domains/hmon.localplayer.dev.json +++ b/domains/hmon.localplayer.dev.json @@ -10,7 +10,7 @@ }, "record": { - "CNAME": "hmon.gives", + "CNAME": "hmon.gives.", }, "proxy": false