Merge branch 'main' into main

This commit is contained in:
aGold authored and GitHub committed 2026-02-20 22:06:05 +08:00
commit 2f4888e2e7
11280 files changed
+98766 -14874

No files matched your search

-5
View File
@@ -1,5 +0,0 @@
DOMAIN_USER=username
DOMAIN_API_KEY=apikey
DOMAIN_API_HOST=api-example.com
DOMAIN_API_PORT=2087
DOMAIN_DOMAIN=example.com
-1
View File
@@ -1 +0,0 @@
use_nix
-31
View File
@@ -1,31 +0,0 @@
{
"extends": [
"eslint:recommended",
"plugin:node/recommended",
"plugin:json/recommended"
],
"parserOptions": {
"ecmaVersion": 2020
},
"rules": {
"indent": ["error", 2],
"max-len": ["error", {
"code": 100,
"ignoreStrings": true,
"ignoreTemplateLiterals": true,
"ignoreTrailingComments": true
}],
"node/exports-style": ["error", "module.exports"],
"node/file-extension-in-import": ["error", "always"],
"node/prefer-global/buffer": ["error", "always"],
"node/prefer-global/console": ["error", "always"],
"node/prefer-global/process": ["error", "always"],
"node/prefer-global/url-search-params": ["error", "always"],
"node/prefer-global/url": ["error", "always"],
"node/prefer-promises/dns": "error",
"node/prefer-promises/fs": "error",
"no-process-exit": [0],
"node/no-unsupported-features/node-builtins": [0],
"node/no-unsupported-features/es-syntax": [0]
}
}
+2 -2
View File
@@ -1,4 +1,4 @@
* @phenax
* @wdhdev
domains/ @is-a-dev/maintainers
/domains/ @is-a-dev/maintainers
*.md @is-a-dev/maintainers
-2
View File
@@ -1,2 +0,0 @@
custom: ["https://www.paypal.me/phenax", "https://www.buymeacoffee.com/phenax"]
liberapay: phenax
+3 -5
View File
@@ -1,14 +1,12 @@
---
name: bug
about: Use this template to report any bugs you've encountered related to the project
title: 'What bug did you encounter?'
title: "What bug did you encounter?"
labels: bug
---
### Your subdomain
### Expected outcome
### Observed outcome
+2 -4
View File
@@ -1,10 +1,8 @@
---
name: question
about: Use this template to ask any questions about the service
title: 'Whats your question'
title: "Whats your question"
labels: question
---
You can elaborate here
### Your question
+5 -4
View File
@@ -1,13 +1,14 @@
---
name: report-abuse
about: Use this template to report abusive domains
title: 'Report abuse'
title: "Report abuse"
labels: report-abuse
---
Domain you want to report:
### Domain
### Reason
Explain why you think this domain is being abused
<!-- Explain why you think this domain is being abused -->
### Proof
<!-- Proof of the domain being abused -->
+2 -2
View File
@@ -1,8 +1,8 @@
---
name: suggestion
about: Use this template for feedbacks and suggestions
title: 'Feedback/suggestion'
title: "Feedback/suggestion"
labels: suggestion
---
### What do you want added?
+3 -5
View File
@@ -1,12 +1,10 @@
---
name: support
about: Use this template if you need any support with your domain
title: 'Support'
title: "Support"
labels: support
---
Your domain name:
Explain any issues you are facing
### Your subdomain
### The issue
+18
View File
@@ -0,0 +1,18 @@
<!--
YOU MUST FILL OUT THIS TEMPLATE FOR YOUR PR TO BE ACCEPTED!
-->
# Requirements
<!-- Your domain MUST pass ALL the requirements below, otherwise it WILL BE DENIED. -->
<!-- Change each checkbox to [x] (all lowercase, with no spaces between the brackets) to mark it as completed. -->
- [ ] I **agree** to the [Terms of Service](https://is-a.dev/terms). <!-- Your request MUST follow the TOS to be approved. -->
- [ ] My file is following the [domain structure](https://docs.is-a.dev/domain-structure/). <!-- Your JSON file is in the domains directory, the name is valid, etc. -->
- [ ] My website is **reachable** and **completed**. <!-- We do not permit simple "Hello, world!" or simply copied template websites with minimal changes. -->
- [ ] My website is **software development** related. <!-- Only your root subdomain needs to meet this requirement. -->
- [ ] My website is **not for commercial use**. <!-- Your website's purpose should not be to generate any form of revenue or profit. -->
- [ ] I have provided contact information in the `owner` key. <!-- Provide your email in the `email` field or another platform (e.g. X/Twitter or Discord) for contact. -->
- [ ] I have provided a preview of my website below. <!-- This step is required for your PR to be approved. -->
# Website Preview
<!-- Provide a link AND screenshot of your website below. -->
-6
View File
@@ -1,6 +0,0 @@
domain:
- domains/*.json
documentation:
- ./*.md
- ./**/*.md
-24
View File
@@ -1,24 +0,0 @@
name: Helper
on:
pull_request:
types:
- closed
jobs:
instructions:
name: instructions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Comment
if: github.event.action == 'closed' && github.event.pull_request.merged == true
uses: actions/github-script@v3
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const { hasLabel } = require(`${process.env.GITHUB_WORKSPACE}/scripts/action-utils.js`);
const { instructions } = require(`${process.env.GITHUB_WORKSPACE}/scripts/reply.js`);
if (hasLabel(context, 'domain'))
console.log('Domain');
await instructions(context, github);
-23
View File
@@ -1,23 +0,0 @@
name: Checks
on: [pull_request]
jobs:
validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Setup node v15
uses: actions/setup-node@v1
with:
node-version: '15'
- name: Install dependencies
uses: borales/actions-yarn@v2.0.0
with:
cmd: install --ignore-engines --frozen-lockfile
- name: Run tests
uses: borales/actions-yarn@v2.0.0
with:
cmd: test
+52
View File
@@ -0,0 +1,52 @@
name: CI
on:
pull_request:
push:
branches: [main]
paths:
- "domains/*"
- "tests/*"
- "util/*"
- ".github/workflows/ci.yml"
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-ci
jobs:
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install
- name: Fetch PR information
if: github.event_name == 'pull_request'
run: |
echo "PR_AUTHOR=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV
echo "PR_AUTHOR_ID=${{ github.event.pull_request.user.id }}" >> $GITHUB_ENV
LABELS=$(gh api --jq '[.labels[].name]' /repos/{owner}/{repo}/pulls/${{ github.event.number }})
echo "PR_LABELS=$LABELS" >> $GITHUB_ENV
FILES=$(gh api --jq '[.[] | select(.status != "removed") | .filename]' /repos/{owner}/{repo}/pulls/${{ github.event.number }}/files)
echo "CHANGED_FILES=$FILES" >> $GITHUB_ENV
REMOVED_FILE_DATA=$(gh api --jq '[.[] | select(.status == "removed") | {name: .filename, data: .patch}]' /repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files)
echo "DELETED_FILES=$REMOVED_FILE_DATA" >> $GITHUB_ENV
env:
GH_TOKEN: ${{ github.token }}
- name: Run DNSControl tests
if: github.event_name == 'pull_request' && contains(fromJson(env.CHANGED_FILES), 'dnsconfig.js')
uses: is-a-dev/dnscontrol-action@main
with:
args: check
- name: Run tests
run: npx ava tests/*.test.js --timeout=1m
+24
View File
@@ -0,0 +1,24 @@
name: DNSControl
on:
push:
branches: [main]
paths:
- ".github/workflows/dnscontrol.yml"
- "dnsconfig.js"
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-dnscontrol
jobs:
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: is-a-dev/dnscontrol-action@main
with:
args: check
-13
View File
@@ -1,13 +0,0 @@
name: Label
on:
schedule:
- cron: "0 * * * *"
jobs:
label:
runs-on: ubuntu-latest
steps:
- name: Labelling pull request
uses: actions/labeler@main
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
-33
View File
@@ -1,33 +0,0 @@
name: Publish records
on:
push:
branches: [main]
workflow_dispatch:
name: 'Publish records'
jobs:
publish:
if: github.repository == 'is-a-dev/register'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: borales/actions-yarn@v2.0.0
with:
cmd: install --ignore-engines
- name: Running tests
uses: borales/actions-yarn@v2.0.0
with:
cmd: test
- name: Publishing records
env:
CI: 1
ENV: production
DOMAIN_USER: ${{ secrets.DOMAIN_USER }}
DOMAIN_API_KEY: ${{ secrets.DOMAIN_API_KEY }}
DOMAIN_API_HOST: ${{ secrets.DOMAIN_API_HOST }}
DOMAIN_API_PORT: ${{ secrets.DOMAIN_API_PORT }}
DOMAIN_DOMAIN: ${{ secrets.DOMAIN_DOMAIN }}
uses: borales/actions-yarn@v2.0.0
with:
cmd: publish-records
+32
View File
@@ -0,0 +1,32 @@
name: Publish
on:
push:
branches: [main]
paths:
- "domains/*"
- ".github/workflows/publish.yml"
- "util/reserved.json"
- "dnsconfig.js"
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-publish
jobs:
dns:
name: DNS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate creds.json
run: echo '{"cloudflare":{"TYPE":"CLOUDFLAREAPI","apitoken":"$CLOUDFLARE_API_TOKEN"}}' > ./creds.json
- name: Push DNS records
uses: is-a-dev/dnscontrol-action@main
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
with:
args: push
+45
View File
@@ -0,0 +1,45 @@
name: Raw API
on:
push:
branches: [main]
paths:
- "domains/*"
- ".github/workflows/raw-api.yml"
- "util/raw-api.js"
- "util/reserved.json"
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-raw-api
cancel-in-progress: true
jobs:
update:
name: Update
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Update Data
run: node util/raw-api.js
- name: Create CNAME
run: echo "raw.is-a.dev" > raw-api/CNAME
- name: Commit
uses: cpina/github-action-push-to-another-repository@main
with:
source-directory: "raw-api"
destination-github-username: is-a-dev
destination-repository-name: raw-api
user-email: "actions@github.com"
user-name: "GitHub Actions"
env:
API_TOKEN_GITHUB: ${{ secrets.BOT }}
+18 -17
View File
@@ -1,21 +1,22 @@
name: StaleBOT
name: Stale
on:
workflow_dispatch:
name: 'Force cleanup'
schedule:
- cron: "30 14 * * *"
schedule:
- cron: "0 12 * * *"
workflow_dispatch:
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
days-before-close: 20
stale-issue-message: 'This issue has been marked as stale due to inactivity and will be closed. Comment anything on this PR to prevent it'
stale-pr-message: 'This pull request has been marked as stale due to inactivity and will be closed. Comment anything on this PR to prevent it'
exempt-issue-labels: 'no-stale'
exempt-pr-labels: 'no-stale'
label:
name: Label
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 3
days-before-close: 2
stale-issue-message: "This issue has been marked as stale due to inactivity and will be closed. Comment anything on this issue to prevent it"
stale-pr-message: "This pull request has been marked as stale due to inactivity and will be closed. Comment anything on this PR to prevent it"
exempt-issue-labels: "no-stale"
exempt-pr-labels: "no-stale"
+133 -2
View File
@@ -1,3 +1,134 @@
node_modules/
*.env.*
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
# Custom
.DS_Store
*.js
-1
View File
@@ -1 +0,0 @@
Moved to [./docs](./docs)
+9 -7
View File
@@ -1,10 +1,12 @@
# Code of conduct
# Code of Conduct
This is a Code of Conduct for any interactions in this repository. This includes pull requests, issues, etc.
* **Don't be a dick** - It's not that complicated. Just be nice to people.
* **Don't abuse the service** - This service is intended for developers to get a pretty URL for their personal websites.
* **No Wrongful Uses Of The Service** - Do not use this site as a way, to promote hacking, cheating, committing fraud, and other illegal activites.
*(cheating isn't illegal but it is still considered abuse of this service)*
- **Use common sense** - It's not that complicated. Just be nice to people.
- **Don't abuse the service** - This service is intended for developers to get a cleaner URL for their personal websites.
- **No wrongful use** - Do not use this service as a way, to promote hacking, scams, fraud, and other illegal activites.
- **Follow our TOS** - You must follow our [Terms of Service](https://github.com/is-a-dev/register/blob/main/TERMS_OF_SERVICE.md).
If you believe a domain that has been registered using this service is an abuse of this service, you can report it by creating an issue.
The abuse reports will be investigated and the necessary action will be taken!
## Reporting abuse
If you believe a domain that has been registered using this service is abusing our terms, you can report it by creating an issue.
Abuse reports will be investigated and the necessary action will be taken.
+7 -19
View File
@@ -1,24 +1,12 @@
# Contributing
When contributing to this repository, please first discuss the change you wish to make via issue before making a change.
You should also read up on this project's [code of conduct](./CODE_OF_CONDUCT.md).
## Pull requests
You can create an pull request for the following reasons -
* Adding, changing or removing a domain file you own.
* Fixing a bug in the scripts or CI.
* Fix an error in the documentation.
#### Domains
Changes to domain files will follow the given process -
* PR will be reviewed and merged to `main` branch.
* Currently, the publishing of records is done manually. This will be automated soon with releases.
* The changes should reflect soon after publishing.
- If the PR template is updated, any pre-existing PRs must follow the updated template, in order to be merged.
- We reserve the right to deny any pull request for any reason.
## Issues
* **Report an abusive domain** - Create a new issue with the label `report-abuse`.
* **Report a problem with your domain** - Create a new issue with the label `support`.
* **Suggestions** - Create a new issue with the label `suggestion`.
* **For any questions** - Create a new issue with the label `question`.
* **Report any other issues related to this repository** - Create a new issue with any label that fits.
- **Report an abusive domain** - Create a new issue with the label `report-abuse`.
- **Report a problem with your domain** - Create a new issue with the label `support`.
- **Suggestions** - Create a new issue with the label `suggestion`.
- **For any questions** - Create a new issue with the label `question`.
- **Report any other issues related to this repository** - Create a new issue with any label that fits.
-21
View File
@@ -1,21 +0,0 @@
FROM ubuntu:20.04
ENV TERM xterm
RUN ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
RUN apt-get -y update
RUN apt-get install -y nodejs npm curl wget dnsutils certbot --fix-missing
RUN npm i -g n yarn && n 15.11
RUN node -v
WORKDIR /opt/app
COPY yarn.lock .
COPY package.json .
RUN yarn install
CMD ["sh", "-c", "cp -r node_modules code; cd code; tail -f /dev/null"]
+34 -36
View File
@@ -1,50 +1,48 @@
![is-a-dev banner](./media/banner.png)
<!-- <p align="center">
<img alt="is-a.dev Banner" src="https://raw.githubusercontent.com/is-a-dev/register/main/media/banner.png">
</p> -->
<br/>
<p align="center">
<img height="350" alt="is-a.dev Octoverse 2025 Banner" src="https://raw.githubusercontent.com/is-a-dev/register/main/media/octoverse-2025/is-a-dev_register_1200x630.jpg">
</p>
**is-a-dev** is a service that allows developers to get a sweet-looking `.is-a.dev` domain for their personal websites.
<p align="center">
<img alt="Domains" src="https://img.shields.io/github/directory-file-count/is-a-dev/register/domains?color=5c46eb&label=domains&style=for-the-badge">
<img alt="Open Pull Requests" src="https://img.shields.io/github/issues-raw/is-a-dev/register?color=5c46eb&label=issues&style=for-the-badge">
<img alt="Open Issues" src="https://img.shields.io/github/issues-pr-raw/is-a-dev/register?color=5c46eb&label=pull%20requests&style=for-the-badge">
<br>
</p>
<p align="center"> <a href="https://discord.gg/PZCGHz4RhQ"><img src="https://discord.com/api/guilds/830872854677422150/widget.png?style=banner2" alt="Discord"></a></p>
<h1 align="center">is-a.dev</h1>
<p align="center"><strong>is-a.dev</strong> is a service that allows developers to get a sweet-looking <code>.is-a.dev</code> subdomain for their personal websites.</p>
## How do I register?
* Fork this project
* Add a new `domains/your-domain-name.json` file directory to register `your-domain-name.is-a.dev`
* [Read the docs](./docs)
* The PR will be reviewed and merged
* After merging, the changes will take effect within a day
* That's it! Done! Now go show off your cool `.is-a.dev` domain
---
## Announcements
Please join our [Discord server](https://discord.gg/is-a-dev-830872854677422150) for announcements, service updates, and downtime notifications regarding the service.
Not all announcements are posted on GitHub[^1], however they will always be posted in our Discord server.
## Donations
This project is a free and open source service for developers and will stay that way.
[^1]: We only post announcements on GitHub in the case of a serious incident, which you'll see at the top of this README.
Please consider donating to help me keep this running forever!
# Register
> If you want a visual guide, check out [this blog post](https://blog.wharrison.com.au/2024/07/is-a-dev/).
<a href="https://www.buymeacoffee.com/phenax" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="28" width="119"></a>
<a href="https://liberapay.com/phenax" target="_blank"><img src="https://img.shields.io/badge/liberapay-donate-yellow.svg?style=for-the-badge" alt="Liberapay recurring donation button" /></a>
- [Fork](https://github.com/is-a-dev/register/fork) the repository.
- Follow the instructions on our [documentation](https://docs.is-a.dev).
- Once you open your pull request (PR), it will be reviewed. *Keep an eye on it in case changes are needed!*
- If changes have been requested, please make the specified changes otherwise **you will be rejected**.
- Once your PR is merged, your DNS records should be published with-in a few minutes.
- Enjoy your new `.is-a.dev` subdomain! Please consider leaving a star ⭐️ to help support us!
## Report Abuse
If you find any subdomains being abused or breaking our TOS, please report them by [creating an issue](https://github.com/is-a-dev/register/issues/new?assignees=&labels=report-abuse&projects=&template=report-abuse.md&title=Report+abuse) with relevant evidence.
---
We are supported by Cloudflare's [Project Alexandria](https://www.cloudflare.com/lp/project-alexandria) sponsorship program, we would not be able to operate without their help!
## Similar services
You should also checkout -
* [js.org](https://github.com/js-org/js.org/tree/master)
* [thedev.id](https://github.com/fransallen/thedev.id)
* [runs-on.tech](https://github.com/aakhilv/runs-on.tech)
## Uptime
![Uptime Robot ratio (30 days)](https://img.shields.io/uptimerobot/ratio/m787472645-ec25e3920c7af893a7c66f19?label=uptime%20-%20dns&style=for-the-badge)
![Uptime Robot ratio (30 days)](https://img.shields.io/uptimerobot/ratio/m787472617-240f4d61a5439a87becb2cf9?label=uptime%20-%20redirections&style=for-the-badge)
You can check the uptime of the service via [our status dashboard](https://stats.uptimerobot.com/zY4XKIRVzw)
## License
This project is under the [GPL-3.0](./LICENSE) license.
<a href="https://www.cloudflare.com">
<img alt="Cloudflare Logo" src="https://raw.githubusercontent.com/is-a-dev/register/main/media/cloudflare.png" height="48">
</a>
+2 -4
View File
@@ -1,6 +1,4 @@
# Security Policy
## Reporting a Vulnerability
You can report low severity bugs as [issues](https://github.com/is-a-dev/register/issues/new/choose) on this repo.
For higher severity vulnerabilities and bugs, kindly email them to me at [akshay-n0@protonmail.com](mailto:akshay-n0@protonmail.com).
## Reporting a vulnerability
Please report all vulnerabilities to security@is-a.dev.
+83
View File
@@ -0,0 +1,83 @@
# Terms of Service
Welcome to **is-a.dev** ("our", "us", "we"), a free subdomain service provided to individuals. By using our service, you agree to the following Terms of Service ("Terms"). Please read them carefully.
For questions or concerns about these Terms, please contact us at support@is-a.dev.
**Last Updated**: 27th October, 2025
## 1. Acceptance of Terms
By accessing or using is-a.dev, you acknowledge that you have read, understood, and agree to be bound by these Terms. If you do not agree, you may not use is-a.dev.
## 2. Eligibility
To use is-a.dev, you must:
1. Be at least 13 years old;
2. Be an individual or non-commercial project;
3. Use the service for lawful purposes only;
4. Provide accurate and truthful information when registering.
All subdomains must be registered to an individual GitHub account, organisations may not be the registered owner of a subdomain.
By using is-a.dev, you represent and warrant that you meet these requirements.
## 3. Service Description
is-a.dev allows users to register a subdomain under the "is-a.dev" domain. This service is offered "as-is" without guarantees of uptime, support, or permanence.
Subdomains are intended solely for individuals and non-commercial projects.
We reserve the right to deny any subdomain registration request for any reason.
## 4. Prohibited Activities
You agree not to use, attempt to use, or permit others to use the is-a.dev service or any related infrastructure for any of the following purposes:
1. Illegal activities
2. Degrading the service's performance or availability
3. Promoting violence or harm
4. Harassment, hate speech, or discrimination
5. Pornography or sexually explicit material
6. Impersonation and misrepresentation
7. Infringe third-party rights
8. Commercial, for-profit or political purposes
9. Unsolicited communications
10. Cryptocurrency and blockchain mining
11. Abusive automation
12. Proxy or VPN services
*Note: This list is not extensive and may be updated or expanded at any time at our discretion.*
Additionally, users must comply with [GitHub's Terms of Service](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) where applicable.
Violation of this section may result in immediate termination without notice.
## 5. Ownership and Intellectual Property
is-a.dev retains all rights, title, and interest in the "is-a.dev" domain and associated systems.
You retain ownership of any content you host on your subdomain. Your hosted content however must not infringe third-party rights.
You grant us permission to use your registration data to operate the service.
## 6. Termination of Service
We reserve the right to terminate your subdomain at any time, for any reason.
Termination may occur without prior notice. Any donations will not be refunded.
## 7. Privacy
For privacy-related inquiries, please contact us at support@is-a.dev. We are not responsible for any data or privacy breaches resulting from the use of our service.
We do not collect or process personal data beyond what is necessary to operate the service.
## 8. Disclaimer and Limitation of Liability
The is-a.dev service is provided "as-is" and "as available." We make no warranties, expressed or implied, regarding the service's functionality, reliability, or suitability for any particular purpose.
You use the service at your own risk.
## 9. Indemnification
You agree to indemnify and hold harmless is-a.dev, its operators, and affiliates from any claims, losses, liabilities, or expenses arising from your use of the service or violation of these Terms.
## 10. Governing Law and Jurisdiction
These Terms are governed by the laws of Australia.
## 11. Modification of Terms
We reserve the right to update or modify these Terms at any time. Changes will be effective immediately upon posting. Your continued use of the service constitutes acceptance of the updated Terms.
If changes are made, we will notify users by posting them on our website or Discord server.
-16
View File
@@ -1,16 +0,0 @@
{ nixpkgs ? import <nixpkgs> {} }:
let
inherit (nixpkgs) pkgs;
nixPackages = with pkgs; [
nodejs-16_x
yarn
docker-compose
dnsutils
#certbot
];
in
pkgs.stdenv.mkDerivation {
name = "env";
buildInputs = nixPackages;
}
+170
View File
@@ -0,0 +1,170 @@
var domainName = "is-a.dev";
var registrar = NewRegistrar("none");
var dnsProvider = DnsProvider(NewDnsProvider("cloudflare"));
function getDomainsList(filesPath) {
var result = [];
var files = glob.apply(null, [filesPath, true, ".json"]);
for (var i = 0; i < files.length; i++) {
var name = files[i]
.split("/")
.pop()
.replace(/\.json$/, "");
result.push({ name: name, data: require(files[i]) });
}
return result;
}
var domains = getDomainsList("./domains");
var records = [];
for (var subdomain in domains) {
var subdomainName = domains[subdomain].name;
var data = domains[subdomain].data;
var proxyState = data.proxied ? CF_PROXY_ON : CF_PROXY_OFF;
// Handle A records
if (data.records.A) {
for (var a in data.records.A) {
records.push(A(subdomainName, IP(data.records.A[a]), proxyState));
}
}
// Handle AAAA records
if (data.records.AAAA) {
for (var aaaa in data.records.AAAA) {
records.push(AAAA(subdomainName, data.records.AAAA[aaaa], proxyState));
}
}
// Handle CAA records
if (data.records.CAA) {
for (var caa in data.records.CAA) {
var caaRecord = data.records.CAA[caa];
records.push(CAA(subdomainName, caaRecord.tag, caaRecord.value));
}
}
// Handle CNAME records
if (data.records.CNAME) {
records.push(ALIAS(subdomainName, data.records.CNAME + ".", proxyState));
}
// Handle DS records
if (data.records.DS) {
for (var ds in data.records.DS) {
var dsRecord = data.records.DS[ds];
records.push(
DS(subdomainName, dsRecord.key_tag, dsRecord.algorithm, dsRecord.digest_type, dsRecord.digest)
);
}
}
// Handle MX records
if (data.records.MX) {
for (var mx in data.records.MX) {
var mxRecord = data.records.MX[mx];
if (typeof mxRecord === "string") {
records.push(
MX(subdomainName, 10 + parseInt(mx), data.records.MX[mx] + ".")
);
} else {
records.push(
MX(
subdomainName,
parseInt(mxRecord.priority),
mxRecord.target + "."
)
);
}
}
}
// Handle NS records
if (data.records.NS) {
for (var ns in data.records.NS) {
records.push(NS(subdomainName, data.records.NS[ns] + "."));
}
}
// Handle SRV records
if (data.records.SRV) {
for (var srv in data.records.SRV) {
var srvRecord = data.records.SRV[srv];
records.push(
SRV(subdomainName, srvRecord.priority, srvRecord.weight, srvRecord.port, srvRecord.target + ".")
);
}
}
// Handle TLSA records
if (data.records.TLSA) {
for (var tlsa in data.records.TLSA) {
var tlsaRecord = data.records.TLSA[tlsa];
records.push(
TLSA(
subdomainName,
tlsaRecord.usage,
tlsaRecord.selector,
tlsaRecord.matching_type,
tlsaRecord.certificate
)
);
}
}
// Handle TXT records
if (data.records.TXT) {
if (Array.isArray(data.records.TXT)) {
for (var txt in data.records.TXT) {
records.push(TXT(subdomainName, data.records.TXT[txt].length <= 255 ? "\"" + data.records.TXT[txt] + "\"" : data.records.TXT[txt]));
}
} else {
records.push(TXT(subdomainName, data.records.TXT.length <= 255 ? "\"" + data.records.TXT + "\"" : data.records.TXT));
}
}
// Handle URL records
if (data.records.URL) {
records.push(A(subdomainName, IP("192.0.2.1"), CF_PROXY_ON));
}
}
var reserved = require("./util/reserved.json");
// Handle reserved domains
for (var i = 0; i < reserved.length; i++) {
var subdomainName = reserved[i];
records.push(A(subdomainName, IP("192.0.2.1"), CF_PROXY_ON));
}
// Zone last updated TXT record
records.push(TXT("_zone-updated", "\"" + Date.now().toString() + "\""));
var ignored = [
IGNORE("\\*", "A"),
IGNORE("*._domainkey", "TXT"),
IGNORE("@", "*"),
IGNORE("_acme-challenge", "TXT"),
IGNORE("_discord", "TXT"),
IGNORE("_dmarc", "TXT"),
IGNORE("_gh-is-a-dev-o", "TXT"),
IGNORE("_gh-is-a-dev-o.**", "TXT"),
IGNORE("_github-pages-challenge-is-a-dev", "TXT"),
IGNORE("_github-pages-challenge-is-a-dev.**", "TXT"),
IGNORE("_psl", "TXT"),
IGNORE("ns[1-4]", "A,AAAA")
];
var internal = require("./util/internal.json");
internal.forEach(function(subdomain) {
ignored.push(IGNORE(subdomain, "*"));
});
D(domainName, registrar, dnsProvider, records, ignored);
-8
View File
@@ -1,8 +0,0 @@
version: '3'
services:
dev:
build:
context: .
dockerfile: ./Dockerfile
volumes:
- ./:/opt/app/code
-10
View File
@@ -1,10 +0,0 @@
# How to register
You can read the [domains.json file api reference](./domains-json.md) for more information about the json file structure.
### Websites hosted at
* [For github pages users](./hosted-at/github-pages.md)
* [For hashnode blogs](./hosted-at/hashnode.md)
* [For other services](./hosted-at/others.md)
### Vercel & Netlify Note
You will encounter an SSL certificate issue when using Vercel and Netlify. Neither service will work with our domains. It is recommend to use [Github Pages](https://github.com/is-a-dev/register/blob/add-hosting-warning/docs/hosted-at/github-pages.md) or [Railway](https://railway.app/) instead.
-113
View File
@@ -1,113 +0,0 @@
# Domains json file
The way you register your own domain name is through a pull request.
To register `my-domain.is-a.dev`, you need to create a `domains/my-domain.json` file
### Filename
The file name must pass the following criteria -
> NOTE: You can use `.` (dots) in your file name (for registering `blog.mysubdomain.is-a.dev`) but each of the following criteria must be valid for all part of your subdomain
* Must be alpha-numeric in lowercase with dashes as seperators
* Must be more than 2 characters long
* Must have a `.json` file extension
The file needs to have the following fields -
### owner (required)
You need to specify some information about yourself here.
This is so that you can be contacted if required.
In the owner object, the fields `username` and `email` are required. You can however add more information in this object if you need.
```json
{
"owner": {
"username": "github-username",
"email": "any@email"
}
}
```
If you don't wish to share your email address here, please share your twitter, discord or any other social media account.
```json
{
"owner": {
"username": "github-username",
"email": "",
"twitter": "twitter-handle"
}
}
```
### description
Describe your domain name and your usage. This is purely for documentation purpose and is optional.
### repo
This is a link to your website repository or your github account. This is purely for documentation purpose and is optional.
### record (required)
This is where you specify the DNS records you wish to use.
The supported record types are: `CNAME`, `A`, `URL`, `MX` and `TXT`
Here's a few different use cases for the given record types -
* **CNAME**
CNAME must be a host name (Eg - `something.tld`). CNAME cannot be used in conjunction with any other record types.
```json
{
"record": {
"CNAME": "username.github.io"
}
}
```
* **A record**
A record must be a list of ips
```json
{
"record": {
"A": [
"999.999.991.999",
"999.999.992.999",
"999.999.993.999",
"999.999.994.999"
]
}
}
```
* **URL redirection**
```json
{
"record": {
"URL": "https://my-other-website.com"
}
}
```
* **MX**
MX must be a list of host names
```json
{
"record": {
"MX": [
"mx1.improvmx.com",
"mx2.improvmx.com"
]
}
}
```
* **TXT**
TXT can be any string value
```json
{
"record": {
"TXT": "hello world"
}
}
```
-28
View File
@@ -1,28 +0,0 @@
# For github pages
### Creating a github pages repo
You can create a github pages website by creating a repo with the name `<your-github-username>.github.io`.
For more information about github pages, please read through [their guide](https://guides.github.com/features/pages/).
### Domains file
Create a json file inside the `domains` directory (`domains/<subdomain>.json`) with the following contents
```json
{
"description": "Add some description",
"repo": "https://github.com/github-username/github-username.github.io",
"owner": {
"username": "github-username",
"email": "any@email",
"twitter": "your-twitter-username"
},
"record": {
"CNAME": "github-username.github.io"
}
}
```
### Configuring your repo
* After the pull request is merged, you will see a 404 error on `your-domain.is-a.dev`. To fix this go to your github page repo's `Settings > Github pages > Custom domain` and add `your-domain.is-a.dev` in the given field
* Check the `Enforce HTTPS` checkbox below the custom domain input
-27
View File
@@ -1,27 +0,0 @@
When you create your Hashnode blog, hashnode provides a free **yourdomain.hashnode.dev** subdomain for you. However, you can set up your own **.is-a.dev** subdomain.
In this guide, you will learn how to accomplish this.
---
1. Log in to your Hashnode account.
2. Click on your **profile picture** at the bottom-left corner of the page on *desktop* screen or top-right corner on *mobile* screen.
![Hashnode's Feed](https://cdn.hashnode.com/res/hashnode/image/upload/v1614932849541/cBNDGKXMj.png?auto=compress)
3. Click on the **Blog Dashboard** option from the popup modal to access your blog's dashboard.
![Hashnode's Feed](https://cdn.hashnode.com/res/hashnode/image/upload/v1614937218081/InvxVHXDy.png?auto=compress)
4. Navigate to the **DOMAIN** tab and enter your domain without the **www** or **https://** prefix in the text field provided. Then click on the **Update** button to proceed.
![Hashnode's Blog Domain Tab](https://cdn.hashnode.com/res/hashnode/image/upload/v1614937377176/0cwddAywO.png?auto=compress)
5. Go To Your Fork Of The `is-a-dev/register` repo, edit your subdomain's JSON file, make sure you remove any old records, then add this:
```json
"CNAME": "hashnode.network"
```
Once Done, your hashnode blog is setup to use your subdomain, all you have to do is wait sometime for the DNS to propogate. These changes could take from 1 hour to around 48 hours, so please be patient, It'll most likely be ready within a hour.
Enjoy Your Hashnode Blog, With Your Sweet `.is-a.dev` Subdomain! **If You Need More Help:** please read this support article on hashnode support: https://support.hashnode.com/docs/mapping-domain/, this should help you more, if you need more help related to [Hashnode](https://hashnode.com), then please visit the [Hashnode Support Center](https://support.hashnode.com/). Remeber, is-a.dev has no links with hashnode, so please do not create issues on our github, saying that your hashnode blog is having issues, we simply will not respond to them.
-53
View File
@@ -1,53 +0,0 @@
# For other hosting services
### Domains file
Create a json file inside the `domains` directory (`domains/<subdomain>.json`) with the following contents
```json
{
"description": "Add some description",
"repo": "https://github.com/github-username",
"owner": {
"username": "github-username",
"email": "any@email"
},
"record": {}
}
```
### Record
In your `record` key of the json file, you need to add one of the following -
* CNAME record
```json
{
"record": {
"CNAME": "the-domain-you-own.com"
}
}
```
* A records
```json
{
"record": {
"A": [
"69.69.69.69",
"69.69.69.70"
]
}
}
```
* URL redirection
```json
{
"record": {
"URL": "https://your-website.com"
}
}
```
### Configuring your server
After the pull request is merged, **configure your server** (apache, nginx, whatever) to work with `<subdomain>.is-a.dev`. If you are unsure how to configure your server, you can create an issue for support.
You should also, include `<subdomain>.is-a.dev` in your **ssl certificate** to get rid of certificate errors
-72
View File
@@ -1,72 +0,0 @@
# Reviewing pull requests
There are a few things you'll need to look out for when reviewing pull requests for domain registrations. This list is not exhaustive and will be updated.
---
### CI errors
A lot of minor issues will be caught in the CI checks
* JSON parsing issues
* Schema issues
If the CI is failing, tag the user and comment on the pr.
---
### Contents of the website
We need to make sure that the contents being hosted via the record being registered is not used for malicious purposes.
To do this, we must try our best to verify the contents of website and if required ask some questions regarding the contents in the PR.
---
### Invalid email/social link
A way to contact the user is important in case we need to inform the users of some changes to the project.
Confirm if the email looks valid or the social user name/link works.
The user should have either an email or a valid social link.
❌ `"owner": { "username": "gh-username" }` is invalid as it doesn't contain an email or any social links
❌ `"email": "28372878+user-name@users.noreply.github.com"` is invalid as the email cannot be used
✅ `"owner": { "username": "phenax", "twitter": "twitter-username" }` is valid as it contains a social link
✅ `"owner": { "username": "phenax", "email": "email@gmail.com" }` is valid as it contains an email
---
### Invalid CNAME
CNAME has to be a hostname. Something like `example.com`.
❌ `http://example.com` is invalid as it contains a protocol `https://`
❌ `example.com/some/path` is invalid as it contains the path name `/some/path`
✅ `example.com` is valid as it is the hostname of the website
---
### Invalid A
A record has to be an array of ips.
❌ `"A": "211.211.211.211"` is invalid as it must be an array
❌ `"A": ["example.com"]` is invalid as it is not an ip address
✅ `"A": ["211.211.211.211", "211.211.211.212"]` is valid as it is an array of ips
---
### Invalid URL
The URL must have a protocol (`http://` or `https://`) and must be something like `https://example.com` or `https://example.com/some/path`.
❌ `example.com` is invalid as it doesn't contain the protocol
✅ `https://example.com/some/path` is valid as it contains a protocol
---
### Only one record type
Earlier, is-a-dev used to allow for handling https redirections along with CNAME but the way we handle requests has changed since then.
This is why a record file can only contain one record type. Either `CNAME` or `A` or `URL`.
❌ `"CNAME": "example.com", "URL": "https://something.com"` is invalid as it should only contain one type of record, either CNAME or URL.
-11
View File
@@ -1,11 +0,0 @@
# Publishing records
> NOTE: This is only for maintainers with publishing access
Currently, the records are published using a manual github actions workflow.
When all the PR's are merged and ready, go to `Actions > Publish records` and click on the `Run workflow` button to publish the merged records.
Sometimes it may log an error message while publishing saying some record(s) couldn't be published.
Usually, the cause is related to some conflict while deleting and re-publishing.
In those situations, running the workflow again will fix the issues.
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "S4IL21",
"email": "s4il.is.a.dev@gmail.com"
},
"records": {
"CNAME": "s4il21.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "Rayrsn",
"email": "rayrsn@proton.me"
},
"records": {
"URL": "https://rayrsn.me/"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "FWEEaaaa1",
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": ["128.204.223.115"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "Rayrsn",
"email": "rayrsn@proton.me"
},
"records": {
"URL": "https://rayrsn.me/"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "010101-sans",
"email": "010101sansdev@gmail.com"
},
"records": {
"CNAME": "010101-sans.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "0d4vid",
"email": "nonagnidavid@gmail.com"
},
"records": {
"CNAME": "0d4vid.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "0spol",
"email": "gaparicio368@gmail.com"
},
"records": {
"CNAME": "0spol.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "SkyExploreWasTaken",
"discord": "1049263707177353247"
},
"records": {
"CNAME": "edge.redirect.pizza"
}
}
+4 -8
View File
@@ -1,13 +1,9 @@
{
"owner": {
"username": "pythonmcpi",
"email": "user3456@insomnia247.nl",
"irc": "user3456@irc.insomnia247.nl/#shells",
"discord": "Little Furret#7901",
"note": "That email address is not my main email. It has email forwarding enabled, but the spam filter doesn't like the forwarding. It is probably faster to contact me on Discord or irc."
"username": "FWEEaaaa1",
"email": "gorgonfweman@outlook.com"
},
"description": "I'll probably put some project pages on 0x0.is-a.dev. ¯\\_(ツ)_/¯",
"record": {
"CNAME": "insomnia247.nl"
"records": {
"A": ["128.204.223.115"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "barnz2",
"email": "b4rnzie@gmail.com"
},
"records": {
"CNAME": "barnz2.github.io"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"description": "Yamaishi's website",
"repo": "https://github.com/0x3st/0x3st.github.io",
"owner": {
"username": "0x3st",
"email": "t.yamaishi@qq.com",
"twitter": "TenkutiYamaishi"
},
"record": {
"CNAME": "0x3st.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "0x98c9",
"email": "humayanalrosid3@gmail.com"
},
"records": {
"CNAME": "0x98c9.pages.dev"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "amitgoesbrr",
"email": "amitgoesbrr@gmail.com"
},
"records": {
"A": ["216.198.79.1"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "0xarchit",
"email": "0xarchit@proton.me"
},
"records": {
"NS": ["brenna.ns.cloudflare.com", "cartman.ns.cloudflare.com"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "officialaritro",
"email": "officialaritro204@gmail.com"
},
"records": {
"CNAME": "cname.vercel-dns.com"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "0xbitx",
"email": "0xbit25125@gmail.com"
},
"records": {
"CNAME": "0xbitx.github.io"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"description": "0xdwb",
"repo": "https://github.com/frosimanuel/manuisadev",
"owner": {
"username": "frosimanuel"
},
"records": {
"CNAME": "frosimanuel.github.io"
}
}
+1 -3
View File
@@ -1,11 +1,9 @@
{
"description": "0xflotus' personal developer website",
"repo": "https://github.com/0xflotus/0xflotus.github.io",
"owner": {
"username": "0xflotus",
"email": "0xflotus@gmail.com"
},
"record": {
"records": {
"CNAME": "0xflotus.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "0xheartcode",
"email": "0xheartcode@gmail.com"
},
"records": {
"CNAME": "0xheartcode.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "0xio32",
"email": "markus.probst@posteo.de"
},
"records": {
"CNAME": "0xio32-is-a-dev.pages.dev"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "Jery0843",
"email": "jeromeandrewk@proton.me"
},
"records": {
"A": ["216.198.79.1"]
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"description": "Personal Portfolio Hosted on Netlify",
"owner": {
"username": "marufms4",
"email": "marufsm4@gmail.com"
},
"records": {
"A": ["75.2.60.5"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "satyam-mishra-pce",
"email": "satyam1308mishra@gmail.com"
},
"records": {
"CNAME": "cname.vercel-dns.com"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "0xshijn",
"email": "0xshiinnn@gmail.com"
},
"records": {
"CNAME": "0xshijn.github.io"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"owner": {
"username": "nobuyaki",
"email": "contact@0xviel.my.id",
"discord": "445073800850046977"
},
"records": {
"CNAME": "nobuyaki.github.io"
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"owner": {
"username": "vinay-ghate",
"email": "vsg0131@gmail.com",
"linkedin": "https://www.linkedin.com/in/vinay-ghate"
},
"records": {
"TXT": ["v=spf1 include:spf.improvmx.com ~all"],
"MX": ["mx1.improvmx.com", "mx2.improvmx.com"]
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"owner": {
"username": "0xzer0x",
"email": "youssefessamasu@gmail.com"
},
"records": {
"MX": ["mx1.forwardemail.net", "mx2.forwardemail.net"],
"TXT": [
"forward-email=youssefessamasu@gmail.com",
"v=spf1 a include:spf.forwardemail.net include:_spf.google.com -all"
]
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"description": "1.is-a.dev",
"owner": {
"username": "i-am-is-a-dev",
"email": "lx737456@gmail.com"
},
"records": {
"A": ["89.106.200.1"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "leopku",
"discord": "1168846640464019570"
},
"records": {
"URL": "https://www.himysql.com"
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"description": "Email thingy",
"owner": {
"username": "QuinceTart10",
"discord": "862644161156218891"
},
"records": {
"MX": ["a8aacaa795f68ffd.mx1.emailprofi.seznam.cz", "a8aacaa795f68ffd.mx2.emailprofi.seznam.cz"],
"TXT": "v=spf1 include:spf.seznam.cz ~all"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "joaawd",
"email": "fmodeteam@gmail.com"
},
"records": {
"CNAME": "jaycuh.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "FWEEaaaa1",
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": ["128.204.223.115"]
}
}
@@ -0,0 +1,13 @@
{
"owner": {
"username": "BrianKN019",
"email": "briannkimemia@gmail.com"
},
"proxied": false,
"records": {
"TXT": [
"k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr6KMgdxxgg7oT3ulMwPJs9RXgXDrI9UWU118pHEMohl3UbL3Jwp4oxp/9N3thh/3WCJnYV134zbEVolZwqaT3JsFEq/mQ/RpW/JnOZ3rnxqJPurb2bcfJol4SDxiWVObzHX31xnANzFcXnq1/5dMK5QvW4Jh7n0fm4+4ywqiy2QIDAQAB"
]
}
}
@@ -0,0 +1,13 @@
{
"owner": {
"username": "BrianKN019",
"email": "briannkimemia@gmail.com"
},
"proxied": false,
"records": {
"TXT": [
"k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCiNMCaVZh6WwO+RP1NR8f7ce0A0riKZflZAcweAbuEe21uCBT32aZp19gyX9P0yu4X8yVQ3UmQfdfeuvFw240/QtHtDWIzjIQJFu2yiGtNcSz1uuJL4K84n2kMQm6G7C1rA6jfDY0yj4Fr26tgKpEmq7oVH+8V0JYDSmxFr9GcQQIDAQAB"
]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "1ndrajeet",
"email": "omkar.kulkarni.3174@gmail.com"
},
"records": {
"CNAME": "1ndrajeet.vercel.app"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "1ypi",
"email": "1ypi@proton.me"
},
"records": {
"CNAME": "1ypi.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "TheUselessCreator",
"email": "bot40games2@gmail.com"
},
"records": {
"URL": "https://beeper.is-a.dev"
}
}
+10 -10
View File
@@ -1,10 +1,10 @@
{
"owner": {
"username": "2096779623",
"email": "2096779623@qq.com",
"telegram": "utermux_blog"
},
"record": {
"URL": "https://www.utermux.dev"
}
}
{
"owner": {
"username": "2096779623",
"email": "2096779623@qq.com",
"telegram": "utermux_blog"
},
"records": {
"URL": "https://www.utermux.dev"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"owner": {
"username": "21Z",
"discord": "780356848737058857"
},
"records": {
"MX": ["mx1.improvmx.com", "mx2.improvmx.com"],
"TXT": "v=spf1 include:spf.improvmx.com ~all"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"repo": "https://github.com/256javy/256javy.github.io",
"owner": {
"username": "256javy",
"email": "256javiervillalba@gmail.com"
},
"records": {
"CNAME": "256javy.github.io"
}
}
@@ -0,0 +1,9 @@
{
"owner": {
"username": "RaunakMandal",
"email": "iamriju2000@gmail.com"
},
"records": {
"TXT": "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5eTCgfTZyhQPPjhe2XLgXrtpj4MtiqBKdVv14XN+zvRT8Z+YCXPElsEVDwvLc91G8Lv4kZwgiLaINzeZjd8USQtgwaUx1QJnIeRyAvuq4kkAIFBAL5HsC4zqQAIzjCfAPrc3WhG7FYLZu76hpy3GbKZYAB+kBgTR+QRO79rvrbQIDAQAB"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"owner": {
"username": "Nicholas-Tritsaris",
"email": "nicholas.tritsaris13@bk.ru"
},
"records": {
"TXT": "2a86ae1be926415180414c8d47d0173e"
},
"proxied": false
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "2giosangmitom",
"email": "2giosangmitom@gmail.com"
},
"records": {
"CNAME": "2giosangmitom.github.io"
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"owner": {
"username": "dragsbruh",
"email": "dragsbruh@protonmail.com",
"discord": "781445370177126401",
"bluesky": "furina.is-a.dev"
},
"records": {
"URL": "https://furina.is-a.dev"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "37cut",
"email": "cutt37@outlook.com"
},
"records": {
"URL": "https://cutt37.is-a.dev"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "3geETR",
"email": "egemacun@gmail.com"
},
"records": {
"CNAME": "3geetr.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "3lyly0",
"email": "3lyly00@gmail.com"
},
"records": {
"CNAME": "cname.vercel-dns.com"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"owner": {
"username": "amrkakashi",
"email": "93amr.kakashi@gmail.com"
},
"records": {
"A": ["216.198.79.1"]
}
}
+10 -11
View File
@@ -1,11 +1,10 @@
{
"description": "3pls0de.is-a.dev.",
"repo": "https://github.com/3pls0de",
"owner": {
"username": "3pls0de",
"email": "naji.aka58@gmail.com"
},
"record": {
"URL": "https://lostpipel.blogspot.com"
}
}
{
"description": "3pls0de.is-a.dev.",
"owner": {
"username": "3pls0de",
"email": "naji.aka58@gmail.com"
},
"records": {
"URL": "https://lostpipel.blogspot.com"
}
}
+23
View File
@@ -0,0 +1,23 @@
{
"owner": {
"username": "LonelyGuy12",
"email": "me@4.is-a.dev",
"discord": "886120777630486538"
},
"records": {
"MX": [
{
"target": "mx1.improvmx.com",
"priority": 10
},
{
"target": "mx2.improvmx.com",
"priority": 20
}
],
"TXT": [
"v=spf1 include:spf.improvmx.com ~all"
],
"URL": "https://lonely.is-a.dev"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "404Dev-404",
"email": "anthonyvaldes318+404@gmail.com"
},
"records": {
"CNAME": "404dev-404.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "9xN",
"email": "0@fbi.ac"
},
"records": {
"CNAME": "9xn.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "45i",
"email": "sayakpalit61@gmail.com"
},
"records": {
"CNAME": "45i.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "4f4d",
"email": "omchoubey297@gmail.com"
},
"records": {
"CNAME": "4f4d.pages.dev"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "ahmetunsal",
"email": "web.unsalahmet@gmail.com"
},
"records": {
"A": ["76.76.21.21"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "Dong-gi",
"email": "hi.donggi@gmail.com"
},
"records": {
"A": ["167.234.218.7"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "Akshay-Arjun",
"email": "akshayvollala779@gmail.com"
},
"records": {
"URL": "https://akshay-arjun.github.io/Akshay-Arjun"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "4realwilly",
"email": "wholley123@icloud.com"
},
"records": {
"CNAME": "my-website-9et.pages.dev"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "iam-sigma",
"email": "iamsigmaboy@gmail.com"
},
"records": {
"A": ["216.198.79.1"]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "MullerIsabella",
"email": "AlpineDreamer92@protonmail.com"
},
"records": {
"CNAME": "suisse.onrender.com"
}
}
@@ -0,0 +1,10 @@
{
"owner": {
"username": "harys722",
"discord": "1203357768610746385",
"email": "contact@harys.is-a.dev"
},
"records": {
"TXT": "5a03e84df9fc4d9fa051a35c56b9d07b"
}
}
Loaded 100 of 11280 files, more files were not shown because too many files have changed in this diff. Show more