Files
is-a-dev/docs/domains-json.md
T
2022-03-13 18:58:25 +07:00

114 lines
2.4 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 -
> 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"
}
}
```