Dinahosting DNS for libdns

This package implements the libdns interfaces for Dinahosting API, allowing you to manage DNS records for your domains.
Limitations
As this library is mainly intended to be used as a Caddy plugin for solving ACME challenges and adding dynamic dns capabilities,(and also beacause Dinahosting API is quite messy to work with) it only supports A and TXT records for the moment. I may add more in the future.
Authenticating
Dinahosting does not provide API keys, so you will need to use the username and password of your account.
Testing
You can easily test the library against your account. Just add your details to the test file provider_test.go:
const (
username = "YOUR_USERNAME"
password = "YOUR_PASSWORD"
zone = "example.com"
ip = "YOUR A RECORD IP"
)
and run the tests:
go test provider_test.go
Example usage
Here is a minimal example of how to create a new TXT record using this libdns provider.
package main
import (
"context"
"github.com/libdns/libdns"
"github.com/libdns/dinahosting"
)
func main() {
p := &dinahosting.Provider{
Username: "YOUR_USERNAME",
Password: "YOUR_PASSWORD",
}
_, err := p.AppendRecords(context.Background(), "example.org.", []libdns.Record{
{
Name: "_acme_whatever",
Type: "TXT",
Value: "123456",
},
})
if err != nil {
panic(err)
}
}