diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index e4efd5e4da..a6f78a530f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -45,7 +45,7 @@ Every file must be valid JSON and follow this exact structure from https://docs. **Critical rules (enforce strictly):** - `"owner"."username"` **MUST** exactly match the GitHub username of the person who opened the PR, **unless** the PR author is a trusted maintainer listed in `util/trusted.json`. - Trusted maintainers: STICKnoLOGIC, DEV-DIBSTER, iostpa, orangci, Stef-00012, satr14washere, wdhdev. + Trusted maintainers: STICKnoLOGIC, DEV-DIBSTER, iostpa, orangci, Stef-DP, satr14washere, wdhdev. - `"records"` is required (note: it must be `"records"`, never `"record"`). - **CNAME records cannot be used with any other records and vice versa.** Only one record type is allowed if CNAME is present. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e94fd11087..826f192592 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,8 @@ on: - "tests/*" - "util/*" - ".github/workflows/ci.yml" + - "package.json" + - "package-lock.json" workflow_dispatch: diff --git a/README.md b/README.md index 63f51856c8..7cb235a0a7 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,13 @@

is-a.dev is a service that allows developers to get a sweet-looking .is-a.dev subdomain for their personal websites.

+> [!TIP] +> We have just launched another free subdomain service for developers, called [**`is-a.bot`**](https://is-a.bot)! +> +> Claim your `.is-a.bot` subdomain for free, before it's too late! +> +> **GitHub** — [**free-domains/is-a.bot**](https://github.com/free-domains/is-a.bot) + --- ## Announcements diff --git a/domains/_discord.rusky.json b/domains/_discord.rusky.json new file mode 100644 index 0000000000..5893125593 --- /dev/null +++ b/domains/_discord.rusky.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "ruskydev" + }, + "records": { + "TXT": "dh=cb120c45e7e8c3ff2e65938b1e2fdf9d2f18707f" + } +} diff --git a/domains/_github-pages-challenge-patelnaeem7.naeem-patel.json b/domains/_github-pages-challenge-patelnaeem7.naeem-patel.json new file mode 100644 index 0000000000..1e8d0a3ef5 --- /dev/null +++ b/domains/_github-pages-challenge-patelnaeem7.naeem-patel.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "patelnaeem7", + "email": "naeem.patel.dev@gmail.com" + }, + "records": { + "TXT": "02a5d526f08626c4a17ee75fe8c185" + } +} diff --git a/domains/_railway-verify.marwaabubaker.json b/domains/_railway-verify.marwaabubaker.json new file mode 100644 index 0000000000..721f923e1f --- /dev/null +++ b/domains/_railway-verify.marwaabubaker.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "5marvv", + "email": "safa4marwa5@gmail.com" + }, + "records": { + "TXT": "railway-verify=28a5353c309efdc1a66b67d3008701c3631ac4dd2a0168a6365f6d1ca334e35a" + } +} diff --git a/domains/_vercel.arem.json b/domains/_vercel.arem.json new file mode 100644 index 0000000000..1c4a88500f --- /dev/null +++ b/domains/_vercel.arem.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Arem-ee", + "email": "toromadeadesina@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=arem.is-a.dev,2ed19320fd195ba3dd09" + } +} diff --git a/domains/_vercel.piyush.json b/domains/_vercel.piyush.json new file mode 100644 index 0000000000..f6c585d53b --- /dev/null +++ b/domains/_vercel.piyush.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Piyush-Sagar", + "email": "sagarpiyush.27@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=piyush.is-a.dev,3332d110f16d6401a6ce" + } +} \ No newline at end of file diff --git a/domains/_vercel.rusky.json b/domains/_vercel.rusky.json new file mode 100644 index 0000000000..7c84829d1c --- /dev/null +++ b/domains/_vercel.rusky.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ruskydev", + "email": "iamayaanalee@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=rusky.is-a.dev,79b8189df5b481e60e4c" + } +} diff --git a/domains/alwaysboner.json b/domains/alwaysboner.json new file mode 100644 index 0000000000..632ad34901 --- /dev/null +++ b/domains/alwaysboner.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "alwaysboner", + "email": "slimmestpickings@gmail.com" + }, + "records": { + "A": [ + "20.127.232.249" + ] + } +} diff --git a/domains/arem.json b/domains/arem.json new file mode 100644 index 0000000000..a437432063 --- /dev/null +++ b/domains/arem.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Arem-ee", + "email": "toromadeadesina@gmail.com" + }, + "records": { + "A": ["216.198.79.1"] + } +} diff --git a/domains/austin.json b/domains/austin.json new file mode 100644 index 0000000000..c254bc08bb --- /dev/null +++ b/domains/austin.json @@ -0,0 +1,11 @@ +{ + "description": "Austin Munene - Developer Portfolio", + "repo": "https://github.com/AustinMunene/Austin.is-a.dev", + "owner": { + "username": "AustinMunene", + "email": "austinmunesh@gmail.com" + }, + "records": { + "CNAME": "austinmunene.netlify.app" + } +} diff --git a/domains/gojo.json b/domains/gojo.json index 41614189a4..e936e80eaf 100644 --- a/domains/gojo.json +++ b/domains/gojo.json @@ -6,7 +6,22 @@ "records": { "CNAME": "azanbroib-hash.github.io", "TXT": [ - "zoho-verification=zb65283090.zmverify.zoho.eu" + "zoho-verification=zb65283090.zmverify.zoho.eu", + "v=spf1 include:zohomail.eu ~all" + ], + "MX": [ + { + "target": "mx.zoho.eu", + "priority": 10 + }, + { + "target": "mx2.zoho.eu", + "priority": 20 + }, + { + "target": "mx3.zoho.eu", + "priority": 50 + } ] }, "proxied": true diff --git a/domains/hasnatibrahim.json b/domains/hasnatibrahim.json new file mode 100644 index 0000000000..97b69e4fdc --- /dev/null +++ b/domains/hasnatibrahim.json @@ -0,0 +1,10 @@ +{ + "description": "Portfolio of Hasnat Ibrahim", + "owner": { + "username": "hasnatibrahim10-sys", + "email": "hasnatibrahim10@gmail.com" + }, + "records": { + "CNAME": "hasnat-ibrahim.pages.dev" + } +} diff --git a/domains/joe50097.json b/domains/joe50097.json index 902e88da00..c087e881d4 100644 --- a/domains/joe50097.json +++ b/domains/joe50097.json @@ -1,7 +1,7 @@ { "owner": { "username": "Joe50097", - "email": "me@joe50097.is-a.dev" + "email": "me@joe50097.dev" }, "records": { "MX": ["mx01.mail.icloud.com", "mx02.mail.icloud.com"], diff --git a/domains/novastar.json b/domains/novastar.json new file mode 100644 index 0000000000..b7d3128e59 --- /dev/null +++ b/domains/novastar.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "novastardev", + "email": "novastar.dev1@gmail.com" + }, + "records": { + "CNAME": "novastar-dev.vercel.app" + } +} diff --git a/domains/phoenix.json b/domains/phoenix.json new file mode 100644 index 0000000000..c8c6e7363f --- /dev/null +++ b/domains/phoenix.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "mj-praba", + "email": "manojprabaharj@gmail.com" + }, + "records": { + "CNAME": "mj-praba.github.io" + } +} \ No newline at end of file diff --git a/domains/piyush.json b/domains/piyush.json new file mode 100644 index 0000000000..5af78d9f68 --- /dev/null +++ b/domains/piyush.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "Piyush-Sagar", + "email": "sagarpiyush.27@gmail.com" + }, + "records": { + "A": [ + "216.198.79.1" + ] + } +} \ No newline at end of file diff --git a/domains/rusky.json b/domains/rusky.json new file mode 100644 index 0000000000..7dd0d3b0ec --- /dev/null +++ b/domains/rusky.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ruskydev", + "email": "iamayaanalee@gmail.com" + }, + "records": { + "A": ["216.198.79.1"] + } +} diff --git a/domains/sig1._domainkey.joe50097.json b/domains/sig1._domainkey.joe50097.json index 79803016f8..77c16a25ce 100644 --- a/domains/sig1._domainkey.joe50097.json +++ b/domains/sig1._domainkey.joe50097.json @@ -1,7 +1,7 @@ { "owner": { "username": "Joe50097", - "email": "me@joe50097.is-a.dev" + "email": "me@joe50097.dev" }, "records": { "CNAME": "sig1.dkim.joe50097.is-a.dev.at.icloudmailadmin.com" diff --git a/domains/tatpow.json b/domains/tatpow.json new file mode 100644 index 0000000000..d95f0b2c90 --- /dev/null +++ b/domains/tatpow.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "tatpow" + }, + "records": { + "CNAME": "tatpow.github.io" + } +} diff --git a/domains/tuliodutra27.json b/domains/tuliodutra27.json new file mode 100644 index 0000000000..9b934262b1 --- /dev/null +++ b/domains/tuliodutra27.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "tuliodutra27", + "email": "tuliodutra27@gmail.com" + }, + "records": { + "CNAME": "tuliodutra27.github.io" + } +} diff --git a/domains/ukasha167.json b/domains/ukasha167.json new file mode 100644 index 0000000000..30b70ac241 --- /dev/null +++ b/domains/ukasha167.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ukasha167", + "email": "ukashaanwar167@gmail.com" + }, + "records": { + "CNAME": "ukasha167.github.io" + } +} diff --git a/domains/will.json b/domains/will.json deleted file mode 100644 index 340e2bfa92..0000000000 --- a/domains/will.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "wdhdev", - "email": "william@is-a.dev" - }, - "records": { - "URL": "https://wharrison.com.au" - } -} diff --git a/domains/zmail._domainkey.gojo.json b/domains/zmail._domainkey.gojo.json new file mode 100644 index 0000000000..089fe76ff4 --- /dev/null +++ b/domains/zmail._domainkey.gojo.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "azanbroib-hash", + "email": "piko98631@gmail.com" + }, + "records": { + "TXT": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCQyJbxrl3TBlfmFDgLvzE5WG08DoeOF+9WaiEEkNicQ4jv3NH/ql3STTzb85BBwLlKiUQ7MNahl1jnxu9SD0QTjO3hIysMTJB/oIbLqRZeteTZM1QmJpAJCrRUZES/lxXD4Cv1gTHgMAgWZBDao7YThEWDIJ3ObOVL769PUZYs4wIDAQAB" + } +} diff --git a/tests/proxy.test.js b/tests/proxy.test.js index 8fc60f9d46..2cc601ec88 100644 --- a/tests/proxy.test.js +++ b/tests/proxy.test.js @@ -50,7 +50,7 @@ t("Domains with proxy enabled must have at least one proxy-able record", (t) => }); }); -const disallowedRecords = [ +const unproxyable = [ { type: "CNAME", value: "*.onrender.com" @@ -62,7 +62,7 @@ t("Domains with specific records must not have proxy enabled", (t) => { const data = getDomainData(file); if (data.proxied) { - disallowedRecords.forEach((record) => { + unproxyable.forEach((record) => { let recordExists = false; if (!data.records[record.type]) { diff --git a/util/internal.json b/util/internal.json index 33a1b3bd1f..4481442486 100644 --- a/util/internal.json +++ b/util/internal.json @@ -7,6 +7,8 @@ "ns2", "ns3", "ns4", + "ns5", + "ns6", "raw", "www" ] diff --git a/util/reserved.json b/util/reserved.json index 987aceea6c..d54a5702ec 100644 --- a/util/reserved.json +++ b/util/reserved.json @@ -79,8 +79,6 @@ "notifications", "ns", "ns0", - "ns5", - "ns6", "ns7", "ns8", "ns9", diff --git a/util/trusted.json b/util/trusted.json index 8ac2f289ec..a7d185cc66 100644 --- a/util/trusted.json +++ b/util/trusted.json @@ -12,7 +12,7 @@ "id": 90866414 }, { - "username": "Stef-00012", + "username": "Stef-DP", "id": 81536172 }, {