This is an advanced configuration page.
It is possible to set custom DNS records on domains hosted here.
You can set additional DNS records, such as if you have a website running on another server, to add DKIM records for external mail providers, or for various confirmation-of-ownership tests.
If your TLD requires you to have two separate nameservers, you can either set up a secondary (aka “slave”) nameserver or, alternatively, set up external DNS and ignore the DNS server on this box. If you choose to use a seconday/slave nameserver, you must find a seconday/slave nameserver service provider. Your domain name registrar or virtual cloud provider may provide this service for you. Once you set up the seconday/slave nameserver service, enter the hostname of their secondary nameserver:
Use your box’s DNS API to set custom DNS records on domains hosted here. For instance, you can create your own dynamic DNS service.
Usage:
curl -X VERB [-d "value"] --user {email}:{password} https://{{hostname}}/admin/dns/custom[/qname[/rtype]]
(Brackets denote an optional argument.)
Verb | Usage |
---|---|
GET | Returns matching custom DNS records as a JSON array of objects. Each object has the keys qname , rtype , and value . The optional qname and rtype parameters in the request URL filter the records returned in the response. The request body (-d "..." ) must be omitted. |
PUT | Sets a custom DNS record replacing any existing records with the same qname and rtype . Use PUT (instead of POST) when you only have one value for a qname and rtype , such as typical A records (without round-robin). |
POST | Adds a new custom DNS record. Use POST when you have multiple TXT records or round-robin A records. (PUT would delete previously added records.) |
DELETE | Deletes custom DNS records. If the request body (-d "..." ) is empty or omitted, deletes all records matching the qname and rtype . If the request body is present, deletes only the record matching the qname , rtype and value. |
Parameter | Value |
---|---|
The email address of any administrative user here. | |
password | That user’s password. |
qname | The fully qualified domain name for the record you are trying to set. It must be one of the domain names or a subdomain of one of the domain names hosted on this box. (Add mail users or aliases to add new domains.) |
rtype | The resource type. Defaults to A if omitted. Possible values: A (an IPv4 address), AAAA (an IPv6 address), TXT (a text string), CNAME (an alias, which is a fully qualified domain name — don’t forget the final period), MX , or SRV . |
value | For PUT, POST, and DELETE, the record’s value. If the rtype is A or AAAA and value is empty or omitted, the IPv4 or IPv6 address of the remote host is used (be sure to use the -4 or -6 options to curl). This is handy for dynamic DNS! |
Strict SPF and DMARC records will be added to all custom domains unless you override them.
Try these examples. For simplicity the examples omit the --user me@mydomain.com:yourpassword
command line argument which you must fill in with your email address and password.
# sets laptop.mydomain.com to point to the IP address of the machine you are executing curl on curl -X PUT https://{{hostname}}/admin/dns/custom/laptop.mydomain.com # deletes that record and all A records for that domain name curl -X DELETE https://{{hostname}}/admin/dns/custom/laptop.mydomain.com # sets a CNAME alias curl -X PUT -d "bar.mydomain.com." https://{{hostname}}/admin/dns/custom/foo.mydomain.com/cname # deletes that CNAME and all CNAME records for that domain name curl -X DELETE https://{{hostname}}/admin/dns/custom/foo.mydomain.com/cname # adds a TXT record using POST to preserve any previous TXT records curl -X POST -d "some text here" https://{{hostname}}/admin/dns/custom/foo.mydomain.com/txt # deletes that one TXT record while preserving other TXT records curl -X DELETE -d "some text here" https://{{hostname}}/admin/dns/custom/foo.mydomain.com/txt