diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index e7eb65913..46ec6ab67 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,16 +1,21 @@ - + ## Requirements -Unless explicitly specified otherwise by a **maintainer** or in the requirement description, your domain must pass **ALL** the indicated requirements above. +Unless explicitly specified otherwise by a **maintainer** or in the requirement description, your domain **MUST** pass **ALL** the indicated requirements below. -Please note that we reserve the rights not to accept any domain at our own discretion. + +- [ ] I have **read** and **understood** the [Terms of Service](https://is-a.dev/terms). +- [ ] My domain is **not** for commercial use. +- [ ] My file is in the `domains` folder and is in the JSON format. +- [ ] My file's name is all lowercased and alphanumeric. +- [ ] The website is **reachable**. +- [ ] I have **completed** my website. +- [ ] My website is related to **software development**. +- [ ] I have provided contact information in the `owner` key. +- [ ] I have **followed** the [documentation](https://docs.is-a.dev). +- [ ] I understand my domain may be removed if I violate the [Terms of Service](https://is-a.dev/terms). -- [ ] The file is in the `domains` folder and is in the JSON format. -- [ ] The file's name is all lowercased and alphanumeric. -- [ ] You have completed your website. -- [ ] The website is reachable. -- [ ] The CNAME record doesn't contain `https://` or `/`. -- [ ] There is sufficient information at the `owner` field. - -## Website Link/Preview - +## Website Preview + diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9622ebd4a..ac9c92abd 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -21,10 +21,15 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Run tests + run: | + npm install + npx ava tests/*.test.js + - name: Generate creds.json run: echo '{"cloudflare":{"TYPE":"CLOUDFLAREAPI","apitoken":"$CLOUDFLARE_API_TOKEN"}}' > ./creds.json - - name: Publish + - name: Push DNS records uses: is-a-dev/dnscontrol-action@main env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index f24d6052d..fa0fa8f5f 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -19,14 +19,13 @@ concurrency: cancel-in-progress: true jobs: - dns: - name: DNS + dnscontrol: + name: DNSControl runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Check - uses: is-a-dev/dnscontrol-action@main + - uses: is-a-dev/dnscontrol-action@main with: args: check @@ -38,5 +37,4 @@ jobs: - run: npm install - - name: Run tests - run: npx ava tests/*.test.js + - run: npx ava tests/*.test.js diff --git a/dnsconfig.js b/dnsconfig.js index 5ee924a87..3cd55b011 100644 --- a/dnsconfig.js +++ b/dnsconfig.js @@ -29,18 +29,14 @@ for (var subdomain in domains) { // Handle A records if (domainData.record.A) { for (var a in domainData.record.A) { - records.push( - A(subdomainName, IP(domainData.record.A[a]), proxyState) - ); + records.push(A(subdomainName, IP(domainData.record.A[a]), proxyState)); } } // Handle AAAA records if (domainData.record.AAAA) { for (var aaaa in domainData.record.AAAA) { - records.push( - AAAA(subdomainName, domainData.record.AAAA[aaaa], proxyState) - ); + records.push(AAAA(subdomainName, domainData.record.AAAA[aaaa], proxyState)); } } @@ -48,29 +44,14 @@ for (var subdomain in domains) { if (domainData.record.CAA) { for (var caa in domainData.record.CAA) { var caaRecord = domainData.record.CAA[caa]; - records.push( - CAA( - subdomainName, - caaRecord.flags, - caaRecord.tag, - caaRecord.value - ) - ); + records.push(CAA(subdomainName, caaRecord.tag, caaRecord.value)); } } // Handle CNAME records if (domainData.record.CNAME) { - // Allow CNAME record on root - if (subdomainName === "@") { - records.push( - ALIAS(subdomainName, domainData.record.CNAME + ".", proxyState) - ); - } else { - records.push( - CNAME(subdomainName, domainData.record.CNAME + ".", proxyState) - ); - } + // Use ALIAS instead of CNAME to support CNAME flattening on the root domain + records.push(ALIAS(subdomainName, domainData.record.CNAME + ".", proxyState)); } // Handle DS records @@ -78,13 +59,7 @@ for (var subdomain in domains) { for (var ds in domainData.record.DS) { var dsRecord = domainData.record.DS[ds]; records.push( - DS( - subdomainName, - dsRecord.key_tag, - dsRecord.algorithm, - dsRecord.digest_type, - dsRecord.digest - ) + DS(subdomainName, dsRecord.key_tag, dsRecord.algorithm, dsRecord.digest_type, dsRecord.digest) ); } } @@ -92,13 +67,7 @@ for (var subdomain in domains) { // Handle MX records if (domainData.record.MX) { for (var mx in domainData.record.MX) { - records.push( - MX( - subdomainName, - 10 + parseInt(mx), - domainData.record.MX[mx] + "." - ) - ); + records.push(MX(subdomainName, 10 + parseInt(mx), domainData.record.MX[mx] + ".")); } } @@ -114,13 +83,7 @@ for (var subdomain in domains) { for (var srv in domainData.record.SRV) { var srvRecord = domainData.record.SRV[srv]; records.push( - SRV( - subdomainName, - srvRecord.priority, - srvRecord.weight, - srvRecord.port, - srvRecord.target + "." - ) + SRV(subdomainName, srvRecord.priority, srvRecord.weight, srvRecord.port, srvRecord.target + ".") ); } } diff --git a/domains/256javy.json b/domains/256javy.json new file mode 100644 index 000000000..08d4f614c --- /dev/null +++ b/domains/256javy.json @@ -0,0 +1,10 @@ +{ + "repo": "https://github.com/256javy/256javy.github.io", + "owner": { + "username": "256javy", + "email": "256javiervillalba@gmail.com" + }, + "record": { + "CNAME": "256javy.github.io" + } +} diff --git a/domains/_atproto.horibyte.json b/domains/_atproto.horibyte.json new file mode 100644 index 000000000..98cc66879 --- /dev/null +++ b/domains/_atproto.horibyte.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "horibyte", + "email": "thehoribyte@gmail.com" + }, + "record": { + "TXT": "did=did:plc:5ls3iv54vrppjxbs5ztocd75" + } +} diff --git a/domains/_atproto.lumi.json b/domains/_atproto.lumi.json new file mode 100644 index 000000000..7c80a4563 --- /dev/null +++ b/domains/_atproto.lumi.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "itsFatlum", + "email": "fatlum@lumi.is-a.dev" + }, + "record": { + "TXT": "did=did:plc:c6m5rghb7tkmf5isd3pqjpbt" + } +} diff --git a/domains/_atproto.raccoon.json b/domains/_atproto.raccoon.json new file mode 100644 index 000000000..2fdc4f971 --- /dev/null +++ b/domains/_atproto.raccoon.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "nilsraccoon", + "discord": "1129507464589627512" + }, + "record": { + "TXT": "did=did:plc:25w7vwbzb2e3h7cnflqskp37" + } +} diff --git a/domains/_discord.jeff.json b/domains/_discord.jeff.json new file mode 100644 index 000000000..0962f55b7 --- /dev/null +++ b/domains/_discord.jeff.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "PentSec", + "email": "jeffreysfu@gmail.com" + }, + "record": { + "TXT": "dh=674aa7264cbcffb1d24dd630c38f8613ad822824" + } +} \ No newline at end of file diff --git a/domains/_discord.krunch.json b/domains/_discord.krunch.json index 1a376298a..200efe570 100644 --- a/domains/_discord.krunch.json +++ b/domains/_discord.krunch.json @@ -1,7 +1,7 @@ { "owner": { "username": "RadioactivePotato", - "discord": "krunchiekrunch._." + "discord": "1166013268008120340" }, "record": { "TXT": "dh=df2bf9fb87a1dc3ee29c6ddfa51ed86da28581c5" diff --git a/domains/_dmarc.104.json b/domains/_dmarc.104.json new file mode 100644 index 000000000..f1c3b4518 --- /dev/null +++ b/domains/_dmarc.104.json @@ -0,0 +1,10 @@ +{ + "description": "DMARC", + "owner": { + "username": "QuinceTart10", + "discord": "862644161156218891" + }, + "record": { + "TXT": "v=DMARC1; p=quarantine; sp=none; adkim=r; aspf=r; fo=1; rua=mailto:me@quincetart10.is-a.dev; ruf=mailto:me@quincetart10.is-a.dev; rf=afrf; pct=100; ri=86400" + } +} diff --git a/domains/_dmarc.quincetart10.json b/domains/_dmarc.quincetart10.json new file mode 100644 index 000000000..f1c3b4518 --- /dev/null +++ b/domains/_dmarc.quincetart10.json @@ -0,0 +1,10 @@ +{ + "description": "DMARC", + "owner": { + "username": "QuinceTart10", + "discord": "862644161156218891" + }, + "record": { + "TXT": "v=DMARC1; p=quarantine; sp=none; adkim=r; aspf=r; fo=1; rua=mailto:me@quincetart10.is-a.dev; ruf=mailto:me@quincetart10.is-a.dev; rf=afrf; pct=100; ri=86400" + } +} diff --git a/domains/_dmarc.rt10.json b/domains/_dmarc.rt10.json new file mode 100644 index 000000000..f1c3b4518 --- /dev/null +++ b/domains/_dmarc.rt10.json @@ -0,0 +1,10 @@ +{ + "description": "DMARC", + "owner": { + "username": "QuinceTart10", + "discord": "862644161156218891" + }, + "record": { + "TXT": "v=DMARC1; p=quarantine; sp=none; adkim=r; aspf=r; fo=1; rua=mailto:me@quincetart10.is-a.dev; ruf=mailto:me@quincetart10.is-a.dev; rf=afrf; pct=100; ri=86400" + } +} diff --git a/domains/_gh-is-a-dev-docs-o.docs.json b/domains/_gh-is-a-dev-docs-o.docs.json new file mode 100644 index 000000000..077a631e7 --- /dev/null +++ b/domains/_gh-is-a-dev-docs-o.docs.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "is-a-dev", + "email": "admin@is-a.dev" + }, + "record": { + "TXT": "2aeb08f313" + } +} diff --git a/domains/_gh-is-a-dev-docs-o.json b/domains/_gh-is-a-dev-docs-o.json new file mode 100644 index 000000000..627d1c417 --- /dev/null +++ b/domains/_gh-is-a-dev-docs-o.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "is-a-dev", + "email": "admin@is-a.dev" + }, + "record": { + "TXT": "30e221e0a1" + } +} diff --git a/domains/_gh-juststudio7-o.juststudio.json b/domains/_gh-juststudio7-o.juststudio.json new file mode 100644 index 000000000..b73ca4a8b --- /dev/null +++ b/domains/_gh-juststudio7-o.juststudio.json @@ -0,0 +1,13 @@ +{ + "description": "JustStudio.", + "owner": { + "username": "JustDeveloper1", + "email": "support@juststudio.is-a.dev", + "discord": "1117482901353812088" + }, + "record": { + "TXT": [ + "d878bca923" + ] + } +} diff --git a/domains/_github-pages-challenge-256javy.256javy.json b/domains/_github-pages-challenge-256javy.256javy.json new file mode 100644 index 000000000..1f8b2a198 --- /dev/null +++ b/domains/_github-pages-challenge-256javy.256javy.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "256javy", + "email": "256javiervillalba@gmail.com" + }, + "record": { + "TXT": "5274c84dbbf074d67b53fc4305ced5" + } +} diff --git a/domains/_github-pages-challenge-devhammed.hammed.json b/domains/_github-pages-challenge-devhammed.hammed.json new file mode 100644 index 000000000..44413c068 --- /dev/null +++ b/domains/_github-pages-challenge-devhammed.hammed.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "devhammed", + "email": "hey@hammed.dev" + }, + "record": { + "TXT": "7672b068b3140a9fbaaf9bfe0ab136" + } +} diff --git a/domains/_github-pages-challenge-ethereumvd.ethereumvd.json b/domains/_github-pages-challenge-ethereumvd.ethereumvd.json new file mode 100644 index 000000000..bab8f5bc7 --- /dev/null +++ b/domains/_github-pages-challenge-ethereumvd.ethereumvd.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ethereumvd", + "email": "ethereum249@gmail.com" + }, + "record": { + "TXT": "acffd9c330d027fef82987d6dd8b4e" + } +} diff --git a/domains/_github-pages-challenge-is-a-dev-docs.docs.json b/domains/_github-pages-challenge-is-a-dev-docs.docs.json new file mode 100644 index 000000000..68c26dcdc --- /dev/null +++ b/domains/_github-pages-challenge-is-a-dev-docs.docs.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "is-a-dev", + "email": "admin@is-a.dev" + }, + "record": { + "TXT": "18b49a8904257ea06c3595614d9a4e" + } +} diff --git a/domains/_github-pages-challenge-manugeni.manugeni.json b/domains/_github-pages-challenge-manugeni.manugeni.json new file mode 100644 index 000000000..e19b0b538 --- /dev/null +++ b/domains/_github-pages-challenge-manugeni.manugeni.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "manugeni", + "email": "rendaniman@outlook.com" + }, + "record": { + "TXT": "c43b4f0460a8d8b9c05affa2da77ef" + } +} diff --git a/domains/_github-pages-challenge-narasimapandiyan.narasima.json b/domains/_github-pages-challenge-narasimapandiyan.narasima.json new file mode 100644 index 000000000..8b779a899 --- /dev/null +++ b/domains/_github-pages-challenge-narasimapandiyan.narasima.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "NarasimaPandiyan", + "email": "cs42059@gmail.com" + }, + "record": { + "TXT": "0cd2fb39489f7652da9a4942df4a75" + } +} diff --git a/domains/_github-pages-challenge-pentsec.jeff.json b/domains/_github-pages-challenge-pentsec.jeff.json new file mode 100644 index 000000000..fe5225e38 --- /dev/null +++ b/domains/_github-pages-challenge-pentsec.jeff.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "PentSec", + "email": "jeffreysfu@gmail.com" + }, + "record": { + "TXT": "c1f0e5d392a06b64a632b42f794b1a" + } +} \ No newline at end of file diff --git a/domains/_github-pages-challenge-radioactivepotato.krunch.json b/domains/_github-pages-challenge-radioactivepotato.krunch.json index f8c99bf1d..2ddd73ce0 100644 --- a/domains/_github-pages-challenge-radioactivepotato.krunch.json +++ b/domains/_github-pages-challenge-radioactivepotato.krunch.json @@ -1,7 +1,7 @@ { "owner": { "username": "RadioactivePotato", - "discord": "krunchiekrunch._." + "discord": "1166013268008120340" }, "record": { "TXT": "05dc6febabf44f8decab35d01609ee" diff --git a/domains/_github-pages-challenge-ramanandkrgupta.ramanand.json b/domains/_github-pages-challenge-ramanandkrgupta.ramanand.json new file mode 100644 index 000000000..7ea91e9c2 --- /dev/null +++ b/domains/_github-pages-challenge-ramanandkrgupta.ramanand.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ramanandkrgupta", + "email": "ramanand@myyahoo.com" + }, + "record": { + "TXT": "07cd3e879dce98546f212f494f50da" + } +} diff --git a/domains/_vercel.app.vyductan.json b/domains/_vercel.app.vyductan.json new file mode 100644 index 000000000..6904ef7ee --- /dev/null +++ b/domains/_vercel.app.vyductan.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "vyductan", + "email": "vdt5snet@gmail.com", + "discord": "370012050316984321" + }, + "record": { + "TXT": "vc-domain-verify=*.vyductan.is-a.dev,f7fc15db084fa96cf967" + } +} diff --git a/domains/_vercel.blog.jumanji.json b/domains/_vercel.blog.jumanji.json new file mode 100644 index 000000000..d82ad7099 --- /dev/null +++ b/domains/_vercel.blog.jumanji.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "heyjumanji" + }, + "record": { + "TXT": ["vc-domain-verify=blog.jumanji.is-a.dev,27db21bc7b1a8b952003"] + } +} diff --git a/domains/_vercel.deadshot.json b/domains/_vercel.deadshot.json new file mode 100644 index 000000000..8c2959e8b --- /dev/null +++ b/domains/_vercel.deadshot.json @@ -0,0 +1,12 @@ +{ + "description": "A simple portfolio template made by me.", + "repo": "https://github.com/deadshotofficial/minimal-portfolio", + "owner": { + "username": "deadshotofficial", + "email": "deadshot3r@pm.me", + "discord": "416952474587496449" + }, + "record": { + "TXT": "vc-domain-verify=deadshot.is-a.dev,5bc34658e6351c74153c" + } +} diff --git a/domains/_vercel.dhika.json b/domains/_vercel.dhika.json new file mode 100644 index 000000000..f73592c19 --- /dev/null +++ b/domains/_vercel.dhika.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "thisisdhika", + "email": "dhikaardana87@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=dhika.is-a.dev,3b4f3c565c41289d2f66" + } +} \ No newline at end of file diff --git a/domains/_vercel.ebooks.json b/domains/_vercel.ebooks.json new file mode 100644 index 000000000..440fdeaf2 --- /dev/null +++ b/domains/_vercel.ebooks.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "tuannguyen2002", + "email": "", + "discord": "minhtuan9039" + }, + "record": { + "TXT": "vc-domain-verify=ebooks.is-a.dev,5fa4e0aa7b17c9f52a9d" + } +} diff --git a/domains/_vercel.fabien.json b/domains/_vercel.fabien.json new file mode 100644 index 000000000..73c8d7fb0 --- /dev/null +++ b/domains/_vercel.fabien.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "fabien-h", + "email": "fabien.huet@gmail.com", + "discord": "fabien_huet" + }, + "record": { + "TXT": "vc-domain-verify=fabien.is.a.dev,65d8329499551546ef22" + } +} diff --git a/domains/_vercel.felipe.json b/domains/_vercel.felipe.json new file mode 100644 index 000000000..354af504a --- /dev/null +++ b/domains/_vercel.felipe.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "felipecalderon", + "email": "hola@felipe.bio" + }, + "record": { + "TXT": ["vc-domain-verify=felipe.is-a.dev,07f2247f0a80372e5d48"] + } + } + \ No newline at end of file diff --git a/domains/_vercel.guidocaru.json b/domains/_vercel.guidocaru.json new file mode 100644 index 000000000..8ce33f45b --- /dev/null +++ b/domains/_vercel.guidocaru.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "guidocaru", + "discord": "696554384817127486" + }, + "record": { + "TXT": "vc-domain-verify=guidocaru.is-a.dev,6106f8de674c39bfb732" + } +} diff --git a/domains/_vercel.harshshah.json b/domains/_vercel.harshshah.json new file mode 100644 index 000000000..cc345b0c9 --- /dev/null +++ b/domains/_vercel.harshshah.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "harshshah-codes", + "email": "harshshah.dev@gmail.com", + "discord": "889700837520199761" + }, + "record": { + "TXT": "vc-domain-verify=harshshah.is-a.dev,42f8ad923b9e4a9aa010" + } +} diff --git a/domains/_vercel.jemalahmedov.json b/domains/_vercel.jemalahmedov.json new file mode 100644 index 000000000..677fb7916 --- /dev/null +++ b/domains/_vercel.jemalahmedov.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "jimjja", + "email": "jemalja.dev@gmail.com", + "discord": "665635903955533845" + }, + "record": { + "TXT": "vc-domain-verify=jemalahmedov.is-a.dev,3f41428af72725b71a10" + } +} diff --git a/domains/_vercel.jorge-lopz.json b/domains/_vercel.jorge-lopz.json new file mode 100644 index 000000000..551776f98 --- /dev/null +++ b/domains/_vercel.jorge-lopz.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "Jorge-lopz", + "email": "jlpenero2005@gmail.com", + "discord": "713831494761840753" + }, + "record": { + "TXT": "vc-domain-verify=jorge-lopz.is-a.dev,5bfcd4cedc07714c2319" + } +} diff --git a/domains/_vercel.juan-morales.json b/domains/_vercel.juan-morales.json new file mode 100644 index 000000000..c74476673 --- /dev/null +++ b/domains/_vercel.juan-morales.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "Juanmorales1810", + "email": "juan.exequiel.morales@gmail.com", + "discord": "746910653343596574" + }, + "record": { + "TXT": "vc-domain-verify=juan-morales.is-a.dev,ccd6e4ba9d4b2196b5f7" + } +} diff --git a/domains/_vercel.jumanji.json b/domains/_vercel.jumanji.json index d82ad7099..cf5987dea 100644 --- a/domains/_vercel.jumanji.json +++ b/domains/_vercel.jumanji.json @@ -1,8 +1,9 @@ { - "owner": { - "username": "heyjumanji" - }, - "record": { - "TXT": ["vc-domain-verify=blog.jumanji.is-a.dev,27db21bc7b1a8b952003"] - } + "owner": { + "username": "heyjumanji", + "email": "madhuchutiya.unhinge50@silomails.com" + }, + "record": { + "TXT": "vc-domain-verify=jumanji.is-a.dev,291766e76a7ab5de1bc7" + } } diff --git a/domains/_vercel.lobo.json b/domains/_vercel.lobo.json new file mode 100644 index 000000000..01c0e7920 --- /dev/null +++ b/domains/_vercel.lobo.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Lobooooooo14", + "discord": "783120232134082580" + }, + "record": { + "TXT": "vc-domain-verify=lobo.is-a.dev,aa27648658caa1c96bb8" + } +} diff --git a/domains/_vercel.maanripe.json b/domains/_vercel.maanripe.json new file mode 100644 index 000000000..ed7cec914 --- /dev/null +++ b/domains/_vercel.maanripe.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "argkont", + "email": "kohacaelo+is-a-dev@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=maanripe.is-a.dev,58b3a98b581598b3f572" + } +} diff --git a/domains/_vercel.maheshpaul.json b/domains/_vercel.maheshpaul.json new file mode 100644 index 000000000..0043881ee --- /dev/null +++ b/domains/_vercel.maheshpaul.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "maheshpaulj", + "email": "mahesh.paul.j@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=maheshpaul.is-a.dev,a6be9b77a63b6d4c8cd6" + } +} diff --git a/domains/_vercel.muthomi.json b/domains/_vercel.muthomi.json new file mode 100644 index 000000000..bc371aa55 --- /dev/null +++ b/domains/_vercel.muthomi.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "michaelmuthomi", + "email": "", + "discord": "michaelgikunda" + }, + "record": { + "TXT": "vc-domain-verify=muthomi.is-a.dev,9e31bd88e28832c37f97" + } +} diff --git a/domains/_vercel.mzaman.json b/domains/_vercel.mzaman.json new file mode 100644 index 000000000..a66f070e0 --- /dev/null +++ b/domains/_vercel.mzaman.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "mirzazaman", + "email": "mirzazaman828@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=mzaman.is-a.dev,23ba156f3878cfc860f7" + } +} \ No newline at end of file diff --git a/domains/_vercel.n.json b/domains/_vercel.n.json deleted file mode 100644 index e93beb20b..000000000 --- a/domains/_vercel.n.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "syedtahseen", - "email": "itxtahseen@gmail.com" - }, - "record": { - "TXT": ["vc-domain-verify=n.is-a.dev,8435c76be2d4e8aaa229"] - } -} diff --git a/domains/_vercel.namansrivastava.json b/domains/_vercel.namansrivastava.json new file mode 100644 index 000000000..5cc5e18db --- /dev/null +++ b/domains/_vercel.namansrivastava.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "naman-0804", + "email": "namansrivastava1608@gmail.com", + "discord": "naman_1101" + }, + "record": { + "TXT": "vc-domain-verify=namansrivastava.is-a.dev,7b128b70cd9aae28bf1c" + } +} diff --git a/domains/_vercel.nguyenminhtuan.json b/domains/_vercel.nguyenminhtuan.json new file mode 100644 index 000000000..8a846ef4a --- /dev/null +++ b/domains/_vercel.nguyenminhtuan.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "tuannguyen2002", + "email": "", + "discord": "minhtuan9039" + }, + "record": { + "TXT": "vc-domain-verify=nguyenminhtuan.is-a.dev,2910b5006f1f208b05e6" + } +} diff --git a/domains/_vercel.peme969.json b/domains/_vercel.peme969.json new file mode 100644 index 000000000..0abe61db6 --- /dev/null +++ b/domains/_vercel.peme969.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "peme969", + "email": "mrcoderpeme@gmail.com" + }, + "record": { + "TXT":[ + "vc-domain-verify=beta.peme969.is-a.dev,3478ddbc826d30476c3c" + ] + } +} \ No newline at end of file diff --git a/domains/_vercel.princeprajapati.json b/domains/_vercel.princeprajapati.json index 827de3b7f..0fd5b463f 100644 --- a/domains/_vercel.princeprajapati.json +++ b/domains/_vercel.princeprajapati.json @@ -1,9 +1,9 @@ { - "owner": { - "username": "notreallyprince", - "email": "prince30112001@gmail.com" - }, - "record": { - "TXT": "vc-domain-verify=princeprajapati.is-a.dev,9b919407776e11ecff7a" + "owner": { + "username": "notreallyprince", + "email": "prince30112001@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=princeprajapati.is-a.dev,f0d9843f925488ed34bb" } -} +} \ No newline at end of file diff --git a/domains/_vercel.raghu.json b/domains/_vercel.raghu.json new file mode 100644 index 000000000..01d30a211 --- /dev/null +++ b/domains/_vercel.raghu.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "raghu-8", + "email": "raghu.project.websites@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=raghu.is-a.dev,64be76cc9f11decf61dd" + } +} diff --git a/domains/_vercel.ranjityadav.json b/domains/_vercel.ranjityadav.json new file mode 100644 index 000000000..1629bcb21 --- /dev/null +++ b/domains/_vercel.ranjityadav.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "13yadav", + "email": "yadavranjit521@gmail.com", + "discord": "529604454908035083" + }, + "record": { + "TXT": "vc-domain-verify=ranjityadav.is-a.dev,998da4bd1970d94d6c43" + } +} diff --git a/domains/_vercel.ronaldo.json b/domains/_vercel.ronaldo.json new file mode 100644 index 000000000..59dcce99d --- /dev/null +++ b/domains/_vercel.ronaldo.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ronaldoao", + "email": "ronaldoa.ojeda@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=ronaldo.is-a.dev,bba2427440502a716d1c" + } +} diff --git a/domains/_vercel.samishoukat.json b/domains/_vercel.samishoukat.json new file mode 100644 index 000000000..df08f3129 --- /dev/null +++ b/domains/_vercel.samishoukat.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "samishoukat12", + "email": "samishoukat12@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=samishoukat.is-a.dev,f7c3cb972c650104d507" + } + } \ No newline at end of file diff --git a/domains/_vercel.sebastianriveros.json b/domains/_vercel.sebastianriveros.json new file mode 100644 index 000000000..dda9cf731 --- /dev/null +++ b/domains/_vercel.sebastianriveros.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "wisauw", + "email": "riveross92@gmail.com", + "discord": "313046852415258625" + }, + "record": { + "TXT": "vc-domain-verify=sebastianriveros.is-a.dev,be3bca98d22aab14d046" + } +} diff --git a/domains/_vercel.skibidi.json b/domains/_vercel.skibidi.json new file mode 100644 index 000000000..cbb01c6af --- /dev/null +++ b/domains/_vercel.skibidi.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "bananaking6", + "email": "", + "discord": "skibidibagel" + }, + "record": { + "TXT": "vc-domain-verify=bundler.skibidi.is-a.dev,0ed5e66158d45b6bd83d" + } +} diff --git a/domains/_vercel.usmanbaig.json b/domains/_vercel.usmanbaig.json new file mode 100644 index 000000000..2cc27102c --- /dev/null +++ b/domains/_vercel.usmanbaig.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "UsmanBaig001", + "email": "usmanbaig1572@gmail.com" + }, + "record": { + "TXT": "vc-domain-verify=usmanbaig.is-a.dev,c2f96e70ebd3aef5458b" + } + } \ No newline at end of file diff --git a/domains/_vercel.vyductan.json b/domains/_vercel.vyductan.json new file mode 100644 index 000000000..7088311dc --- /dev/null +++ b/domains/_vercel.vyductan.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "vyductan", + "email": "vdt5snet@gmail.com", + "discord": "370012050316984321" + }, + "record": { + "TXT": "vc-domain-verify=vyductan.is-a.dev,55a7295a416ad7fd8e1f" + } +} diff --git a/domains/_vercel.willymateo.json b/domains/_vercel.willymateo.json new file mode 100644 index 000000000..e04aa1f68 --- /dev/null +++ b/domains/_vercel.willymateo.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "willymateo", + "email": "matheoowilly@gmail.com", + "discord": "willycocolon" + }, + "record": { + "TXT": "vc-domain-verify=willymateo.is-a.dev,6c7018f1721c84a520df" + } +} diff --git a/domains/aaditya.json b/domains/aaditya.json new file mode 100644 index 000000000..5db37d8c2 --- /dev/null +++ b/domains/aaditya.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "aaditya2200", + "email": "aaditya2200@gmail.com" + }, + "record": { + "CNAME": "aaditya2200.github.io" + } +} diff --git a/domains/aaron.json b/domains/aaron.json new file mode 100644 index 000000000..721474eb1 --- /dev/null +++ b/domains/aaron.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "AaronPerezPerez", + "email": "aarperper@gmail.com" + }, + "record": { + "CNAME": "terminal-portfolio-h80h9v8ub-aaronperezperez.vercel.app" + } +} diff --git a/domains/aasoft.json b/domains/aasoft.json new file mode 100644 index 000000000..7a1b6c67c --- /dev/null +++ b/domains/aasoft.json @@ -0,0 +1,10 @@ +{ + "description": "alireza mohebbi threejs project - aasoft.ir", + "owner": { + "username": "aasoftir", + "email": "aasoftmohebbi@gmail.com" + }, + "record": { + "URL": "https://glitch-text-threejs.vercel.app/" + } +} diff --git a/domains/abdi.json b/domains/abdi.json new file mode 100644 index 000000000..4734115bf --- /dev/null +++ b/domains/abdi.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "abdiopp", + "email": "ginnieabdullah007@gmail.com" + }, + "record": { + "CNAME": "abdi-portfolio.web.app" + } + } + \ No newline at end of file diff --git a/domains/abineethan.json b/domains/abineethan.json new file mode 100644 index 000000000..8974b1073 --- /dev/null +++ b/domains/abineethan.json @@ -0,0 +1,11 @@ +{ + "description": "This subdomain hosts my personal portfolio website.", + "repo": "https://github.com/abineethan/abineethan.github.io", + "owner": { + "username": "abineethan", + "email": "abineethan22@gmail.com" + }, + "record": { + "CNAME": "abineethan.github.io" + } +} diff --git a/domains/adithyapaib.json b/domains/adithyapaib.json new file mode 100644 index 000000000..c422eddee --- /dev/null +++ b/domains/adithyapaib.json @@ -0,0 +1,13 @@ +{ + "description": "My Portfolio Website", + "repo": "https://github.com/adithyapaib/adithyapaib.github.io", + "owner": { + "username": "adithyapaib", + "email": "paiadithya26@gmail.com", + "twitter": "adithyapaib" + }, + "record": { + "CNAME": "adithyapaib.github.io" + } + } + \ No newline at end of file diff --git a/domains/adrianqr.json b/domains/adrianqr.json new file mode 100644 index 000000000..7fc598c3d --- /dev/null +++ b/domains/adrianqr.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "AdrianQR01", + "email": "adrianquenard@gmail.com" + }, + "record": { + "CNAME": "adrianqr01.github.io" + } +} diff --git a/domains/aespada.json b/domains/aespada.json new file mode 100644 index 000000000..524a967b1 --- /dev/null +++ b/domains/aespada.json @@ -0,0 +1,11 @@ +{ + "description": "Personal portfolio", + "repo": "https://github.com/alexES13/alexES13.github.io", + "owner": { + "username": "alexES13", + "email": "butano_tren.7r@icloud.com" + }, + "record": { + "CNAME": "alexes13.github.io" + } +} \ No newline at end of file diff --git a/domains/ahyalfan.json b/domains/ahyalfan.json new file mode 100644 index 000000000..868823761 --- /dev/null +++ b/domains/ahyalfan.json @@ -0,0 +1,10 @@ +{ + "description": "this is for my personal website made.", + "owner": { + "username": "ahyalfan", + "email": "alfandi0857@gmail.com" + }, + "record": { + "URL": "https://ahyalfan.my.id" + } +} diff --git a/domains/akira.json b/domains/akira.json new file mode 100644 index 000000000..db31f3514 --- /dev/null +++ b/domains/akira.json @@ -0,0 +1,11 @@ +{ + "description": "Akira's Dev Webpage", + "repo": "https://github.com/cakira/cakira.github.io.git", + "owner": { + "username": "cakira", + "email": "cleber.akira@gmail.com" + }, + "record": { + "CNAME": "cakira.github.io" + } +} diff --git a/domains/alblandino.json b/domains/alblandino.json new file mode 100644 index 000000000..3da7372ac --- /dev/null +++ b/domains/alblandino.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "joel", + "email": "joel@alblandino.com" + }, + "record": { + "URL": "https://alblandino.com" + } +} diff --git a/domains/alemi.json b/domains/alemi.json new file mode 100644 index 000000000..d9ab7c13e --- /dev/null +++ b/domains/alemi.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "alemiherbert", + "email": "alemiherbert@gmail.com" + }, + "record": { + "CNAME": "alemiherbert.github.io" + } +} diff --git a/domains/alexandre-machado.json b/domains/alexandre-machado.json new file mode 100644 index 000000000..4c7d9afd5 --- /dev/null +++ b/domains/alexandre-machado.json @@ -0,0 +1,11 @@ +{ + "description": "My personal domain.", + "repo": "https://github.com/alexandre-machado/alexandre-machado.github.io", + "owner": { + "username": "alexandre-machado", + "email": "alexandre@machado.cc" + }, + "record": { + "URL": "https://alexandre.machado.cc" + } +} \ No newline at end of file diff --git a/domains/alexxhumilde.json b/domains/alexxhumilde.json new file mode 100644 index 000000000..b19eeb9e1 --- /dev/null +++ b/domains/alexxhumilde.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ALEXXHUMILDE", + "email": "alexxcrack3@gmail.com" + }, + "record": { + "CNAME": "alexxhumilde.netlify.app" + } +} diff --git a/domains/alkorsan.json b/domains/alkorsan.json new file mode 100644 index 000000000..6736be273 --- /dev/null +++ b/domains/alkorsan.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "badrelmers", + "email": "alkorsan@gmail.com" + }, + "record": { + "CNAME": "alkorsan.pages.dev" + } +} diff --git a/domains/amanza17.json b/domains/amanza17.json new file mode 100644 index 000000000..509607016 --- /dev/null +++ b/domains/amanza17.json @@ -0,0 +1,11 @@ +{ + "description": "amanza17.is-a.dev", + "repo": "https://github.com/Amanza17/Amanza17.github.io.git", + "owner": { + "username": "Amanza17", + "email": "a.manzanares.2023@alumnos.urjc.es" + }, + "record": { + "CNAME": "amanza17.github.io" + } +} diff --git a/domains/ammar.json b/domains/ammar.json new file mode 100644 index 000000000..b8af925a9 --- /dev/null +++ b/domains/ammar.json @@ -0,0 +1,11 @@ +{ + "description": "Ammar's personal website", + "repo": "https://github.com/Ammaryasser1998/ammaryasser1998.github.io", + "owner": { + "username": "Ammaryasser1998", + "email": "amyss1910@gmail.com" + }, + "record": { + "CNAME": "ammaryasser1998.github.io" + } +} diff --git a/domains/anthxny.json b/domains/anthxny.json new file mode 100644 index 000000000..dd857c480 --- /dev/null +++ b/domains/anthxny.json @@ -0,0 +1,11 @@ +{ + "description": "My perosnal portfolio", + "repo": "https://github.com/anthonycursewl/brd-portfolio", + "owner": { + "username": "anthonycursewl", + "email": "zerpaathony.wx@breadriuss.com" + }, + "record": { + "CNAME": "anthportafolio.netlify.app" + } +} diff --git a/domains/app.vyductan.json b/domains/app.vyductan.json new file mode 100644 index 000000000..b824e266a --- /dev/null +++ b/domains/app.vyductan.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "vyductan", + "email": "vdt5snet@gmail.com", + "discord": "370012050316984321" + }, + "record": { + "A": ["76.76.21.21"] + } +} diff --git a/domains/aruria.json b/domains/aruria.json index 394e7ce6f..31b173665 100644 --- a/domains/aruria.json +++ b/domains/aruria.json @@ -6,6 +6,8 @@ }, "record": { - "CNAME": "cjolivier123.github.io" + "A": ["185.199.108.153", "185.199.110.153", "185.199.109.153", "185.199.111.153" ], + "TXT": ["zoho-verification=zb76097651.zmverify.zoho.com", "v=spf1 include:zohomail.com ~all"], + "MX": ["mx.zoho.com", "mx2.zoho.com", "mx3.zoho.com"] } } diff --git a/domains/asbp.json b/domains/asbp.json new file mode 100644 index 000000000..0b1d1f247 --- /dev/null +++ b/domains/asbp.json @@ -0,0 +1,11 @@ +{ + "description": "Agung's Portofolio Website", + "repo": "https://github.com/asbp/asbp.github.io", + "owner": { + "username": "asbp", + "email": "guungofficial@gmail.com" + }, + "record": { + "CNAME": "asbp.github.io" + } +} diff --git a/domains/aswin-m-v.json b/domains/aswin-m-v.json new file mode 100644 index 000000000..465f0f759 --- /dev/null +++ b/domains/aswin-m-v.json @@ -0,0 +1,12 @@ + +{ + "description": "Personal website me , Aswin M V", + "repo": "https://github.com/AswinArsha/mypersonalwebsite.git", + "owner": { + "username": "AswinArsha", + "email": "aswinmv13@gmail.com" + }, + "record": { + "CNAME": "tubular-kangaroo-60ad83.netlify.app" + } +} diff --git a/domains/awais.json b/domains/awais.json new file mode 100644 index 000000000..8674395ab --- /dev/null +++ b/domains/awais.json @@ -0,0 +1,12 @@ +{ + "description": "Portfolio website for Awais Khan Niazi", + "repo": "https://github.com/askhan963/register", + "owner": { + "username": "askhan963", + "email": "awaisknas963@gmail.com" + }, + "record": { + "CNAME": "awaiskhanniazi.netlify.app" + }, + "proxied": false +} diff --git a/domains/axioris.json b/domains/axioris.json new file mode 100644 index 000000000..e4f04f53e --- /dev/null +++ b/domains/axioris.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "axioris", + "email": "dane.foster.collins@gmail.com" + }, + "record": { + "CNAME": "axioris.github.io" + } +} diff --git a/domains/beta.peme969.json b/domains/beta.peme969.json new file mode 100644 index 000000000..759e1dc8f --- /dev/null +++ b/domains/beta.peme969.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "peme969", + "email": "mrcoderpeme@gmail.com" + }, + "record": { + "CNAME":"beta-nine-taupe.vercel.app" + } +} diff --git a/domains/bitsexploited.json b/domains/bitsexploited.json new file mode 100644 index 000000000..5ad5b4c99 --- /dev/null +++ b/domains/bitsexploited.json @@ -0,0 +1,11 @@ +{ + "description": "A portfolio website", + "repo": "https://github.com/bitsexploited/bitsexploited.github.io", + "owner": { + "username": "BitsExploited", + "email": "tspamiitesh@gmail.com" + }, + "record": { + "CNAME": "BitsExploited.github.io" + } +} diff --git a/domains/boo.json b/domains/boo.json new file mode 100644 index 000000000..ddb995f26 --- /dev/null +++ b/domains/boo.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "Boopup", + "discord": "972502840247484527", + "OWL": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAiLCJraWQiOiJaa1VsRmRqVThiUEstLXVVM2JJR09PVHFYYVFFS1ZINFVXOW53MTR6WTJnIn0.XpL4EHQDM2NhhOcMnxdbK1MOEgJqrE4REv8yt5tx7uiBoPWpOkHaiyA6q1qpPpan5pdxz3QT03Okj3I-sgW5Jqo_J65lLkd_NhTIcC-BpBiqic8LrSSPXHCdPG6iB5vdWOOiAnyesygsUF5460q2X-lxuaGQ7c5vqNJxC3XVv2aDal8cYXHY5Fn1SaXNNYpdkjWDByszsy1negAdRCdZqUDnEbiyAVp5jcETjC7Rs7qJSYI4noYuatL6HYZs-17WTbhVKNA9dfmGVcPzrNB4jl_jtgXHP0Bf_xg5OSiQ4MiSGcCObMBirxSlhid-56HuzyJUDaZgiuSSPq-VdinNNw.QlY7KCeNk9GIOA3tdSkyrw.2iQLx2zPSnj0DRMey79pgn1wV1G08vhZPKpHEb4YGTcEa8bOT7lQ3hiiwBj6kbxMM54L2xz4kOBcX5fjI3o4uhay96GtE76G4cuPVBBGx8g.v44-C_GmlY0plYvqCasd_w" + }, + + "record": { + "A": ["191.101.148.239"] + } + } + \ No newline at end of file diff --git a/domains/boolean44.json b/domains/boolean44.json deleted file mode 100644 index fdac8f8cc..000000000 --- a/domains/boolean44.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "repo": "https://github.com/boolean44-repos/boolean44-repos.github.io", - "owner": { - "username": "boolean44-repos", - "email": "serenitypalmer10@gmail.com" - }, - "record": { - "CNAME": "boolean44-repos.github.io" - } -} diff --git a/domains/boudjo.json b/domains/boudjo.json new file mode 100644 index 000000000..f7f82317a --- /dev/null +++ b/domains/boudjo.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "boudjoo", + "email": "abdouboudjo1@gmail.com" + }, + "record": { + "CNAME": "boudjoo.github.io" + } +} diff --git a/domains/bundler.skibidi.json b/domains/bundler.skibidi.json new file mode 100644 index 000000000..2e21d7501 --- /dev/null +++ b/domains/bundler.skibidi.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "bananaking6", + "email": "", + "discord": "skibidibagel" + }, + "record": { + "CNAME": "sandpack-jet.vercel.app" + } +} diff --git a/domains/caenjones.json b/domains/caenjones.json index ef931ec48..16ce509a3 100644 --- a/domains/caenjones.json +++ b/domains/caenjones.json @@ -1,12 +1,12 @@ { "description": "My personal website and blog", - "repo": "https://github.com/CaenJones/caenjones.github.io", + "repo": "https://github.com/vcc3v/vcc3v.github.io", "owner": { - "username": "CaenJones", + "username": "vcc3v", "email": "cj@caenjones.com", "twitter": "" }, "record": { - "CNAME": "caenjones.github.io" + "CNAME": "vcc3v.github.io" } } diff --git a/domains/callcon.json b/domains/callcon.json new file mode 100644 index 000000000..9db82545c --- /dev/null +++ b/domains/callcon.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ItzYoVishal", + "email": "rockstarelitecoc@gmail.com" + }, + "record": { + "A": ["4.157.244.201"] + } +} diff --git a/domains/carterrpham23.json b/domains/carterrpham23.json new file mode 100644 index 000000000..d5809bfb2 --- /dev/null +++ b/domains/carterrpham23.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "sonpt-afk", + "email": "sonbappe89@gmail.com" + }, + "record": { + "CNAME": "sonpts-landingfolio.vercel.app" + } + } + \ No newline at end of file diff --git a/domains/char.json b/domains/char.json new file mode 100644 index 000000000..a738d11da --- /dev/null +++ b/domains/char.json @@ -0,0 +1,11 @@ +{ + "description": "Use to portfolio", + "repo": "https://github.com/chard33/portafolio---Alura", + "owner": { + "username": "chard33", + "email": "jchar33@hotmail.com" + }, + "record": { + "CNAME": "chard33.github.io" + } +} diff --git a/domains/clarenisme.json b/domains/clarenisme.json new file mode 100644 index 000000000..ed3477f52 --- /dev/null +++ b/domains/clarenisme.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "razelleclaren", + "email": "gracela.claren1@gmail.com" + }, + "record": { + "MX": ["mx1.improvmx.com", "mx2.improvmx.com"], + "TXT": "v=spf1 include:spf.improvmx.com ~all" + } +} diff --git a/domains/crpaiz.json b/domains/crpaiz.json new file mode 100644 index 000000000..7d57ba8fd --- /dev/null +++ b/domains/crpaiz.json @@ -0,0 +1,10 @@ +{ + "$schema": "../schemas/domain.json", + "owner": { + "username": "CristopherPaiz", + "email": "choperpaiz1@gmail.com" + }, + "record": { + "CNAME": "crpaiz.netlify.app" + } +} diff --git a/domains/danielzambrano.json b/domains/danielzambrano.json new file mode 100644 index 000000000..8372b3402 --- /dev/null +++ b/domains/danielzambrano.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "DanielZambranoC", + "email": "trail.moth9771@eagereverest.com" + }, + "record": { + "URL": "https://www.linkedin.com/in/danielzambranoc/" + } +} \ No newline at end of file diff --git a/domains/dash.bernardonogueira8.json b/domains/dash.bernardonogueira8.json deleted file mode 100644 index fc6595f21..000000000 --- a/domains/dash.bernardonogueira8.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "Samuraiflamesf", - "email": "Samuraiflamesf@gmail.com" - }, - "record": { - "A": ["100.42.189.124"] - } -} diff --git a/domains/davechbga.json b/domains/davechbga.json new file mode 100644 index 000000000..944c0a0ce --- /dev/null +++ b/domains/davechbga.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "davechbga", + "email": "davechbga@gmail.com" + }, + "record": { + "CNAME": "davechbga.vercel.app" + } +} diff --git a/domains/davemp.json b/domains/davemp.json new file mode 100644 index 000000000..04daa84ce --- /dev/null +++ b/domains/davemp.json @@ -0,0 +1,12 @@ +{ + "description": "David Mendoza Pardo", + "repo": "https://github.com/dave-mp/davemp", + "owner": { + "username": "dave-mp", + "email": "david.mendoza@chibchapps.io", + "twitter": "dave-mp" + }, + "record": { + "CNAME": "davemp.vercel.app" + } +} \ No newline at end of file diff --git a/domains/deadshot.json b/domains/deadshot.json index 87b118666..23e7c38af 100644 --- a/domains/deadshot.json +++ b/domains/deadshot.json @@ -1,12 +1,12 @@ { - "description": "Updated Website 2023 Edition Haha", - "repo": "https://github.com/deadshotofficial/deadshotofficial.github.io", - "owner": { - "username": "deadshotofficial", - "email": "deadshot3r@pm.me", - "twitter": "deadshot3r" - }, - "record": { - "CNAME": "deadshotofficial.github.io" - } + "description": "A simple portfolio template made by me.", + "repo": "https://github.com/deadshotofficial/minimal-portfolio", + "owner": { + "username": "deadshotofficial", + "email": "deadshot3r@pm.me", + "discord": "416952474587496449" + }, + "record": { + "CNAME": "deadshotdev.vercel.app" + } } diff --git a/domains/deniz.json b/domains/deniz.json index e88872028..b36d00326 100644 --- a/domains/deniz.json +++ b/domains/deniz.json @@ -4,10 +4,23 @@ "owner": { "username": "creeperkafasi", "twitter": "_creeperkafasi_", - "discord": "creeperkafasipw#1861", + "discord": "creeperkafasi", "note": "I don't use twitter that much, you may have a better chance to contact me through discord" }, "record": { - "CNAME": "creeperkafasi.github.io" + "A": [ + "185.199.108.153", + "185.199.109.153", + "185.199.110.153", + "185.199.111.153" + ], + "MX": [ + "mx1.forwardemail.net", + "mx2.forwardemail.net" + ], + "TXT": [ + "forward-email=MDcyNzA3YjVlMTdjNzhhYS1iMzA0NDgxN2RjMmZiODZhODI5Y2UyNmUzNzY5NjJhZWZkMTA4MjBlNDEyYTk3MTc0MjhkN2NlMmQxNWQ5MmFi", + "google-site-verification=9jbck7qUZb10EWndaXLikv_Kx9xQ7DpShwFCttIzA6Q" + ] } } diff --git a/domains/dhika.json b/domains/dhika.json new file mode 100644 index 000000000..bfc71ba0b --- /dev/null +++ b/domains/dhika.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "thisisdhika", + "email": "dhikaardana87@gmail.com" + }, + "record": { + "CNAME": "thisisdhika.vercel.app" + } +} \ No newline at end of file diff --git a/domains/dmc.json b/domains/dmc.json new file mode 100644 index 000000000..5b82649b2 --- /dev/null +++ b/domains/dmc.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "morcu", + "email": "david.morcuende.c@gmail.com" + }, + "record": { + "CNAME": "davidmorcuende.com" + } +} diff --git a/domains/docs.json b/domains/docs.json index 0b97d120e..eeb70255e 100644 --- a/domains/docs.json +++ b/domains/docs.json @@ -6,7 +6,7 @@ "email": "admin@is-a.dev" }, "record": { - "CNAME": "is-a.dev" + "CNAME": "is-a-dev-docs.pages.dev" }, "proxied": true } diff --git a/domains/donate.json b/domains/donate.json index 192ccf751..103d52c52 100644 --- a/domains/donate.json +++ b/domains/donate.json @@ -5,5 +5,10 @@ }, "record": { "URL": "https://wdh.gg/M0ttgkD" + }, + "redirect_config": { + "custom_paths": { + "/ns": "https://wdh.gg/pvNCdvs" + } } } diff --git a/domains/doncho.json b/domains/doncho.json new file mode 100644 index 000000000..05604e539 --- /dev/null +++ b/domains/doncho.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "donangel", + "email": "public@doncho.net" + }, + "record": { + "URL": "https://doncho.net" + } +} diff --git a/domains/drew.json b/domains/drew.json new file mode 100644 index 000000000..bd7232463 --- /dev/null +++ b/domains/drew.json @@ -0,0 +1,11 @@ +{ + "description": "My page", + "repo": "https://github.com/zessu/zessu.github.io", + "owner": { + "username": "zessu", + "email": "regime-pluck-gulf@duck.com" + }, + "record": { + "CNAME": "zessu.github.io" + } +} diff --git a/domains/dsuescun.json b/domains/dsuescun.json new file mode 100644 index 000000000..d7a467d09 --- /dev/null +++ b/domains/dsuescun.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "dsuescun", + "email": "dsuescun@soinsoluciones.com" + }, + "record": { + "CNAME": "dsuescun.github.io" + } +} diff --git a/domains/ebooks.json b/domains/ebooks.json new file mode 100644 index 000000000..f5c93222d --- /dev/null +++ b/domains/ebooks.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "tuannguyen2002", + "email": "", + "discord": "minhtuan9039" + }, + "record": { + "CNAME": "ebooks-online-opal.vercel.app" + } +} diff --git a/domains/educatedsuddenbucket.json b/domains/educatedsuddenbucket.json index d49d77c7f..e35d7591e 100644 --- a/domains/educatedsuddenbucket.json +++ b/domains/educatedsuddenbucket.json @@ -5,10 +5,7 @@ }, "record": { "A": [ - "185.199.108.153", - "185.199.109.153", - "185.199.110.153", - "185.199.111.153" + "185.199.108.153" ], "TXT": [ "google-site-verification=hS8B2hSz-rNk6gLRnwaZjxuJE9rCLU_25X65JsLEczE", diff --git a/domains/egor.json b/domains/egor.json new file mode 100644 index 000000000..56ea1d014 --- /dev/null +++ b/domains/egor.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "egor-xyz", + "discord": "egor.xyz" + }, + "record": { + "CNAME": "egor.xyz" + } +} diff --git a/domains/emamut.json b/domains/emamut.json new file mode 100644 index 000000000..d1b843655 --- /dev/null +++ b/domains/emamut.json @@ -0,0 +1,11 @@ +{ + "description": "Faber Vergara - Web Developer", + "repo": "https://github.com/emamut/cv", + "owner": { + "username": "emamut", + "email": "fabervergara@gmail.ocm" + }, + "record": { + "CNAME": "emamut.vercel.app" + } +} diff --git a/domains/enlaces.alexxhumilde.json b/domains/enlaces.alexxhumilde.json new file mode 100644 index 000000000..664a71d3b --- /dev/null +++ b/domains/enlaces.alexxhumilde.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ALEXXHUMILDE", + "email": "alexxcrack3@gmail.com" + }, + "record": { + "CNAME": "enlaces-alexxhumilde.netlify.app" + } +} diff --git a/domains/eojeda.json b/domains/eojeda.json new file mode 100644 index 000000000..4fbc8d0bf --- /dev/null +++ b/domains/eojeda.json @@ -0,0 +1,11 @@ +{ + "description": "Personal webpage", + "repo": "https://github.com/eojeda89/eojeda89.github.io", + "owner": { + "username": "eojeda89", + "email": "ernestoojeda89@gmail.com" + }, + "record": { + "CNAME": "eojeda89.github.io" + } +} diff --git a/domains/ethereumvd.json b/domains/ethereumvd.json new file mode 100644 index 000000000..8950288b7 --- /dev/null +++ b/domains/ethereumvd.json @@ -0,0 +1,11 @@ +{ + "description": "Personal portfolio website", + "repo": "https://github.com/ethereumvd/ethereumvd.github.io", + "owner": { + "username": "ethereumvd", + "email": "ethereum249@gmail.com" + }, + "record": { + "CNAME": "ethereumvd.github.io" + } +} diff --git a/domains/fabianf4.json b/domains/fabianf4.json new file mode 100644 index 000000000..c50d834f8 --- /dev/null +++ b/domains/fabianf4.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "fabianf4", + "email": "fabianfa.munoz@gmail.com" + }, + "record": { + "CNAME": "fabianf4.github.io" + } +} diff --git a/domains/fabien.json b/domains/fabien.json new file mode 100644 index 000000000..2637b381c --- /dev/null +++ b/domains/fabien.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "fabien-h", + "email": "fabien.huet@gmail.com", + "discord": "fabien-huet" + }, + "record": { + "CNAME": "fabien-is-a-dev.vercel.app" + } +} diff --git a/domains/federico.json b/domains/federico.json new file mode 100644 index 000000000..1ba721c64 --- /dev/null +++ b/domains/federico.json @@ -0,0 +1,11 @@ +{ + "description": "Professional website", + "repo": "https://github.com/Thefederico/federico", + "owner": { + "username": "Thefederico", + "email": "xooxes@gmail.com" + }, + "record": { + "A": ["75.2.60.5"] + } +} diff --git a/domains/felipe.json b/domains/felipe.json new file mode 100644 index 000000000..dc9003f65 --- /dev/null +++ b/domains/felipe.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "felipecalderon", + "email": "hola@felipe.bio" + }, + "repo": "https://github.com/felipecalderon", + "record": { + "CNAME": "porfoliofelipe.vercel.app" + } + } + diff --git a/domains/felipecampos.json b/domains/felipecampos.json new file mode 100644 index 000000000..088b17ca0 --- /dev/null +++ b/domains/felipecampos.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "camposdev", + "email": "felipecamposdev@gmail.com" + }, + "record": { + "CNAME": "felipecampos.vercel.app" + } +} diff --git a/domains/frapujgal.json b/domains/frapujgal.json new file mode 100644 index 000000000..4fd0eb8b8 --- /dev/null +++ b/domains/frapujgal.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "frapujgal", + "email": "fpujol1989@gmail.com" + }, + "record": { + "CNAME": "frapujgal.github.io" + } +} diff --git a/domains/fungaming.joe50097.json b/domains/fungaming.joe50097.json new file mode 100644 index 000000000..50a39e83b --- /dev/null +++ b/domains/fungaming.joe50097.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Joe50097", + "email": "zcell9500@gmail.com" + }, + "record": { + "CNAME": "fungaming-discord-server.netlify.app" + } +} diff --git a/domains/gameroman.json b/domains/gameroman.json new file mode 100644 index 000000000..6c8614026 --- /dev/null +++ b/domains/gameroman.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "GameRoMan", + "email": "gameromandev@gmail.com" + }, + "record": { + "CNAME": "gameroman.pages.dev" + } +} diff --git a/domains/ganesh-g.json b/domains/ganesh-g.json new file mode 100644 index 000000000..e033b8b6d --- /dev/null +++ b/domains/ganesh-g.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ganesh76", + "email": "ganesh.g.cse@gmail.com" + }, + "record": { + "CNAME": "ganesh76.github.io" + } +} diff --git a/domains/gg.json b/domains/gg.json new file mode 100644 index 000000000..0a7d8e227 --- /dev/null +++ b/domains/gg.json @@ -0,0 +1,11 @@ +{ + "description": "Portfolio", + "repo": "https://github.com/i-m-Gaurav/Portfolio.git", + "owner": { + "username": "i-m-Gaurav", + "email": "indiagauravkumar@gmail.com" + }, + "record": { + "CNAME": "gaurav-self.vercel.app" + } +} diff --git a/domains/gui2.json b/domains/gui2.json new file mode 100644 index 000000000..178ed5b51 --- /dev/null +++ b/domains/gui2.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Gui2258", + "email": "guidotele@gmail.com" + }, + "record": { + "URL": "https://gui2dev.vercel.app" + } +} diff --git a/domains/guidocaru.json b/domains/guidocaru.json new file mode 100644 index 000000000..485f4edc0 --- /dev/null +++ b/domains/guidocaru.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "guidocaru", + "discord": "696554384817127486" + }, + "record": { + "CNAME": "guidocaru.vercel.app" + } +} diff --git a/domains/gulsah.json b/domains/gulsah.json new file mode 100644 index 000000000..a2b1f07bc --- /dev/null +++ b/domains/gulsah.json @@ -0,0 +1,11 @@ +{ + "description": "The portfolio site of Gülşah Düzgün", + "repo": "https://github.com/GulsahDuzgun/Portfolio", + "owner": { + "username": "GulsahDuzgun", + "email": "duzgun.gulsah27@gmail.com" + }, + "record": { + "CNAME": "gulsah.netlify.app" + } +} diff --git a/domains/hammed.json b/domains/hammed.json new file mode 100644 index 000000000..8db9ef285 --- /dev/null +++ b/domains/hammed.json @@ -0,0 +1,11 @@ +{ + "description": "Link to my portfolio site.", + "repo": "https://github.com/devhammed/devhammed.github.io", + "owner": { + "username": "devhammed", + "email": "hey@hammed.dev" + }, + "record": { + "CNAME": "devhammed.github.io" + } +} diff --git a/domains/harrison.json b/domains/harrison.json new file mode 100644 index 000000000..55dcef36b --- /dev/null +++ b/domains/harrison.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "wdhdev", + "email": "william@is-a.dev" + }, + "record": { + "URL": "https://william.is-a.dev" + }, + "redirect_config": { + "redirect_paths": true + } +} diff --git a/domains/harshd.json b/domains/harshd.json new file mode 100644 index 000000000..56aed2491 --- /dev/null +++ b/domains/harshd.json @@ -0,0 +1,11 @@ +{ + "description": "Portfolio", + "repo": "https://github.com/harsh-writes-code/harsh-writes-code.github.io", + "owner": { + "username": "harsh-writes-code", + "email": "happydhimanbarara@gmail.com" + }, + "record": { + "CNAME": "harsh-writes-code.github.io" + } +} diff --git a/domains/harshshah.json b/domains/harshshah.json new file mode 100644 index 000000000..d2e6a4130 --- /dev/null +++ b/domains/harshshah.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "harshshah-codes", + "email": "harshshah.dev@gmail.com", + "discord": "889700837520199761" + }, + "record": { + "A": ["76.76.21.21"] + } +} diff --git a/domains/hasan.json b/domains/hasan.json new file mode 100644 index 000000000..62f9df7c5 --- /dev/null +++ b/domains/hasan.json @@ -0,0 +1,11 @@ +{ + "description": "My personal website", + "repo": "https://github.com/bistcuite/bistcuite.github.io", + "owner": { + "username": "bistcuite", + "email": "hnk1440@gmail.com" + }, + "record": { + "CNAME": "bistcuite.github.io" + } +} diff --git a/domains/heatblock.json b/domains/heatblock.json new file mode 100644 index 000000000..157684753 --- /dev/null +++ b/domains/heatblock.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "EducatedSuddenBucket", + "email": "educatedsuddenbucket@gmail.com" + }, + "record": { + "URL": "https://heatblock.esb.is-a.dev" + } +} diff --git a/domains/hixtrionix.json b/domains/hixtrionix.json new file mode 100644 index 000000000..f82388558 --- /dev/null +++ b/domains/hixtrionix.json @@ -0,0 +1,10 @@ +{ + "repo": "https://github.com/Hixtrionix/is-a-dev-register", + "owner": { + "username": "Hixtrionix", + "email": "aflores@cop.es" + }, + "record": { + "CNAME": "dev-webpage.web.app" + } +} diff --git a/domains/horibyte.json b/domains/horibyte.json new file mode 100644 index 000000000..4a1863917 --- /dev/null +++ b/domains/horibyte.json @@ -0,0 +1,11 @@ +{ + "description": "Horibyte's personal website", + "repo": "https://github.com/horibyte/horibyte.github.io", + "owner": { + "username": "horibyte", + "email": "thehoribyte@gmail.com" + }, + "record": { + "CNAME": "horibyte.github.io" + } +} diff --git a/domains/hotfix.saftec.json b/domains/hotfix.saftec.json deleted file mode 100644 index fc6595f21..000000000 --- a/domains/hotfix.saftec.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "Samuraiflamesf", - "email": "Samuraiflamesf@gmail.com" - }, - "record": { - "A": ["100.42.189.124"] - } -} diff --git a/domains/hsn.json b/domains/hsn.json new file mode 100644 index 000000000..80a8ce99e --- /dev/null +++ b/domains/hsn.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "hasan-bro-coder", + "email": "hasanur23910@gmail.com", + "discord": "hasan894" + }, + "record": { + "CNAME": "hasanur.vercel.app" + } +} diff --git a/domains/ilhadev.json b/domains/ilhadev.json new file mode 100644 index 000000000..4fc124208 --- /dev/null +++ b/domains/ilhadev.json @@ -0,0 +1,11 @@ +{ + "description": "adalbertobrant.is-a.dev", + "repo": "https://github.com/adalbertobrant/adalbertobrant", + "owner": { + "username": "adalbertobrant", + "email": "adalbertobrant@protonmail.com" + }, + "record": { + "URL": "https://github.com/adalbertobrant/adalbertobrant" + } +} diff --git a/domains/isturiz.json b/domains/isturiz.json new file mode 100644 index 000000000..7eec194f1 --- /dev/null +++ b/domains/isturiz.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "isturiz", + "email": "" + }, + "record": { + "CNAME": "isturiz.vercel.app" + } +} diff --git a/domains/itsmepvr.json b/domains/itsmepvr.json new file mode 100644 index 000000000..e5f5ce90a --- /dev/null +++ b/domains/itsmepvr.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "itsmepvr", + "email": "pvrreddy155@gmail.com" + }, + "record": { + "CNAME": "itsmepvr.github.io" + } +} diff --git a/domains/jabbdev.json b/domains/jabbdev.json new file mode 100644 index 000000000..ff2e396cf --- /dev/null +++ b/domains/jabbdev.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "jabbcode", + "email": "jabbsontouch@gmail.com" + }, + "record": { + "CNAME": "react-frontend-production-0024.up.railway.app" + } +} diff --git a/domains/jaennova.json b/domains/jaennova.json new file mode 100644 index 000000000..6168c9db2 --- /dev/null +++ b/domains/jaennova.json @@ -0,0 +1,11 @@ +{ + "description": "Personal portfolio", + "repo": "https://github.com/jaennova/portfolio", + "owner": { + "username": "jaennova", + "email": "jaendevp@gmail.com" + }, + "record": { + "A": ["75.2.60.5"] + } +} diff --git a/domains/jai.json b/domains/jai.json new file mode 100644 index 000000000..70684c460 --- /dev/null +++ b/domains/jai.json @@ -0,0 +1,11 @@ +{ + "description": "Jai Singh Rathore's Portfolio Website", + "repo": "https://github.com/jaizxzx/jaizxzx.github.io", + "owner": { + "username": "jaizxzx", + "email": "jaisinghrathore4432@gmail.com" + }, + "record": { + "CNAME": "jaizxzx.github.io" + } + } \ No newline at end of file diff --git a/domains/jasondevgm.json b/domains/jasondevgm.json new file mode 100644 index 000000000..c3bfd4765 --- /dev/null +++ b/domains/jasondevgm.json @@ -0,0 +1,11 @@ +{ + "description": "Personal Portfolio Website", + "repo": "https://github.com/jasondevgm/jasondevgm.github.io.git", + "owner": { + "username": "jasondevgm", + "email": "jasondevgm@gmail.com" + }, + "record": { + "CNAME": "jasondevgm.github.io" + } +} diff --git a/domains/jbmbhs.json b/domains/jbmbhs.json new file mode 100644 index 000000000..ab99ab6c1 --- /dev/null +++ b/domains/jbmbhs.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "jbmbhs", + "email": "juan@belmontemarin.com" + }, + + "record": { + "URL": "https://www.linkedin.com/in/juan-belmonte-821175112/" + } +} + diff --git a/domains/jcarroyos-teaching.json b/domains/jcarroyos-teaching.json new file mode 100644 index 000000000..932d3bcde --- /dev/null +++ b/domains/jcarroyos-teaching.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "jcarroyos-teaching", + "email": "jcarroyos@gmail.com" + }, + "record": { + "URL": "https://github.com/jcarroyos-teaching" + } +} diff --git a/domains/jeff.json b/domains/jeff.json index 3d0db8456..d40c5f7c4 100644 --- a/domains/jeff.json +++ b/domains/jeff.json @@ -1,9 +1,21 @@ { "owner": { "username": "PentSec", - "email": "jeffreysfu@gmail.com" + "email": "pentsec.2@protonmail.com" }, "record": { "CNAME": "pentsec.github.io" - } + }, + "redirect_config": { + "custom_paths": { + "/gh": "https://github.com/PentSec", + "/dc": "https://discord.com/users/284896471210393600", + "/x": "https://x.com/__J3ff_", + "/bsky": "https://sitoz.bsky.social", + "/tw": "https://twitch.tv/Sitoz1", + "/kick": "https://kick.com/Sitoz1", + "/ig": "https://www.instagram.com/jeffreysfuenmayor_" + } + }, + "proxied": true } diff --git a/domains/jemalahmedov.json b/domains/jemalahmedov.json new file mode 100644 index 000000000..25e6a8e7e --- /dev/null +++ b/domains/jemalahmedov.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "jimjja", + "email": "jemalja.dev@gmail.com", + "discord": "665635903955533845" + }, + "record": { + "CNAME": "jemalahmedov.vercel.app" + } +} diff --git a/domains/jeremiah.json b/domains/jeremiah.json new file mode 100644 index 000000000..93bab3499 --- /dev/null +++ b/domains/jeremiah.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "1tsJeremiah", + "email": "jmatdesigns@gmail.com" + }, + "record": { + "MX": ["mx1.improvmx.com", "mx2.improvmx.com"], + "TXT": ["v=spf1 include:spf.improvmx.com ~all"] + } +} + diff --git a/domains/jesusdmedinac.json b/domains/jesusdmedinac.json new file mode 100644 index 000000000..a12850181 --- /dev/null +++ b/domains/jesusdmedinac.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "jesusdmedinac", + "email": "jesus.daniel.medina.cruz@gmail.com" + }, + "record": { + "CNAME": "jesusdmedinac.github.io" + } +} \ No newline at end of file diff --git a/domains/joe50097.json b/domains/joe50097.json index 7c9bf8e54..78316bf5e 100644 --- a/domains/joe50097.json +++ b/domains/joe50097.json @@ -4,8 +4,8 @@ "email": "zcell9500@gmail.com" }, "record": { - "MX": ["mx1.improvmx.com", "mx2.improvmx.com"], - "TXT": "v=spf1 include:spf.improvmx.com ~all", + "MX": ["mx.zoho.com", "mx2.zoho.com", "mx3.zoho.com"], + "TXT": ["zoho-verification=zb32862044.zmverify.zoho.com", "v=spf1 include:zohomail.com ~all"], "A": ["75.2.60.5"] } } diff --git a/domains/jonatandb.json b/domains/jonatandb.json new file mode 100644 index 000000000..ab12955cb --- /dev/null +++ b/domains/jonatandb.json @@ -0,0 +1,10 @@ +{ + "description": "This is for my personal website.", + "owner": { + "username": "jonatandb", + "email": "jonatandb@gmail.com" + }, + "record": { + "CNAME": "jonatandb.github.io" + } +} diff --git a/domains/jonathan.json b/domains/jonathan.json new file mode 100644 index 000000000..96ed1ab64 --- /dev/null +++ b/domains/jonathan.json @@ -0,0 +1,11 @@ +{ + "description": "Portfolio website.", + "repo": "https://github.com/jonasfroeller/jonasfroeller", + "owner": { + "username": "JonathanB500", + "email": "jonathanbuitrago505@gmail.com" + }, + "record": { + "CNAME": "jonathanbuitragoroncancio.web.app" + } +} diff --git a/domains/jorge-lopz.json b/domains/jorge-lopz.json new file mode 100644 index 000000000..78c0f6c57 --- /dev/null +++ b/domains/jorge-lopz.json @@ -0,0 +1,11 @@ +{ + "description": "Jorge's Web", + "owner": { + "username": "Jorge-lopz", + "email": "jlpenero2005@gmail.com", + "discord": "713831494761840753" + }, + "record": { + "CNAME": "jorge-lopz.vercel.app" + } +} diff --git a/domains/jorgelopez.json b/domains/jorgelopez.json new file mode 100644 index 000000000..2905547bf --- /dev/null +++ b/domains/jorgelopez.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "j0rg3", + "email": "jorge.lopezvz@gmail.com" + }, + "record": { + "URL": "https://github.com/j0rgel0/" + } +} diff --git a/domains/jose.json b/domains/jose.json new file mode 100644 index 000000000..5b4f456f5 --- /dev/null +++ b/domains/jose.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "JMVS", + "email": "jose.veramutka@gmail.com" + }, + "record": { + "CNAME": "veramutka.com.ar" + } +} diff --git a/domains/jretamal.json b/domains/jretamal.json new file mode 100644 index 000000000..d66b618cf --- /dev/null +++ b/domains/jretamal.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "jretamal", + "email": "jretamal@gmail.com" + }, + "record": { + "URL": "https://jretamal.cl" + } +} diff --git a/domains/jsanchez.json b/domains/jsanchez.json new file mode 100644 index 000000000..ad91c8618 --- /dev/null +++ b/domains/jsanchez.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "chuyto", + "email": "jesusanchez221296@gmail.com" + }, + "record": { + "CNAME": "jsanchez-9148b.web.app" + } +} diff --git a/domains/juan-morales.json b/domains/juan-morales.json new file mode 100644 index 000000000..f7cec6977 --- /dev/null +++ b/domains/juan-morales.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "Juanmorales1810", + "email": "juan.exequiel.morales@gmail.com", + "discord": "746910653343596574" + }, + "record": { + "CNAME": "juan-morales.vercel.app" + } +} diff --git a/domains/jumanji.json b/domains/jumanji.json index b3ef5c086..99f81d324 100644 --- a/domains/jumanji.json +++ b/domains/jumanji.json @@ -4,7 +4,7 @@ "email": "madhuchutiya.unhinge650@silomails.com" }, "record": { - "A": ["172.66.47.44", "172.66.44.212"], + "A": ["76.76.21.21"], "MX": ["mx1.improvmx.com", "mx2.improvmx.com"], "TXT": "v=spf1 include:spf.improvmx.com ~all" } diff --git a/domains/karl95.json b/domains/karl95.json new file mode 100644 index 000000000..4bd4c0da0 --- /dev/null +++ b/domains/karl95.json @@ -0,0 +1,10 @@ +{ + "repo": "https://github.com/Karel95/karldev95", + "owner": { + "username": "Karel95", + "email": "karelh2207@gmail.com" + }, + "record": { + "A": ["75.2.60.5"] + } +} diff --git a/domains/keshav.json b/domains/keshav.json new file mode 100644 index 000000000..a434464a2 --- /dev/null +++ b/domains/keshav.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "keshav-writes-code", + "email": "dhimankeshav201@gmail.com" + }, + "record": { + "CNAME": "keshav-writes-code.github.io" + } +} diff --git a/domains/krunch.json b/domains/krunch.json index fa6655cf6..80350c61e 100644 --- a/domains/krunch.json +++ b/domains/krunch.json @@ -3,7 +3,7 @@ "repo": "https://github.com/RadioactivePotato/krunch-is-a-dev", "owner": { "username": "RadioactivePotato", - "discord": "krunchiekrunch._." + "discord": "1166013268008120340" }, "record": { "CNAME": "krunch.pages.dev" diff --git a/domains/lautaro-molina.json b/domains/lautaro-molina.json new file mode 100644 index 000000000..9ce3aee49 --- /dev/null +++ b/domains/lautaro-molina.json @@ -0,0 +1,11 @@ +{ + "description": "json for the domain is-a.dev", + "repo": "https://github.com/LautaroMol", + "owner": { + "username": "LautaroMol", + "email": "Laumol159@gmail.com" + }, + "record": { + "URL": "https://lautaroportfolio.vercel.app/" + } +} diff --git a/domains/link.krunch.json b/domains/link.krunch.json deleted file mode 100644 index 75476d8e7..000000000 --- a/domains/link.krunch.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "RadioactivePotato", - "discord": "krunchiekrunch._." - }, - "record": { - "CNAME": "cname.short.io" - } -} diff --git a/domains/lioo.json b/domains/lioo.json new file mode 100644 index 000000000..673fcd59f --- /dev/null +++ b/domains/lioo.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "lio10jr", + "email": "kevinzambrano593@gmail.com" + }, + "record": { + "URL": "https://github.com/Lio10jr" + } +} diff --git a/domains/lobo.json b/domains/lobo.json new file mode 100644 index 000000000..a583a0216 --- /dev/null +++ b/domains/lobo.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Lobooooooo14", + "discord": "783120232134082580" + }, + "record": { + "CNAME": "olobo.vercel.app" + } +} diff --git a/domains/luihh.json b/domains/luihh.json index a5fef5c3b..54d42ba90 100644 --- a/domains/luihh.json +++ b/domains/luihh.json @@ -6,5 +6,16 @@ }, "record": { "CNAME": "spreadsheet-fih.pages.dev" - } + }, + "redirect_config": { + "custom_paths": { + "/github": "https://github.com/luihh", + "/twitch": "https://www.twitch.tv/luihh23", + "/youtube": "https://www.youtube.com/@Luihh", + "/discord": "https://discord.gg/MdMFGJdUB6", + "/steam": "https://steamcommunity.com/id/Luihh23", + "/paypal": "https://www.paypal.com/paypalme/luihhdev" + } + }, + "proxied": true } diff --git a/domains/luisandre.json b/domains/luisandre.json index d6accd1e9..e8cdec4bd 100644 --- a/domains/luisandre.json +++ b/domains/luisandre.json @@ -4,7 +4,6 @@ "email": "luis073094@gmail.com" }, "record": { - "URL": "https://portafolioluisandre.azurewebsites.net", - "A": ["20.206.176.7"] + "URL": "https://portafolioluisandre.azurewebsites.net" } } diff --git a/domains/luisdanieltrejo.json b/domains/luisdanieltrejo.json new file mode 100644 index 000000000..e39bfe2ba --- /dev/null +++ b/domains/luisdanieltrejo.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "luisdanieltrejo", + "email": "luisdanieltrejo@gmail.com" + }, + "record": { + "CNAME": "luisdanieltrejo.github.io" + } +} diff --git a/domains/luisgerardovillanueva.json b/domains/luisgerardovillanueva.json new file mode 100644 index 000000000..37ea9789e --- /dev/null +++ b/domains/luisgerardovillanueva.json @@ -0,0 +1,12 @@ +{ + "description": "Personal portfolio website", + "repo": "https://github.com/GerardoVillla/portfolio", + "owner": { + "username": "GerardoVillla", + "email": "luismendezgd@gmail.com" + }, + "record": { + "CNAME": "portfolio-6f0jbiit2-gerardovilllas-projects.vercel.app" + } + + } \ No newline at end of file diff --git a/domains/m3o.json b/domains/m3o.json new file mode 100644 index 000000000..63c65284a --- /dev/null +++ b/domains/m3o.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "marco-souza", + "email": "marco@tremtec.com" + }, + "record": { + "CNAME": "marco-pages-dev.pages.dev" + } +} diff --git a/domains/maanripe.json b/domains/maanripe.json new file mode 100644 index 000000000..54f1dd7ed --- /dev/null +++ b/domains/maanripe.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "argkont", + "email": "kohacaelo+is-a-dev@gmail.com" + }, + "record": { + "CNAME": "portafolio-maan-ripe.vercel.app" + } +} diff --git a/domains/maheshpaul.json b/domains/maheshpaul.json new file mode 100644 index 000000000..bde230e65 --- /dev/null +++ b/domains/maheshpaul.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "maheshpaulj", + "email": "mahesh.paul.j@gmail.com" + }, + "record": { + "CNAME": "maheshpaul.vercel.app" + } +} diff --git a/domains/maideveloper.json b/domains/maideveloper.json new file mode 100644 index 000000000..3be85544a --- /dev/null +++ b/domains/maideveloper.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "maideveloper", + "email": "maiwebdeveloper@gmail.com" + }, + "record": { + "CNAME": "maideveloper.com" + } +} diff --git a/domains/mail.boolean44.json b/domains/mail.boolean44.json deleted file mode 100644 index b008c8f0f..000000000 --- a/domains/mail.boolean44.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "owner": { - "username": "boolean44-repos", - "email": "serenitypalmer10@gmail.com" - }, - "record": { - "MX": ["mx1.forwardemail.net", "mx2.forwardemail.net"], - "TXT": ["forward-email=palmerowen100@gmail.com"] - } -} diff --git a/domains/mail.krunch.json b/domains/mail.krunch.json index 45b36bb29..cdeedf725 100644 --- a/domains/mail.krunch.json +++ b/domains/mail.krunch.json @@ -1,8 +1,8 @@ { - "description": "ImprovMX Email", + "description": "ImprovMX Mail Forwarding", "owner": { "username": "RadioactivePotato", - "discord": "krunchiekrunch._." + "discord": "1166013268008120340" }, "record": { "MX": ["mx1.improvmx.com", "mx2.improvmx.com"], diff --git a/domains/manhtran.json b/domains/manhtran.json new file mode 100644 index 000000000..a17d5e061 --- /dev/null +++ b/domains/manhtran.json @@ -0,0 +1,12 @@ +{ + "description": "My personal website", + "repo": "https://github.com/is-a-dev/docs", + "owner": { + "username": "ducmanh86", + "email": "ducmanh86@gmail.com" + }, + "record": { + "CNAME": "tranducmanh-info.web.app" + }, + "proxied": true +} diff --git a/domains/manuel-garcia-nieto.json b/domains/manuel-garcia-nieto.json new file mode 100644 index 000000000..2b4661dbf --- /dev/null +++ b/domains/manuel-garcia-nieto.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "mGarciaNieto", + "email": "mgarcianieto@gmail.com" + }, + "record": { + "CNAME": "mGarciaNieto.github.io" + } +} diff --git a/domains/manugeni.json b/domains/manugeni.json new file mode 100644 index 000000000..27d9bb359 --- /dev/null +++ b/domains/manugeni.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "manugeni" + }, + "record": { + "CNAME": "manugeni.github.io" + } +} diff --git a/domains/marcos.json b/domains/marcos.json new file mode 100644 index 000000000..ee2c00027 --- /dev/null +++ b/domains/marcos.json @@ -0,0 +1,11 @@ +{ + "description": "Developer portfolio", + "repo": "https://github.com/mtoranzo", + "owner": { + "username": "mtoranzo", + "email": "mtoranzo@gmail.com" + }, + "record": { + "CNAME": "mtoranzo.github.io" + } +} \ No newline at end of file diff --git a/domains/martinvruiz.json b/domains/martinvruiz.json new file mode 100644 index 000000000..31d7a0e9a --- /dev/null +++ b/domains/martinvruiz.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "martinvruiz", + "email": "martinvruiz10@gmail.com", + "discord": "martinvruiz10" + }, + "record": { + "CNAME": "portfoliomvr.vercel.app" + } +} diff --git a/domains/marufcseuu.json b/domains/marufcseuu.json new file mode 100644 index 000000000..35d677655 --- /dev/null +++ b/domains/marufcseuu.json @@ -0,0 +1,10 @@ +{ + "description": "0xmaruf.is-a.dev domain", + "owner": { + "username": "marufms4", + "email": "marufsm4@gmail.com" + }, + "record": { + "CNAME": "marufcse.netlify.app" + } +} diff --git a/domains/matt-murdock.json b/domains/matt-murdock.json new file mode 100644 index 000000000..0fd6ae72b --- /dev/null +++ b/domains/matt-murdock.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "xr-coder", + "email": "nryadav7412@gmail.com" + }, + "record": { + "CNAME": "xr-coder.github.io" + } +} diff --git a/domains/maxwelbm.json b/domains/maxwelbm.json new file mode 100644 index 000000000..e7f029e57 --- /dev/null +++ b/domains/maxwelbm.json @@ -0,0 +1,11 @@ +{ + "description": "My blog personal.", + "repo": "https://github.com/maxwelbm/maxwelbm.github.io", + "owner": { + "username": "maxwelbm", + "email": "maxwelbm@hotmail.com" + }, + "record": { + "CNAME": "maxwelbm.github.io" + } +} diff --git a/domains/medinilla.json b/domains/medinilla.json new file mode 100644 index 000000000..257444038 --- /dev/null +++ b/domains/medinilla.json @@ -0,0 +1,11 @@ +{ + "description": "nedinilla is a dev", + "repo": "https://github.com/cmedinilla/cmedinilla.github.io", + "owner": { + "username": "cmedinilla", + "email": "cris.medinill@gmail.com" + }, + "record": { + "URL": "https://cmedinilla.github.io" + } +} diff --git a/domains/memo.json b/domains/memo.json index 4d46c8998..13a1956d7 100644 --- a/domains/memo.json +++ b/domains/memo.json @@ -4,6 +4,6 @@ "email": "gmogollan@gmail.com" }, "record": { - "URL": "https://somosrun.vercel.app/" + "URL": "https://github.com/gmglln" } } diff --git a/domains/michaelmuthomi.json b/domains/michaelmuthomi.json new file mode 100644 index 000000000..0c538ba37 --- /dev/null +++ b/domains/michaelmuthomi.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "michaelmuthomi", + "email": "lit911call@gmail.com" + }, + "record": { + "CNAME": "michael-portfolio-green.vercel.app" + } +} diff --git a/domains/abby.json b/domains/milodev123.json similarity index 100% rename from domains/abby.json rename to domains/milodev123.json diff --git a/domains/minhtuan-1.json b/domains/minhtuan-1.json new file mode 100644 index 000000000..b7f2b9ffc --- /dev/null +++ b/domains/minhtuan-1.json @@ -0,0 +1,11 @@ +{ + "description": "profile-tuan.dev", + "owner": { + "username": "tuannguyen2002", + "email": "nxmtuan.2002@gmail.com", + "discord": "nightfury06749" + }, + "record": { + "CNAME": "cname.vercel-dns.com" + } +} diff --git a/domains/mu.json b/domains/mu.json new file mode 100644 index 000000000..1e8929625 --- /dev/null +++ b/domains/mu.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "mohammadusman666", + "email": "mohammadusman666@gmail.com" + }, + "record": { + "CNAME": "portfolio-1cw.pages.dev" + } +} diff --git a/domains/muhammadabdullah.json b/domains/muhammadabdullah.json new file mode 100644 index 000000000..407a77bdc --- /dev/null +++ b/domains/muhammadabdullah.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "Abdullah9715", + "email": "muftimuhammadabdullah225@gmail.com" + }, + "record": { + "URL": "https://latest-porfolio-website.web.app" + } + } + diff --git a/domains/muthomi.json b/domains/muthomi.json new file mode 100644 index 000000000..4d05dcc6d --- /dev/null +++ b/domains/muthomi.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "michaelmuthomi", + "email": "", + "discord": "michaelgikunda" + }, + "record": { + "CNAME": "michael-portfolio-green.vercel.app" + } +} diff --git a/domains/myprofile.json b/domains/myprofile.json new file mode 100644 index 000000000..eac14a170 --- /dev/null +++ b/domains/myprofile.json @@ -0,0 +1,11 @@ +{ + "description": "tuan.myprofile.dev", + "owner": { + "username": "tuannguyen2002", + "email": "coixaygio107@gmail.com", + "discord": "minhtuan9039" + }, + "record": { + "CNAME": "cname.vercel-dns.com" + } +} diff --git a/domains/mzaman.json b/domains/mzaman.json new file mode 100644 index 000000000..d38ee56b5 --- /dev/null +++ b/domains/mzaman.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "mirzazaman", + "email": "mirzazaman828@gmail.com" + }, + "record": { + "CNAME": "zaman-portfolio.vercel.app" + } +} \ No newline at end of file diff --git a/domains/n.json b/domains/n.json deleted file mode 100644 index d0ef77563..000000000 --- a/domains/n.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "syedtahseen", - "email": "itxtahseen@gmail.com" - }, - "record": { - "CNAME": "xproject-xi.vercel.app" - } -} diff --git a/domains/naftali100.json b/domains/naftali100.json new file mode 100644 index 000000000..20e372492 --- /dev/null +++ b/domains/naftali100.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "naftali100", + "email": "hello@naftali100.top" + }, + "record": { + "CNAME": "naftali100.top" + } +} diff --git a/domains/nahuel.json b/domains/nahuel.json new file mode 100644 index 000000000..b4c8fcdf0 --- /dev/null +++ b/domains/nahuel.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "navalesnahuel", + "email": "navalesnahuel@gmail.com" + }, + "record": { + "CNAME": "navalesnahuel.github.io" + } +} diff --git a/domains/nahuelnavales.json b/domains/nahuelnavales.json new file mode 100644 index 000000000..b4c8fcdf0 --- /dev/null +++ b/domains/nahuelnavales.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "navalesnahuel", + "email": "navalesnahuel@gmail.com" + }, + "record": { + "CNAME": "navalesnahuel.github.io" + } +} diff --git a/domains/nai.json b/domains/nai.json new file mode 100644 index 000000000..daf551898 --- /dev/null +++ b/domains/nai.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "NailethR", + "email": "nait.0005@gmail.com" + }, + "record": { + "CNAME": "nailethr.github.io" + } +} diff --git a/domains/namansrivastava.json b/domains/namansrivastava.json new file mode 100644 index 000000000..2a10e2029 --- /dev/null +++ b/domains/namansrivastava.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "naman-0804", + "email": "namansrivastava1608@gmail.com", + "discord": "naman_1101" + }, + "record": { + "CNAME": "naman08portfolio.vercel.app" + } +} diff --git a/domains/narasima.json b/domains/narasima.json new file mode 100644 index 000000000..29eb301d3 --- /dev/null +++ b/domains/narasima.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "NarasimaPandiyan", + "email": "cs42059@gmail.com", + "discord": "gamingdoodle" + }, + "record": { + "CNAME": "NarasimaPandiyan.github.io" + } +} diff --git a/domains/nef.json b/domains/nef.json new file mode 100644 index 000000000..5b355907d --- /dev/null +++ b/domains/nef.json @@ -0,0 +1,11 @@ +{ + "description": "Describe the use of this subdomain", + "repo": "https://github.com/nefter/eleventy-netlify-boilerplate", + "owner": { + "username": "nefter", + "email": "therealnefter@gmail.com" + }, + "record": { + "A": ["75.2.60.5"] + } +} diff --git a/domains/nguyenminhtuan.json b/domains/nguyenminhtuan.json new file mode 100644 index 000000000..f6d72d0e3 --- /dev/null +++ b/domains/nguyenminhtuan.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "tuannguyen2002", + "email": "", + "discord": "minhtuan9039" + }, + "record": { + "CNAME": "profile-sigma-wine.vercel.app" + } +} diff --git a/domains/nicojsuarez.json b/domains/nicojsuarez.json new file mode 100644 index 000000000..75acb28f2 --- /dev/null +++ b/domains/nicojsuarez.json @@ -0,0 +1,11 @@ +{ + "description": "Personal use", + "repo": "https://github.com/NicoJSuarez2/PersonalPage", + "owner": { + "username": "nicojsuarez2", + "email": "javinsurez@gmail.com" + }, + "record": { + "CNAME": "Nicojsuarez2.github.io" + } +} diff --git a/domains/nxmtuan.json b/domains/nxmtuan.json new file mode 100644 index 000000000..046ab477f --- /dev/null +++ b/domains/nxmtuan.json @@ -0,0 +1,11 @@ +{ + "description": "nxmt-profile.dev", + "owner": { + "username": "tuannguyen2002", + "email": "coixaygio107@gmail.com", + "discord": "nightfury06749" + }, + "record": { + "CNAME": "profile-sigma-wine.vercel.app" + } +} diff --git a/domains/nyexoi.json b/domains/nyexoi.json new file mode 100644 index 000000000..d9b3d5a64 --- /dev/null +++ b/domains/nyexoi.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "nyex0i", + "discord": "1212192971164754033", + "OWL": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAiLCJraWQiOiJaa1VsRmRqVThiUEstLXVVM2JJR09PVHFYYVFFS1ZINFVXOW53MTR6WTJnIn0.nRgrN599r8xvQuvmS0Z9rYahQfr4DHRpFuqCcx0hA7lqvxyfU2bINENKxB9qHUKVLcxxJsVxJhTu9bHMg_lI7CKxDOHfil06iy4biCCDnUCKub8ju3d4YkZoVCBWM5uSHu1BqBjlWD_xKu6jHpV6SwbHbwLpWXSdH-P_KGTgHbaj5NCptvX0s4DdyVZDV5oBqz6VAmqAl0HoSFFnuANz8lfgE9z_yIxK0Rj4u4ce9et9Qkd1QGltI6er9tU2U9LH5X0J7qkA9Cl9sXyO8VwPm70qQfLx-aZ0MZPcHvPNxMiiJ5DxOuvYZS1HQ494nA5ghWQk8WFjvHSiRMaEh5aWBQ.SmcC2sB5sRSC4T9sNkidRw.0Y8OEmwmNVpmr34As2NwAlt-FhlBVOUuYyS8SXHLAh3Q4aYJv55WdwEVNd4u9JWSEwBxYLdajkKFimVzPunQQQqNvfbKGhp3rBdgels_dJU.irZbgI_gDpGkNpagO9e-Nw" + }, + + "record": { + "CNAME": "siteisw.tiiny.site" + } + } + diff --git a/domains/oc.json b/domains/oc.json index cef1c4605..4e82f95b6 100644 --- a/domains/oc.json +++ b/domains/oc.json @@ -4,6 +4,6 @@ "discord": "orangc" }, "record": { - "URL": "https://orangc.xyz" + "URL": "https://orangc.net" } } diff --git a/domains/orange.json b/domains/orange.json index cef1c4605..4e82f95b6 100644 --- a/domains/orange.json +++ b/domains/orange.json @@ -4,6 +4,6 @@ "discord": "orangc" }, "record": { - "URL": "https://orangc.xyz" + "URL": "https://orangc.net" } } diff --git a/domains/owo.json b/domains/owo.json index cef1c4605..4e82f95b6 100644 --- a/domains/owo.json +++ b/domains/owo.json @@ -4,6 +4,6 @@ "discord": "orangc" }, "record": { - "URL": "https://orangc.xyz" + "URL": "https://orangc.net" } } diff --git a/domains/peme969.json b/domains/peme969.json index 0e3f8b38d..daade0c2a 100644 --- a/domains/peme969.json +++ b/domains/peme969.json @@ -11,7 +11,8 @@ "185.199.111.153" ], "TXT":[ - "forward-email=NjNhNjJlMjMzOGJhMWUxNy1hOTk2MzljYmY0ZDczZWViZDY2NTljZmUwMDc4OTM5MmQ3YmVjN2RmYWEyMjFlN2VhODAxZWUwOWI5ODhhNDY2" + "forward-email=YjJhNjc0ZTA4YjVjNmRjMC02YTEyYTY4MWJiZjhhYTViODU3YjdkNDFjYzJlMWMwOWVlZjIwYzkzNmVkMDE5ZmE4Mzk2YzUzZjVkM2Y0YmVkMWIwMGM0NzQ0ZDcwMTJkYWJiZjgwNTNiZTAxM2U3YjdiNjgyNGRlNDQwOWMwN2Q2Y2YxNzliNTZkZjBiYzllODQ0MjJjMmQ0MDYxN2EwZjdiNGNkYWJkZGU3ZDgwMTc1YmQzZmMyN2VjYTI4ZjE5MjczOGE2NTk1YWNlNTIxYTM=", + "google-site-verification=AP1OTNgnMeJljiJnuxShC74Uw-ygmmvr8s_SdohPRcI" ], "MX":[ "mx1.forwardemail.net", diff --git a/domains/pilagonzalez.json b/domains/pilagonzalez.json new file mode 100644 index 000000000..11fe7abd3 --- /dev/null +++ b/domains/pilagonzalez.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "Pilag6", + "email": "pilag6@gmail.com", + "discord": "pilagonzalez" + }, + "record": { + "URL": "https://piladev.netlify.app" + } +} diff --git a/domains/podcodar.json b/domains/podcodar.json new file mode 100644 index 000000000..1c82e8e8a --- /dev/null +++ b/domains/podcodar.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "marco-souza", + "email": "marco@podcodar.org" + }, + "record": { + "CNAME": "podcodar.pages.dev" + } +} diff --git a/domains/rafael.json b/domains/rafael.json new file mode 100644 index 000000000..2bbc8d123 --- /dev/null +++ b/domains/rafael.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "rcerrejon", + "email": "neoline@gmail.com" + }, + "record": { + "CNAME": "rafaelcerrejon.com" + } +} diff --git a/domains/raghu.json b/domains/raghu.json new file mode 100644 index 000000000..ae3043664 --- /dev/null +++ b/domains/raghu.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "raghu-8", + "email": "raghu.project.websites@gmail.com" + }, + "record": { + "A": ["76.76.21.21"] + } +} diff --git a/domains/ramoweb.json b/domains/ramoweb.json new file mode 100644 index 000000000..5171dcb3f --- /dev/null +++ b/domains/ramoweb.json @@ -0,0 +1,11 @@ +{ + "description": "My personal Portfolio Ramoweb", + "repo": "https://github.com/d0vak1n/ramoweb", + "owner": { + "username": "d0vak1n", + "email": "raul@ramoweb.com" + }, + "record": { + "CNAME": "ramoweb.onrender.com" + } +} diff --git a/domains/ranjityadav.json b/domains/ranjityadav.json new file mode 100644 index 000000000..c1a4196d0 --- /dev/null +++ b/domains/ranjityadav.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "13yadav", + "email": "yadavranjit521@gmail.com", + "discord": "529604454908035083" + }, + "record": { + "CNAME": "ranjityadav.vercel.app" + } +} diff --git a/domains/raw.json b/domains/raw.json new file mode 100644 index 000000000..cc2562542 --- /dev/null +++ b/domains/raw.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "is-a-dev", + "email": "admin@is-a.dev" + }, + "record": { + "URL": "https://raw-api.is-a.dev" + } +} diff --git a/domains/rescenic.json b/domains/rescenic.json new file mode 100644 index 000000000..d15d05ae2 --- /dev/null +++ b/domains/rescenic.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "rescenic", + "email": "admin@rescenic.my.id" + }, + "record": { + "CNAME": "rescenic.github.io" + } +} diff --git a/domains/rk.json b/domains/rk.json new file mode 100644 index 000000000..75c7bc5c9 --- /dev/null +++ b/domains/rk.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "rohankokkula", + "email": "rohankokkula01@gmail.com" + }, + "record": { + "URL": "https://rohankokkula.dev/" + } +} diff --git a/domains/rohan-codes.json b/domains/rohan-codes.json new file mode 100644 index 000000000..c85fa32fe --- /dev/null +++ b/domains/rohan-codes.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "khuranajordan", + "email": "rohankhurana20@gmail.com" + }, + "record": { + "CNAME": "khuranajordan.github.io" + } +} diff --git a/domains/rohanjaiswal.json b/domains/rohanjaiswal.json new file mode 100644 index 000000000..d6fd5078f --- /dev/null +++ b/domains/rohanjaiswal.json @@ -0,0 +1,11 @@ +{ + "description": "Rohan Jaiswal's portfolio", + "repo": "https://github.com/jaiswalrohan8796/jaiswalrohan8796", + "owner": { + "username": "jaiswalrohan8796", + "email": "jaiswalrohan8796@gmail.com" + }, + "record": { + "CNAME": "jaiswalrohan8796.github.io" + } +} diff --git a/domains/roman.json b/domains/roman.json new file mode 100644 index 000000000..6c8614026 --- /dev/null +++ b/domains/roman.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "GameRoMan", + "email": "gameromandev@gmail.com" + }, + "record": { + "CNAME": "gameroman.pages.dev" + } +} diff --git a/domains/ronaldo.json b/domains/ronaldo.json new file mode 100644 index 000000000..d3f5275e6 --- /dev/null +++ b/domains/ronaldo.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ronaldoao", + "email": "ronaldoa.ojeda@gmail.com" + }, + "record": { + "CNAME": "vite-react-ronaldos-projects-c3f1d8be.vercel.app" + } +} diff --git a/domains/rt10.json b/domains/rt10.json index c7bc0496d..33ed1daf8 100644 --- a/domains/rt10.json +++ b/domains/rt10.json @@ -9,6 +9,7 @@ "6a43ddd802fc27e4.mx1.emailprofi.seznam.cz", "6a43ddd802fc27e4.mx2.emailprofi.seznam.cz" ], - "TXT": "v=spf1 include:spf.seznam.cz ~all" + "TXT": "v=spf1 include:spf.seznam.cz ~all", + "URL": "https://quincetart10.is-a.dev" } } diff --git a/domains/rufistofeles.json b/domains/rufistofeles.json new file mode 100644 index 000000000..297c8e569 --- /dev/null +++ b/domains/rufistofeles.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "rufistofeles", + "email": "rufistofeles@outlook.com" + }, + "record": { + "CNAME": "rufistofeles.github.io" + } +} diff --git a/domains/rushabh.json b/domains/rushabh.json new file mode 100644 index 000000000..b1991bab2 --- /dev/null +++ b/domains/rushabh.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "rushabhcodes", + "email": "rushabhpatil.dev@gmail.com", + "discord": "_rushabh" + }, + "record": { + "CNAME": "rushabhpatil.vercel.app" + } +} diff --git a/domains/ryz.json b/domains/ryz.json index 709827766..eb845c098 100644 --- a/domains/ryz.json +++ b/domains/ryz.json @@ -1,7 +1,7 @@ { "description": "This subdomain is for my personal projects and mail forwarding.", "owner": { - "username": "0ryz", + "username": "Iron9699", "email": "j6qt9x5sj@mozmail.com", "discord": "4ryz" }, diff --git a/domains/saert.json b/domains/saert.json new file mode 100644 index 000000000..9a52c6583 --- /dev/null +++ b/domains/saert.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "saert3311", + "email": "jose.duarte@trinum.xyz" + }, + "record": { + "CNAME": "trinum.xyz" + } +} \ No newline at end of file diff --git a/domains/saftec.json b/domains/saftec.json deleted file mode 100644 index fc6595f21..000000000 --- a/domains/saftec.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "Samuraiflamesf", - "email": "Samuraiflamesf@gmail.com" - }, - "record": { - "A": ["100.42.189.124"] - } -} diff --git a/domains/samishoukat.json b/domains/samishoukat.json new file mode 100644 index 000000000..0b683aab6 --- /dev/null +++ b/domains/samishoukat.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "samishoukat12", + "email": "samishoukat12@gmail.com" + }, + "record": { + "CNAME": "dev-samishoukat.vercel.app" + } + } \ No newline at end of file diff --git a/domains/sebastianriveros.json b/domains/sebastianriveros.json new file mode 100644 index 000000000..5bed8a35b --- /dev/null +++ b/domains/sebastianriveros.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Wisauw", + "email": "riveross92@gmail.com" + }, + "record": { + "CNAME": "sebastian-riveros.vercel.app" + } +} diff --git a/domains/sevinda-herath._domainkey.sevinda-herath.json b/domains/sevinda-herath._domainkey.sevinda-herath.json new file mode 100644 index 000000000..b974a12ec --- /dev/null +++ b/domains/sevinda-herath._domainkey.sevinda-herath.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Sevinda-Herath", + "email": "sevindaherath@gmail.com" + }, + "record": { + "TXT": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAhBt3btz/Lvou5WOJo+eF4YYWNZHxX0h5vPCfcP0IVtxOcicEhpvuY8DZ86ooVAptJeXKeuXVOz0J3SkAeGu2OAPZdHwKmBXTxvIx040Qhb3plS3T1iQXj3gu8SjkZk2w6X/07iQB+KkUYD8wvAT6UUIyNugQPd74LRYpOV1pRQIDAQAB" + } +} diff --git a/domains/sevinda-herath.json b/domains/sevinda-herath.json index b6f6705cf..73109ff2b 100644 --- a/domains/sevinda-herath.json +++ b/domains/sevinda-herath.json @@ -4,7 +4,16 @@ "email": "sevindaherath@gmail.com" }, "record": { - "CNAME": "sevinda-herath.github.io" + "CNAME": "sevinda-herath.github.io", + "MX": ["mx.zoho.com", "mx2.zoho.com", "mx3.zoho.com"], + "TXT": "v=spf1 include:zohomail.com ~all" + }, + "redirect_config": { + "custom_paths": { + "/github": "https://github.com/Sevinda-Herath", + "/linkedin": "https://www.linkedin.com/in/sevindaherath", + "/youtube": "https://www.youtube.com/channel/UCz3Xgf25_heOC86kxdqunkA" + } }, "proxied": true } diff --git a/domains/shrpp.json b/domains/shrpp.json new file mode 100644 index 000000000..0eaf6370c --- /dev/null +++ b/domains/shrpp.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Shrpp", + "email": "lucius.2906@gmail.com" + }, + "record": { + "URL": "https://github.com/Shrpp" + } + } \ No newline at end of file diff --git a/domains/shubhhh.json b/domains/shubhhh.json new file mode 100644 index 000000000..e0d64b3f0 --- /dev/null +++ b/domains/shubhhh.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "shubhhhwarrior", + "email": "shubhammvaghela999@gmail.com" + }, + "record": { + "CNAME": "shubhhh-96.netlify.app" + } +} diff --git a/domains/smhemel.json b/domains/smhemel.json new file mode 100644 index 000000000..9b5a2bc60 --- /dev/null +++ b/domains/smhemel.json @@ -0,0 +1,11 @@ +{ + "description": "A Full-Stack Developer", + "repo": "https://github.com/smhemel", + "owner": { + "username": "smhemel", + "email": "smhemel.eu@gmail.com" + }, + "record": { + "URL": "https://github.com/smhemel" + } +} diff --git a/domains/socordia.json b/domains/socordia.json new file mode 100644 index 000000000..8ad67b74b --- /dev/null +++ b/domains/socordia.json @@ -0,0 +1,12 @@ +{ + "description": "Documentation site for the socordia programming language", + "repo": "https://github.com/Socordia-Org/Socordia", + "owner": { + "username": "furesoft", + "email": "chris.anders@outlook.de" + }, + "record": { + "URL": "https://furesoft.gitbook.io/socordia" + }, + "proxied": false +} diff --git a/domains/sosaian.json b/domains/sosaian.json new file mode 100644 index 000000000..ae792c568 --- /dev/null +++ b/domains/sosaian.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "sosaian", + "email": "is-a.dev.unworthy202@passinbox.com" + }, + "record": { + "CNAME": "sosaian.github.io" + } +} diff --git a/domains/sticknologic.json b/domains/sticknologic.json new file mode 100644 index 000000000..0a6a40d50 --- /dev/null +++ b/domains/sticknologic.json @@ -0,0 +1,16 @@ +{ + "description": "Simple Portfolio and Blog Website", + "repo": "https://github.com/sticknologic", + "owner": { + "username": "sticknologic", + "x": "STICKnoLOGIC", + "facebook":"STICKnoLOGIC", + "bsky":"STICKnoLOGIC" + }, + "record": { + "NS": [ + "ns1.heliohost.org", + "ns2.heliohost.org" + ] + } +} diff --git a/domains/suryababu.json b/domains/suryababu.json new file mode 100644 index 000000000..51e6e007d --- /dev/null +++ b/domains/suryababu.json @@ -0,0 +1,10 @@ +{ + "description": "Landing page for suryababu.is-a.dev", + "owner": { + "username": "suryababu", + "email": "suryababu.k.s@gmail.com" + }, + "record": { + "CNAME": "suryababus.github.io" + } +} diff --git a/domains/szn20221014._domainkey.104.json b/domains/szn20221014._domainkey.104.json new file mode 100644 index 000000000..c6292fdf7 --- /dev/null +++ b/domains/szn20221014._domainkey.104.json @@ -0,0 +1,10 @@ +{ + "description": "DKIM", + "owner": { + "username": "QuinceTart10", + "discord": "862644161156218891" + }, + "record": { + "CNAME": "szn20221014._domainkey.seznam.cz" + } +} diff --git a/domains/szn20221014._domainkey.quincetart10.json b/domains/szn20221014._domainkey.quincetart10.json new file mode 100644 index 000000000..c6292fdf7 --- /dev/null +++ b/domains/szn20221014._domainkey.quincetart10.json @@ -0,0 +1,10 @@ +{ + "description": "DKIM", + "owner": { + "username": "QuinceTart10", + "discord": "862644161156218891" + }, + "record": { + "CNAME": "szn20221014._domainkey.seznam.cz" + } +} diff --git a/domains/szn20221014._domainkey.rt10.json b/domains/szn20221014._domainkey.rt10.json new file mode 100644 index 000000000..c6292fdf7 --- /dev/null +++ b/domains/szn20221014._domainkey.rt10.json @@ -0,0 +1,10 @@ +{ + "description": "DKIM", + "owner": { + "username": "QuinceTart10", + "discord": "862644161156218891" + }, + "record": { + "CNAME": "szn20221014._domainkey.seznam.cz" + } +} diff --git a/domains/tafviet.json b/domains/tafviet.json new file mode 100644 index 000000000..e28823b63 --- /dev/null +++ b/domains/tafviet.json @@ -0,0 +1,11 @@ +{ + "description": "Landing page for tafviet.is-a.dev", + "repo": "https://github.com/is-a-dev/docs", + "owner": { + "username": "is-a-dev", + "email": "meccar@protonmail.com" + }, + "record": { + "CNAME": "meccar.github.io" + } +} diff --git a/domains/tasawar-hussain.json b/domains/tasawar-hussain.json new file mode 100644 index 000000000..a1d52dbbf --- /dev/null +++ b/domains/tasawar-hussain.json @@ -0,0 +1,11 @@ +{ + "description": "tasawar-hussain.is-a.dev", + "repo": "https://github.com/tasawar-hussain/tasawar-hussain.github.io", + "owner": { + "username": "tasawar-hussain", + "email": "me.tasawarhussain@gmail.com" + }, + "record": { + "CNAME": "tasawar-hussain.github.io" + } +} diff --git a/domains/timothy.json b/domains/timothy.json new file mode 100644 index 000000000..acf3c5871 --- /dev/null +++ b/domains/timothy.json @@ -0,0 +1,11 @@ +{ + "description": "Timothy's Personal Website", + "repo": "https://github.com/tabrownies/tabrownies.github.io", + "owner": { + "username": "tabrownies", + "email": "tabrownies@gmail.com" + }, + "record": { + "CNAME": "tabrownies.github.io" + } +} diff --git a/domains/tlwbr.json b/domains/tlwbr.json new file mode 100644 index 000000000..2ad4303ca --- /dev/null +++ b/domains/tlwbr.json @@ -0,0 +1,11 @@ +{ + "description": "My personal portfolio website", + "repo": "https://github.com/tolubori07/portfolio", + "owner": { + "username": "tolubori07", + "email": "Tolubori07@gmail.com" + }, + "record": { + "CNAME": "tlwbr.netlify.app" + } +} diff --git a/domains/ud.json b/domains/ud.json new file mode 100644 index 000000000..b0ab06c7e --- /dev/null +++ b/domains/ud.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "umanga907", + "email": "umanga.907@gmail.com", + "discord": "ud907" + }, + "record": { + "CNAME": "umanga-portfolio.vercel.app" + } +} diff --git a/domains/umerislam.json b/domains/umerislam.json new file mode 100644 index 000000000..9e46ad79b --- /dev/null +++ b/domains/umerislam.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "umer-islam", + "email": "umer.islam474@gmail.com" + }, + "record": { + "CNAME": "umerislam.netlify.app" + } +} diff --git a/domains/usmanbaig.json b/domains/usmanbaig.json new file mode 100644 index 000000000..db087c533 --- /dev/null +++ b/domains/usmanbaig.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "UsmanBaig001", + "email": "usmanbaig1572@gmail.com" + }, + "record": { + "CNAME": "usmanbaig-dev.vercel.app" + } + } \ No newline at end of file diff --git a/domains/uwu.json b/domains/uwu.json index cef1c4605..4e82f95b6 100644 --- a/domains/uwu.json +++ b/domains/uwu.json @@ -4,6 +4,6 @@ "discord": "orangc" }, "record": { - "URL": "https://orangc.xyz" + "URL": "https://orangc.net" } } diff --git a/domains/vicentelopez.json b/domains/vicentelopez.json new file mode 100644 index 000000000..bf83b0cf9 --- /dev/null +++ b/domains/vicentelopez.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "lopezvcnt", + "email": "lopezvcnt@gmail.com" + }, + "description": "Vicente López portfolio showcasing skills and projects for profesional purpose.", + "repo": "https://github.com/lopezvcnt", + "record": { + "CNAME": "lopezvcnt.github.io" + } +} diff --git a/domains/vm.sevinda-herath.json b/domains/vm.sevinda-herath.json deleted file mode 100644 index f827aefb3..000000000 --- a/domains/vm.sevinda-herath.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "owner": { - "username": "sevinda-herath", - "email": "sevindaherath@gmail.com" - }, - "record": { - "A": ["170.64.240.215"] - }, - "proxied": true -} diff --git a/domains/vrivera.json b/domains/vrivera.json new file mode 100644 index 000000000..9821c3c38 --- /dev/null +++ b/domains/vrivera.json @@ -0,0 +1,11 @@ +{ + "description": "personal portfolio", + "repo": "https://github.com/vcntttt/portfolio", + "owner": { + "username": "vcntttt", + "email": "vrivera.dev@gmail.com" + }, + "record": { + "CNAME": "vcntttt.github.io" + } +} diff --git a/domains/vyductan.json b/domains/vyductan.json new file mode 100644 index 000000000..b824e266a --- /dev/null +++ b/domains/vyductan.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "vyductan", + "email": "vdt5snet@gmail.com", + "discord": "370012050316984321" + }, + "record": { + "A": ["76.76.21.21"] + } +} diff --git a/domains/w.json b/domains/w.json index 159f1b048..55dcef36b 100644 --- a/domains/w.json +++ b/domains/w.json @@ -5,5 +5,8 @@ }, "record": { "URL": "https://william.is-a.dev" + }, + "redirect_config": { + "redirect_paths": true } } diff --git a/domains/wh.json b/domains/wh.json new file mode 100644 index 000000000..55dcef36b --- /dev/null +++ b/domains/wh.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "wdhdev", + "email": "william@is-a.dev" + }, + "record": { + "URL": "https://william.is-a.dev" + }, + "redirect_config": { + "redirect_paths": true + } +} diff --git a/domains/wiki.chuyentinorz.json b/domains/wiki.chuyentinorz.json new file mode 100644 index 000000000..6b2ef87e4 --- /dev/null +++ b/domains/wiki.chuyentinorz.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "akk1to", + "email": "akk1to.dev@gmail.com", + "discord": "727497287777124414" + }, + "record": { + "CNAME": "akk1to.github.io" + } +} diff --git a/domains/william.json b/domains/william.json index 6f3d1268b..fcec296e5 100644 --- a/domains/william.json +++ b/domains/william.json @@ -4,6 +4,12 @@ "email": "william@is-a.dev" }, "record": { - "URL": "https://github.com/wdhdev" + "URL": "https://wharrison.com.au" + }, + "redirect_config": { + "custom_paths": { + "/github": "https://github.com/wdhdev" + }, + "redirect_paths": true } } diff --git a/domains/willymateo.json b/domains/willymateo.json new file mode 100644 index 000000000..6816fa297 --- /dev/null +++ b/domains/willymateo.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "willymateo", + "email": "matheoowilly@gmail.com", + "discord": "willycocolon" + }, + "record": { + "CNAME": "willymateo.vercel.app" + } +} diff --git a/domains/www.fungaming.joe50097.json b/domains/www.fungaming.joe50097.json new file mode 100644 index 000000000..50a39e83b --- /dev/null +++ b/domains/www.fungaming.joe50097.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Joe50097", + "email": "zcell9500@gmail.com" + }, + "record": { + "CNAME": "fungaming-discord-server.netlify.app" + } +} diff --git a/domains/www.joe50097.json b/domains/www.joe50097.json index f92a1bda3..7f5cfbe96 100644 --- a/domains/www.joe50097.json +++ b/domains/www.joe50097.json @@ -4,6 +4,6 @@ "email": "zcell9500@gmail.com" }, "record": { - "A": ["75.2.60.5"] + "CNAME": "joe50097.netlify.app" } } diff --git a/domains/xmars.json b/domains/xmars.json new file mode 100644 index 000000000..9e7cecfe4 --- /dev/null +++ b/domains/xmars.json @@ -0,0 +1,11 @@ +{ + "description": "My personal info", + "repo": "https://github.com/xmars4", + "owner": { + "username": "xmars4", + "email": "xtruongptit@gmail.com" + }, + "record": { + "CNAME": "xmars4.github.io" + } +} diff --git a/domains/yisraeldov.json b/domains/yisraeldov.json new file mode 100644 index 000000000..f8d326cc0 --- /dev/null +++ b/domains/yisraeldov.json @@ -0,0 +1,10 @@ +{ + "description": "Yisrael Dov Lebow", + "owner": { + "username": "yisraeldov", + "email": "lebow@lebowtech.com" + }, + "record": { + "URL": "https://yisraeldov.gitlab.io" + } +} diff --git a/domains/yousef.json b/domains/yousef.json new file mode 100644 index 000000000..28ce8749c --- /dev/null +++ b/domains/yousef.json @@ -0,0 +1,11 @@ +{ + "description": "Portfolio for Yousef Yasser", + "repo": "https://github.com/yys-yss/yys-yss.github.io", + "owner": { + "username": "yys-yss", + "email": "yousefyassersalah@gmail.com" + }, + "record": { + "CNAME": "yys-yss.github.io" + } +} diff --git a/domains/zmail._domainkey.aruria.json b/domains/zmail._domainkey.aruria.json new file mode 100644 index 000000000..0e81d6b0f --- /dev/null +++ b/domains/zmail._domainkey.aruria.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "cjolivier123", + "discord": "1175481072088268920", + "OWL": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAiLCJraWQiOiJaa1VsRmRqVThiUEstLXVVM2JJR09PVHFYYVFFS1ZINFVXOW53MTR6WTJnIn0.XlWqBdmbdUC_mgDhKMY0Hcl1_FRp5IxKkBD1UF2bGowx-BgYpv7UnElAdcrktTrHjJLD75zzEWNR8A_1UH7-4abrnY4lsqu2p9GIScw9j-9zrNZi_EeTmN8XRuD2fVvPFEVmzAQ7O9jE-B6fkMl4GybJB6td05nxzwHi5J-cDGzT1Wg2qu5ierWuHe7P8TI4tq-SwshaxpNTWkMJN9mgGie6QD7zXBo76G7lbFWTOJHM65UK81I2N8nmyttlD2E5ncNgMTyspkR0hmKeIb1cQvR4lVXu3n-NmJg4-PIOMP3BJ_FgiZFQEDps_opWCA-XhcET7C_EjCbZPEJlBfuTxQ.GFEDQow6ltp5UmM6d7EqfA.xoHXb_B_eC2HGsJ-7iTlZ0FAagE6icNiiVRILA3y5YPiC8chzN3t1JpWEP-uyODEUi7HDGVJzPhRwtTBSbY4S4lx4ZxVOIMr2-l5v50hTjo.ebOtxNCyuP2tf0zsqTg8Hg" + }, + + "record": { + "TXT":"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKr1YCFtXzTufNgvRlYuDw72rzN8WBF+F8xNRtI5PwvfVyFEAS7saeRf6hqQ28hdqH8FFmJ9479UkP0023gyUyQcpRQnqu01InfoyPCIicCRv/WQBTKyb0YXMtrF3ANZHBDq0p2lcp/naUtPs2oQEuSI5Ih+SfsCs5HnCRTyV2DQIDAQABl" + } +} diff --git a/domains/zmail._domainkey.joe50097.json b/domains/zmail._domainkey.joe50097.json new file mode 100644 index 000000000..95c73521b --- /dev/null +++ b/domains/zmail._domainkey.joe50097.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Joe50097", + "email": "zcell9500@gmail.com" + }, + "record": { + "TXT": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWPXItvPXEQh/zTsZCFkEcBEObetcpbthrO74OK/zYR+wCk9gHurppJw0nTPcqVVW92Iq78R1b85s6bmGQvFCdMXPM/kM4eWlKKrMcs4QMr8muioEtbyCKu1YenXHZYlns7dfpf5JN2PNnC3cXTTW5uu3F2GNSDXcy/IjhnuSJAwIDAQAB" + } +} diff --git a/tests/domains.test.js b/tests/domains.test.js index f43b05254..46a4339fb 100644 --- a/tests/domains.test.js +++ b/tests/domains.test.js @@ -3,74 +3,54 @@ const fs = require("fs-extra"); const path = require("path"); const domainsPath = path.resolve("domains"); -const files = fs.readdirSync(domainsPath); +const files = fs.readdirSync(domainsPath).filter((file) => file.endsWith(".json")); + +const domainCache = {}; + +function getDomainData(subdomain) { + if (domainCache[subdomain]) { + return domainCache[subdomain]; + } + + try { + const data = fs.readJsonSync(path.join(domainsPath, `${subdomain}.json`)); + domainCache[subdomain] = data; // Cache the domain data + return data; + } catch (error) { + throw new Error(`Failed to read JSON for ${subdomain}: ${error.message}`); + } +} function getParentSubdomain(subdomain) { const parts = subdomain.split("."); if (parts.length <= 1) return null; // No parent for top-level subdomains - // Attempt to find the parent subdomain by removing the last part + // Try to find the parent subdomain by iterating over the parts for (let i = parts.length - 1; i > 0; i--) { const potentialParent = parts.slice(i - 1).join("."); + if (files.includes(`${potentialParent}.json`)) { - return potentialParent; // Return the parent subdomain if it exists + return potentialParent; } } - return null; // Return null if no valid parent is found -} - -function getDomainData(subdomain) { - try { - return fs.readJsonSync(path.join(domainsPath, `${subdomain}.json`)); - } catch (error) { - throw new Error(`Failed to read JSON for ${subdomain}: ${error.message}`); - } -} - -function expandReservedDomains() { - const reserved = require("../util/reserved-domains.json"); - const expandedList = [...reserved]; - - for (const item of reserved) { - const rangeMatch = item.match(/\[(\d+)-(\d+)\]/); // Matches [min-max] - - if (rangeMatch) { - const prefix = item.split("[")[0]; - const start = parseInt(rangeMatch[1], 10); - const end = parseInt(rangeMatch[2], 10); - - if (start < end) { - for (let i = start; i <= end; i++) { - expandedList.push(prefix + i); - } - - expandedList.splice(expandedList.indexOf(item), 1); - } else { - throw new Error(`[util/reserved-domains.json] Invalid range [${start}-${end}] in "${item}"`); - } - } - } - - return expandedList; + return null; } t("Nested subdomains should not exist without a parent subdomain", (t) => { - for (const file of files) { + files.forEach((file) => { const subdomain = file.replace(/\.json$/, ""); if (subdomain.split(".").length > 1) { const parentSubdomain = getParentSubdomain(subdomain); - t.true(files.includes(`${parentSubdomain}.json`), `${file}: Parent subdomain does not exist`); + t.true(parentSubdomain && files.includes(`${parentSubdomain}.json`), `${file}: Parent subdomain does not exist`); } - } - - t.pass(); + }); }); t("Nested subdomains should not exist if the parent subdomain has NS records", (t) => { - for (const file of files) { + files.forEach((file) => { const subdomain = file.replace(/\.json$/, ""); if (subdomain.split(".").length > 1) { @@ -79,18 +59,15 @@ t("Nested subdomains should not exist if the parent subdomain has NS records", ( t.true(!parentDomain.record.NS, `${file}: Parent subdomain has NS records`); } - } - - t.pass(); + }); }); t("Nested subdomains should be owned by the parent subdomain's owner", (t) => { - for (const file of files) { + files.forEach((file) => { const subdomain = file.replace(/\.json$/, ""); if (subdomain.split(".").length > 1) { const data = getDomainData(subdomain); - const parentSubdomain = getParentSubdomain(subdomain); const parentDomain = getDomainData(parentSubdomain); @@ -99,45 +76,5 @@ t("Nested subdomains should be owned by the parent subdomain's owner", (t) => { `${file}: Owner does not match the parent subdomain` ); } - } + }); }); - -const reservedDomains = expandReservedDomains(); - -t("Subdomain names must not be reserved", (t) => { - for (const file of files) { - const subdomain = file.replace(/\.json$/, ""); - - t.true(!reservedDomains.includes(subdomain), `${file}: Subdomain name is reserved`); - } - - t.pass(); -}); - -t("Reserved domains file should be valid", (t) => { - const subdomainRegex = /^_?[a-zA-Z0-9]+([-\.][a-zA-Z0-9]+)*(\[\d+-\d+\])?$/; - - for (const item of reservedDomains) { - t.regex( - item, - subdomainRegex, - `[util/reserved-domains.json] Invalid subdomain name "${item}" at index ${reservedDomains.indexOf(item)}` - ); - } - - t.pass(); -}); - -const exceptedDomains = require("../util/excepted-domains.json"); - -t("Subdomains on the root should not start with an underscore", (t) => { - for (const file of files) { - const subdomain = file.replace(/\.json$/, ""); - - if (subdomain.split(".").length === 1 && !exceptedDomains.includes(subdomain)) { - t.true(subdomain[0] !== "_", `${file}: Root subdomains should not start with an underscore`); - } - } - - t.pass(); -}) diff --git a/tests/json.test.js b/tests/json.test.js index 4dab0ede7..39d293f81 100644 --- a/tests/json.test.js +++ b/tests/json.test.js @@ -2,13 +2,16 @@ const t = require("ava"); const fs = require("fs-extra"); const path = require("path"); +const ignoredRootJSONFiles = ["package-lock.json", "package.json"]; + const requiredFields = { owner: "object", record: "object" }; const optionalFields = { - proxied: "boolean" + proxied: "boolean", + redirect_config: "object" }; const requiredOwnerFields = { @@ -19,92 +22,166 @@ const optionalOwnerFields = { email: "string" }; +const optionalRedirectConfigFields = { + custom_paths: "object", + redirect_paths: "boolean" +}; + const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; const hostnameRegex = /^(?=.{1,253}$)(?:(?:[_a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)\.)+[a-zA-Z]{2,63}$/; +const exceptedDomains = require("../util/excepted.json"); +const reservedDomains = require("../util/reserved.json"); const domainsPath = path.resolve("domains"); const files = fs.readdirSync(domainsPath); -function validateRequiredFields(t, obj, requiredFields, file) { - Object.keys(requiredFields).forEach((key) => { - t.true(obj.hasOwnProperty(key), `${file}: Missing required field: ${key}`); - t.is(typeof obj[key], requiredFields[key], `${file}: Field ${key} should be of type ${requiredFields[key]}`); +function expandReservedDomains(reserved) { + const expandedList = [...reserved]; + + reserved.forEach((item) => { + const rangeMatch = item.match(/\[(\d+)-(\d+)\]/); + + if (rangeMatch) { + const prefix = item.split("[")[0]; + const start = parseInt(rangeMatch[1], 10); + const end = parseInt(rangeMatch[2], 10); + + if (start < end) { + for (let i = start; i <= end; i++) { + expandedList.push(prefix + i); + } + expandedList.splice(expandedList.indexOf(item), 1); + } else { + throw new Error(`[util/reserved.json] Invalid range [${start}-${end}] in "${item}"`); + } + } }); + + return expandedList; } -function validateOptionalFields(t, obj, optionalFields, file) { - Object.keys(optionalFields).forEach((key) => { +const expandedReservedDomains = expandReservedDomains(reservedDomains); + +function findDuplicateKeys(jsonString) { + const keyPattern = /"([^"]+)"(?=\s*:)/g; + const keys = []; + let match; + + // Find all keys in the JSON string + while ((match = keyPattern.exec(jsonString)) !== null) { + keys.push(match[1]); + } + + // Count occurrences of each key + const keyCount = {}; + keys.forEach((key) => { + keyCount[key] = (keyCount[key] || 0) + 1; + }); + + // Return keys that occur more than once + return Object.keys(keyCount).filter((key) => keyCount[key] > 1); +} + +function validateFields(t, obj, fields, file, prefix = "") { + Object.keys(fields).forEach((key) => { + const fieldPath = prefix ? `${prefix}.${key}` : key; + if (obj.hasOwnProperty(key)) { - t.is( - typeof obj[key], - optionalFields[key], - `${file}: Field ${key} should be of type ${optionalFields[key]}` - ); + t.is(typeof obj[key], fields[key], `${file}: Field ${fieldPath} should be of type ${fields[key]}`); + } else if (fields === requiredFields) { + t.true(false, `${file}: Missing required field: ${fieldPath}`); } }); } +function validateFileName(t, file) { + t.true(file.endsWith(".json"), `${file}: File does not have .json extension`); + t.false(file.includes(".is-a.dev"), `${file}: File name should not contain .is-a.dev`); + t.true(file === file.toLowerCase(), `${file}: File name should be all lowercase`); + + // Ignore root domain + if (file !== "@.json") { + const subdomain = file.replace(/\.json$/, ""); + + t.regex( + subdomain + ".is-a.dev", + hostnameRegex, + `${file}: FQDN must be 1-253 characters, use letters, numbers, dots, or hyphens, and not start or end with a hyphen.` + ); + t.true(!expandedReservedDomains.includes(subdomain), `${file}: Subdomain name is reserved`); + + if (subdomain.split(".").length === 1 && !exceptedDomains.includes(subdomain)) { + t.false(subdomain.startsWith("_"), `${file}: Root subdomains should not start with an underscore`); + } + } +} + +t("JSON files should not be in the root directory", (t) => { + const rootFiles = fs + .readdirSync(path.resolve()) + .filter((file) => file.endsWith(".json") && !ignoredRootJSONFiles.includes(file)); + t.is(rootFiles.length, 0, "JSON files should not be in the root directory"); +}); + t("All files should be valid JSON", (t) => { files.forEach((file) => { t.notThrows(() => fs.readJsonSync(path.join(domainsPath, file)), `${file}: Invalid JSON file`); }); }); -t("All files should have valid file names", (t) => { +t("All files should not have duplicate keys", (t) => { files.forEach((file) => { - t.true(file.endsWith(".json"), `${file}: File does not have .json extension`); - t.false(file.includes(".is-a.dev"), `${file}: File name should not contain .is-a.dev`); - t.true(file === file.toLowerCase(), `${file}: File name should be lowercase`); + // Parse JSON as a string because JS automatically gets the last key if there are duplicates + const rawData = fs.readFileSync(`${domainsPath}/${file}`, "utf8"); + const duplicateKeys = findDuplicateKeys(rawData); - // Ignore root domain - if (file !== "@.json") { - const subdomain = file.replace(/\.json$/, ""); - t.regex( - subdomain + ".is-a.dev", - hostnameRegex, - `${file}: FQDN must be 1-253 characters, use letters, numbers, dots, or hyphens, and not start or end with a hyphen.` - ); - } + t.true(!duplicateKeys.length, `${file}: Duplicate keys found: ${duplicateKeys.join(", ")}`); }); }); -t("All files should have the required fields", (t) => { +t("All files should have valid file names", (t) => { + files.forEach((file) => { + validateFileName(t, file); + }); +}); + +t("All files should have valid required and optional fields", (t) => { files.forEach((file) => { const data = fs.readJsonSync(path.join(domainsPath, file)); // Validate top-level required fields - validateRequiredFields(t, data, requiredFields, file); + validateFields(t, data, requiredFields, file); - // Validate owner object fields - validateRequiredFields(t, data.owner, requiredOwnerFields, file); + // Validate owner fields + validateFields(t, data.owner, requiredOwnerFields, file, "owner"); + validateFields(t, data.owner, optionalOwnerFields, file, "owner"); + + // Validate optional fields for top-level and redirect config + validateFields(t, data, optionalFields, file); + if (data.redirect_config) { + validateFields(t, data.redirect_config, optionalRedirectConfigFields, file, "redirect_config"); + } + + // Validate email format + if (data.owner.email) { + t.regex(data.owner.email, emailRegex, `${file}: Owner email should be a valid email address`); + } // Ensure 'record' field is not empty t.true(Object.keys(data.record).length > 0, `${file}: Missing DNS records`); }); }); -t("All files should have valid optional fields", (t) => { - files.forEach((file) => { - const data = fs.readJsonSync(path.join(domainsPath, file)); +t("Reserved domains file should be valid", (t) => { + const subdomainRegex = /^_?[a-zA-Z0-9]+([-\.][a-zA-Z0-9]+)*(\[\d+-\d+\])?$/; - // Validate optional fields at top level - validateOptionalFields(t, data, optionalFields, file); - - // Validate optional fields for owner object - validateOptionalFields(t, data.owner, optionalOwnerFields, file); - - // Email validation (if provided) - if (data.owner.email) { - t.regex(data.owner.email, emailRegex, `${file}: Owner email should be a valid email address`); - } + expandedReservedDomains.forEach((item, index) => { + t.regex( + item, + subdomainRegex, + `[util/reserved-domains.json] Invalid subdomain name "${item}" at index ${index}` + ); }); -}); -const ignoredJSONFiles = ["package-lock.json", "package.json"]; - -t("JSON files should not be in the root directory", (t) => { - const rootFiles = fs - .readdirSync(path.resolve()) - .filter((file) => file.endsWith(".json") && !ignoredJSONFiles.includes(file)); - t.is(rootFiles.length, 0, "JSON files should not be in the root directory"); + t.pass(); }); diff --git a/tests/proxy.test.js b/tests/proxy.test.js index 2bb64b48c..d7c73bc5b 100644 --- a/tests/proxy.test.js +++ b/tests/proxy.test.js @@ -3,10 +3,25 @@ const fs = require("fs-extra"); const path = require("path"); const requiredRecordsToProxy = new Set(["A", "AAAA", "CNAME"]); -// URL records are not listed here because they are proxied by default, so they don't need the proxied flag + +const domainCache = {}; + +function getDomainData(file) { + if (domainCache[file]) { + return domainCache[file]; + } + + try { + const data = fs.readJsonSync(path.join(domainsPath, file)); + domainCache[file] = data; + return data; + } catch (error) { + throw new Error(`Failed to read JSON for ${file}: ${error.message}`); + } +} function validateProxiedRecords(t, data, file) { - // Convert the Set to an array for message display + // Convert the Set to an array for message display (moved outside the loop to optimize performance) const recordTypes = Array.from(requiredRecordsToProxy).join(", "); if (data.proxied) { @@ -22,9 +37,9 @@ function validateProxiedRecords(t, data, file) { const domainsPath = path.resolve("domains"); const files = fs.readdirSync(domainsPath).filter((file) => file.endsWith(".json")); -t("Domains with proxy enabled should have at least one record that can be proxied", (t) => { +t("Domains with proxy enabled must have at least one proxy-able record", (t) => { files.forEach((file) => { - const domain = fs.readJsonSync(path.join(domainsPath, file)); + const domain = getDomainData(file); validateProxiedRecords(t, domain, file); }); diff --git a/tests/records.test.js b/tests/records.test.js index de5ecbadc..223971308 100644 --- a/tests/records.test.js +++ b/tests/records.test.js @@ -3,18 +3,32 @@ const fs = require("fs-extra"); const path = require("path"); const validRecordTypes = new Set(["A", "AAAA", "CAA", "CNAME", "DS", "MX", "NS", "SRV", "TXT", "URL"]); - const hostnameRegex = /^(?=.{1,253}$)(?:(?:[_a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)\.)+[a-zA-Z]{2,63}$/; const ipv4Regex = /^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}$/; const ipv6Regex = /^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|^::(?:[0-9a-fA-F]{1,4}:){0,6}[0-9a-fA-F]{1,4}$|^(?:[0-9a-fA-F]{1,4}:){1,7}:$|^(?:[0-9a-fA-F]{1,4}:){0,6}::(?:[0-9a-fA-F]{1,4}:){0,5}[0-9a-fA-F]{1,4}$/; const domainsPath = path.resolve("domains"); -const files = fs.readdirSync(domainsPath); +const files = fs.readdirSync(domainsPath).filter((file) => file.endsWith(".json")); + +const domainCache = {}; + +function getDomainData(file) { + if (domainCache[file]) { + return domainCache[file]; + } + + try { + const data = fs.readJsonSync(path.join(domainsPath, file)); + domainCache[file] = data; + return data; + } catch (error) { + throw new Error(`Failed to read JSON for ${file}: ${error.message}`); + } +} function expandIPv6(ip) { let segments = ip.split(":"); - const emptyIndex = segments.indexOf(""); if (emptyIndex !== -1) { @@ -31,7 +45,7 @@ function expandIPv6(ip) { return segments.map((segment) => segment.padStart(4, "0")).join(":"); } -function validateIPv4(ip, proxied, file, index) { +function validateIPv4(ip, proxied) { const parts = ip.split(".").map(Number); if (parts.length !== 4 || parts.some((part) => isNaN(part) || part < 0 || part > 255)) return false; @@ -74,135 +88,196 @@ function isValidHexadecimal(value) { return /^[0-9a-fA-F]+$/.test(value); } +function validateRecordValues(t, data, file) { + const subdomain = file.replace(/\.json$/, ""); + + Object.entries(data.record).forEach(([key, value]) => { + // General validation for arrays + if (["A", "AAAA", "MX", "NS"].includes(key)) { + t.true(Array.isArray(value), `${file}: Record value for ${key} should be an array`); + + value.forEach((record, idx) => { + t.true( + typeof record === "string", + `${file}: Record value for ${key} should be a string at index ${idx}` + ); + + if (key === "A") { + t.true(ipv4Regex.test(record), `${file}: Invalid IPv4 address for ${key} at index ${idx}`); + t.true( + validateIPv4(record, data.proxied), + `${file}: Invalid IPv4 address for ${key} at index ${idx}` + ); + } else if (key === "AAAA") { + const expandedIPv6 = expandIPv6(record); + t.true(ipv6Regex.test(expandedIPv6), `${file}: Invalid IPv6 address for ${key} at index ${idx}`); + t.true(validateIPv6(expandedIPv6), `${file}: Invalid IPv6 address for ${key} at index ${idx}`); + } else if (["MX", "NS"].includes(key)) { + t.true(isValidHostname(record), `${file}: Invalid hostname for ${key} at index ${idx}`); + } + }); + } + + // CNAME and URL validations + if (["CNAME", "URL"].includes(key)) { + t.true(typeof value === "string", `${file}: Record value for ${key} should be a string`); + + if (key === "CNAME") { + t.true(isValidHostname(value), `${file}: Invalid hostname for ${key}`); + t.true(value !== file, `${file}: CNAME cannot point to itself`); + } else if (key === "URL") { + t.true( + value.startsWith("http://") || value.startsWith("https://"), + `${file}: Record value for ${key} must start with http:// or https://` + ); + t.notThrows(() => new URL(value), `${file}: Invalid URL for ${key}`); + + const urlHost = new URL(value).host; + const isSelfReferencing = + file === "@.json" ? urlHost === "is-a.dev" : urlHost === `${subdomain}.is-a.dev`; + + t.true(!isSelfReferencing, `${file}: URL cannot point to itself`); + } + } + + // CAA, DS, SRV validations + if (["CAA", "DS", "SRV"].includes(key)) { + t.true(Array.isArray(value), `${file}: Record value for ${key} should be an array`); + + value.forEach((record, idx) => { + t.true( + typeof record === "object", + `${file}: Record value for ${key} should be an object at index ${idx}` + ); + + if (key === "CAA") { + t.true( + ["issue", "issuewild", "iodef"].includes(record.tag), + `${file}: Invalid tag for CAA at index ${idx}` + ); + t.true(typeof record.value === "string", `${file}: Invalid value for CAA at index ${idx}`); + t.true( + isValidHostname(record.value) || record.value === ";", + `${file}: Value must be a hostname or semicolon for CAA at index ${idx}` + ); + } else if (key === "DS") { + t.true( + Number.isInteger(record.key_tag) && record.key_tag >= 0 && record.key_tag <= 65535, + `${file}: Invalid key_tag for DS at index ${idx}` + ); + t.true( + Number.isInteger(record.algorithm) && record.algorithm >= 0 && record.algorithm <= 255, + `${file}: Invalid algorithm for DS at index ${idx}` + ); + t.true( + Number.isInteger(record.digest_type) && record.digest_type >= 0 && record.digest_type <= 255, + `${file}: Invalid digest_type for DS at index ${idx}` + ); + t.true(isValidHexadecimal(record.digest), `${file}: Invalid digest for DS at index ${idx}`); + } else if (key === "SRV") { + t.true( + Number.isInteger(record.priority) && record.priority >= 0 && record.priority <= 65535, + `${file}: Invalid priority for SRV at index ${idx}` + ); + t.true( + Number.isInteger(record.weight) && record.weight >= 0 && record.weight <= 65535, + `${file}: Invalid weight for SRV at index ${idx}` + ); + t.true( + Number.isInteger(record.port) && record.port >= 0 && record.port <= 65535, + `${file}: Invalid port for SRV at index ${idx}` + ); + t.true(isValidHostname(record.target), `${file}: Invalid target for SRV at index ${idx}`); + } + }); + } + + // TXT validation + if (key === "TXT") { + const values = Array.isArray(value) ? value : [value]; + values.forEach((record, idx) => { + t.true(typeof record === "string", `${file}: TXT record value should be a string at index ${idx}`); + }); + } + }); + + if (data.redirect_config) { + const customPaths = Object.keys(data.redirect_config.custom_paths || {}); + const pathRegex = /^\/[a-zA-Z0-9\-_\.\/]+(? { + const customRedirectURL = data.redirect_config.custom_paths[customPath]; + const urlMessage = `${file}: Custom path in redirect_config`; + + // Validate the custom path + t.true( + pathRegex.test(customPath), + `${urlMessage} must start with a slash, contain only alphanumeric characters, hyphens, underscores, periods, and slashes, and cannot end with a slash at index ${idx}` + ); + t.true( + customPath.length >= 2 && customPath.length <= 255, + `${urlMessage} should be 2-255 characters long at index ${idx}` + ); + + // Validate the redirect URL + t.true( + data.record.URL !== customRedirectURL, + `${urlMessage} should be different from the URL record at index ${idx}` + ); + t.true( + customRedirectURL.startsWith("http://") || customRedirectURL.startsWith("https://"), + `${urlMessage} must start with http:// or https:// at index ${idx}` + ); + t.notThrows(() => new URL(customRedirectURL), `${urlMessage} contains an invalid URL at index ${idx}`); + + // Check for self-referencing redirects + const urlHost = new URL(customRedirectURL).host; + const isSelfReferencing = file === "@.json" ? urlHost === "is-a.dev" : urlHost === `${subdomain}.is-a.dev`; + t.true(!isSelfReferencing, `${urlMessage} cannot point to itself at index ${idx}`); + }); + } +} + t("All files should have valid record types", (t) => { files.forEach((file) => { - const data = fs.readJsonSync(path.join(domainsPath, file)); + const data = getDomainData(file); const recordKeys = Object.keys(data.record); recordKeys.forEach((key) => { t.true(validateRecordType(key), `${file}: Invalid record type: ${key}`); }); - // Specific record rules for CNAME, NS, and DS + // Record type combinations validation if (recordKeys.includes("CNAME") && !data.proxied) { t.is(recordKeys.length, 1, `${file}: CNAME records cannot be combined with other records unless proxied`); } - if (recordKeys.includes("NS")) { t.true( recordKeys.length === 1 || (recordKeys.length === 2 && recordKeys.includes("DS")), `${file}: NS records cannot be combined with other records, except for DS records` ); } - if (recordKeys.includes("DS")) { t.true(recordKeys.includes("NS"), `${file}: DS records must be combined with NS records`); } + if (recordKeys.includes("URL")) { + t.true( + !recordKeys.includes("A") && !recordKeys.includes("AAAA") && !recordKeys.includes("CNAME"), + `${file}: URL records cannot be combined with A, AAAA, or CNAME records` + ); + } + if (data.redirect_config) { + t.true( + recordKeys.includes("URL") || data.proxied, + `${file}: Redirect config must be combined with a URL record or the domain must be proxied` + ); + if (data.redirect_config.redirect_paths) { + t.true(recordKeys.includes("URL"), `${file}: redirect_config.redirect_paths requires a URL record`); + } + } + + validateRecordValues(t, data, file); }); -}); -t("All files should not have duplicate record keys", (t) => { - files.forEach((file) => { - const data = fs.readJsonSync(path.join(domainsPath, file)); - const recordKeys = Object.keys(data.record); - const uniqueRecordKeys = new Set(recordKeys); - - t.is(recordKeys.length, uniqueRecordKeys.size, `${file}: Duplicate record keys found`); - }); -}); - -t("All files should have valid record values", (t) => { - files.forEach((file) => { - const data = fs.readJsonSync(path.join(domainsPath, file)); - - Object.keys(data.record).forEach((key) => { - const value = data.record[key]; - const subdomain = file.replace(/\.json$/, ""); // Get the subdomain from the filename - - // Validate A, AAAA, MX, NS records: Array of strings - if (["A", "AAAA", "MX", "NS"].includes(key)) { - t.true(Array.isArray(value), `${file}: Record value for ${key} should be an array`); - - value.forEach((record, idx) => { - t.true( - typeof record === "string", - `${file}: Record value for ${key} should be a string at index ${idx}` - ); - - if (key === "A") { - t.regex(record, ipv4Regex, `${file}: Invalid IPv4 address for ${key} at index ${idx}`); - t.true( - validateIPv4(record, data.proxied, file, idx), - `${file}: Invalid IPv4 address for ${key} at index ${idx}` - ); - } - - if (key === "AAAA") { - t.regex( - expandIPv6(record), - ipv6Regex, - `${file}: Invalid IPv6 address for ${key} at index ${idx}` - ); - t.true(validateIPv6(record), `${file}: Invalid IPv6 address for ${key} at index ${idx}`); - } - - if (["MX", "NS"].includes(key)) { - t.true(isValidHostname(record), `${file}: Invalid hostname for ${key} at index ${idx}`); - } - }); - } - - // Validate CNAME and URL records: Single string - if (["CNAME", "URL"].includes(key)) { - t.true(typeof value === "string", `${file}: Record value for ${key} should be a string`); - - if (key === "CNAME") { - t.true(isValidHostname(value), `${file}: Invalid hostname for ${key}`); - t.true(value !== file, `${file}: CNAME cannot point to itself`); - if (file === "@.json") { - t.true(value !== "is-a.dev", `${file}: CNAME cannot point to itself`); - } - } - - if (key === "URL") { - t.true(value.startsWith("http://") || value.startsWith("https://"), `${file}: Record value for ${key} must start with http:// or https://`) - t.notThrows(() => new URL(value), `${file}: Invalid URL for ${key}`); - } - } - - // Validate CAA, DS, SRV records: Array of objects - if (["CAA", "DS", "SRV"].includes(key)) { - t.true(Array.isArray(value), `${file}: Record value for ${key} should be an array`); - - value.forEach((record, idx) => { - t.true( - typeof record === "object", - `${file}: Record value for ${key} should be an object at index ${idx}` - ); - - if (key === "DS") { - t.true( - Number.isInteger(record.key_tag) && record.key_tag >= 0 && record.key_tag <= 65535, - `${file}: Invalid key_tag for DS at index ${idx}` - ); - t.true(isValidHexadecimal(record.digest), `${file}: Invalid digest for DS at index ${idx}`); - } - }); - } - - // TXT: Single string or array of strings - if (key === "TXT") { - if (Array.isArray(value)) { - value.forEach((record, idx) => { - t.true( - typeof record === "string", - `${file}: TXT record value should be a string at index ${idx}` - ); - }); - } else { - t.true(typeof value === "string", `${file}: TXT record value should be a string`); - } - } - }); - }); + t.pass(); }); diff --git a/tests/special.test.js b/tests/special.test.js new file mode 100644 index 000000000..bd18e3e00 --- /dev/null +++ b/tests/special.test.js @@ -0,0 +1,53 @@ +const t = require("ava"); +const fs = require("fs-extra"); +const path = require("path"); + +const domainsPath = path.resolve("domains"); +const files = fs.readdirSync(domainsPath).filter((file) => file.endsWith(".json")); + +const bypassedUsernames = require("../util/bypassed.json").map((username) => username.toLowerCase()); + +function getDomainData(subdomain) { + try { + const data = fs.readJsonSync(path.join(domainsPath, `${subdomain}.json`)); + return data; + } catch (error) { + throw new Error(`Failed to read JSON for ${subdomain}: ${error.message}`); + } +} + +t("Users are limited to one single character subdomain", (t) => { + const results = []; + + files.forEach((file) => { + const subdomain = file.replace(/\.json$/, ""); + const data = getDomainData(subdomain); + + if (subdomain.length === 1 && !bypassedUsernames.includes(data.owner.username.toLowerCase())) { + results.push({ + subdomain, + owner: data.owner.username.toLowerCase() + }); + } + }); + + const duplicates = results.filter((result) => results.filter((r) => r.owner === result.owner).length > 1); + const output = duplicates.reduce((acc, curr) => { + if (!acc[curr.owner]) { + acc[curr.owner] = []; + } + + acc[curr.owner].push(`${curr.subdomain}.is-a.dev`); + return acc; + }, {}); + + t.is( + duplicates.length, + 0, + Object.keys(output) + .map((owner) => `${owner} - ${output[owner].join(", ")}`) + .join("\n") + ); + + t.pass(); +}); diff --git a/util/bypassed.json b/util/bypassed.json new file mode 100644 index 000000000..ed9a583ce --- /dev/null +++ b/util/bypassed.json @@ -0,0 +1,4 @@ +[ + "is-a-dev", + "wdhdev" +] diff --git a/util/excepted-domains.json b/util/excepted.json similarity index 77% rename from util/excepted-domains.json rename to util/excepted.json index 9f7268d2e..fd68638d8 100644 --- a/util/excepted-domains.json +++ b/util/excepted.json @@ -1,6 +1,7 @@ [ "_discord", "_psl", + "_gh-is-a-dev-docs-o", "_gh-is-a-dev-o", "_github-pages-challenge-is-a-dev" ] diff --git a/util/reserved-domains.json b/util/reserved.json similarity index 91% rename from util/reserved-domains.json rename to util/reserved.json index f7cdfe581..093fdfa17 100644 --- a/util/reserved-domains.json +++ b/util/reserved.json @@ -1,121 +1,125 @@ -[ - "_atproto", - "_vercel", - "account", - "accounts", - "admin", - "administrator", - "alert", - "alerts", - "api", - "auth", - "authentication", - "authorisation", - "authorise", - "authorization", - "authorize", - "aux", - "billing", - "blog", - "calendar", - "cart", - "catalog", - "checkout", - "co", - "com", - "com[1-9]", - "con", - "confirm", - "confirmation", - "dashboard", - "default", - "dns", - "doc", - "documentation", - "email", - "error", - "errors", - "event", - "events", - "example", - "feedback", - "finance", - "forgot", - "forgot-password", - "gtld", - "guest", - "help", - "helpdesk", - "hostmaster", - "info", - "infos", - "login", - "logout", - "lpt[1-9]", - "m", - "mail", - "maintainer", - "maintainers", - "marketing", - "media", - "mobile", - "net", - "news", - "noc", - "notification", - "notifications", - "notify", - "ns", - "ns[1-99]", - "nul", - "oauth", - "official", - "operations", - "ops", - "org", - "organisation", - "pay", - "payment", - "payments", - "portal", - "postmaster", - "recovery", - "redirect", - "registrar", - "registry", - "reset", - "reset-password", - "root", - "sales", - "schedule", - "security", - "service", - "services", - "session", - "sessions", - "shop", - "signin", - "signout", - "signup", - "staff", - "store", - "superuser", - "support", - "sys", - "system", - "teams", - "test", - "test[1-9999]", - "tld", - "token", - "tokens", - "url", - "url[1-9999]", - "user", - "users", - "webmaster", - "whois", - "www[1-99]", - "wwww", - "your-domain-name" -] +[ + "account", + "accounts", + "admin", + "administrator", + "alert", + "alerts", + "api", + "auth", + "authentication", + "authorisation", + "authorise", + "authorization", + "authorize", + "aux", + "billing", + "blog", + "calendar", + "cart", + "catalog", + "checkout", + "co", + "com", + "com[1-9]", + "con", + "confirm", + "confirmation", + "dashboard", + "default", + "dns", + "doc", + "documentation", + "email", + "emails", + "error", + "errors", + "event", + "events", + "example", + "feedback", + "finance", + "forgot", + "forgot-password", + "gtld", + "guest", + "help", + "helpdesk", + "hostmaster", + "info", + "infos", + "int", + "internal", + "login", + "logout", + "lpt[1-9]", + "m", + "mail", + "maintainer", + "maintainers", + "marketing", + "media", + "mobile", + "net", + "network", + "news", + "noc", + "notification", + "notifications", + "notify", + "ns", + "ns[1-99]", + "nul", + "oauth", + "official", + "operations", + "ops", + "org", + "organisation", + "pay", + "payment", + "payments", + "portal", + "postmaster", + "recovery", + "redirect", + "registrar", + "registry", + "reset", + "reset-password", + "root", + "sales", + "schedule", + "secure", + "security", + "service", + "services", + "session", + "sessions", + "shop", + "signin", + "signout", + "signup", + "staff", + "store", + "superuser", + "support", + "sys", + "system", + "teams", + "test", + "test[1-9999]", + "tld", + "token", + "tokens", + "url", + "url[1-9999]", + "user", + "users", + "webmail", + "webmaster", + "whois", + "www[1-99]", + "wwww", + "your-domain-name" +]