Leaseweb provider for libdns
This package implements the libdns interfaces for Leaseweb, allowing you to manage DNS records.
Generate an API Key via the Leaseweb customer portal; under Administration -> API Key.
Place API Key in the configuration as APIKey
.
- Leaseweb expects full domain (sub.example.com); where libdns does not (sub as name and example.com as zone).
- libdns might providea TTL of 0; Leaseweb validates on their supported values (defauling to 60 for now).
- Leaseweb does not expect a trailing dot in the zone; libdns provides one, so we remove it.
Run:
docker run --rm -it -v "$PWD":/go/src/leaseweb -w /go/src/leaseweb golang:1.16
which will drop you in an interactive bash prompt where go
and friends are available.
For example you can build the code with go build
.
package main
import (
"context"
"fmt"
"github.com/libdns/leaseweb"
)
func main() {
provider := leaseweb.Provider{APIKey: "<LEASEWEB API KEY>"}
records, err := provider.GetRecords(context.TODO(), "example.com")
if err != nil {
fmt.Println(err.Error())
}
for _, record := range records {
fmt.Printf("%s %v %s %s\n", record.Name, record.TTL.Seconds(), record.Type, record.Value)
}
}
Easiest way to get your hands dirty is to use Caddy.
Check contributing instructions at caddy-dns/leaseweb.