Files
is-a-dev/docs/domains-json.md
T
2021-09-06 17:01:46 +05:30

111 lines
2.2 KiB
Markdown

# 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 -
* 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 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"
}
}
```