mirror of
https://github.com/tiennm99/is-a-dev.git
synced 2026-05-24 15:36:16 +00:00
docs: moved to docs.is-a.dev
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
## How do I register?
|
||||
* Fork this repository
|
||||
* Add a new `domains/your-domain-name.json` file directory to register `your-domain-name.is-a.dev`
|
||||
* [Read the docs](./docs)
|
||||
* [Read the docs](https://docs.is-a.dev)
|
||||
* 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
|
||||
|
||||
@@ -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.
|
||||
@@ -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. **You can only have 1 TXT record.**
|
||||
```json
|
||||
{
|
||||
"record": {
|
||||
"TXT": "hello world"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -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/<your-github-username>/<your-github-username>.github.io",
|
||||
"owner": {
|
||||
"username": "<your-github-username>",
|
||||
"email": "<your-email>",
|
||||
"twitter": "<your-twitter-username>"
|
||||
},
|
||||
"record": {
|
||||
"CNAME": "<replace-this-with-your-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
|
||||
|
||||
@@ -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.
|
||||
|
||||

|
||||
|
||||
3. Click on the **Blog Dashboard** option from the popup modal to access your blog's dashboard.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user