leaseweb

package module
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2024 License: MIT Imports: 3 Imported by: 0

README

DEVELOPER INSTRUCTIONS:

  • Update module name in go.mod
  • Update dependencies to latest versions
  • Update name and year in license
  • Customize configuration and Caddyfile parsing
  • Update godocs / comments (especially provider name and nuances)
  • Update README and remove this section

Leaseweb module for Caddy

This package contains a DNS provider module for Caddy. It can be used to manage DNS records with Leaseweb.

Caddy module name

dns.providers.leaseweb

Config examples

To use this module for the ACME DNS challenge, configure the ACME issuer in your Caddy JSON like so:

{
	"module": "acme",
	"challenges": {
		"dns": {
			"provider": {
				"name": "leaseweb",
				"api_key": "LEASEWEB API KEY"
			}
		}
	}
}

or with the Caddyfile:

# globally
{
	acme_dns leaseweb ...
}
# one site
tls {
	dns leaseweb ...
}

Contributing / developing

Extensive documentation can be found here.

Quickest way to get test this library is xcaddy.

For example, using Docker that could look like this:

  1. Make sure to clone both this repo and libdns/leaseweb into your current folder as ./caddy-leaseweb and ./libdns-leaseweb respectively.

  2. Make a Dockerfile with the following contents:

FROM caddy:builder-alpine AS builder

RUN mkdir -p /tmp/caddy-leaseweb
RUN mkdir -p /tmp/libdns-leaseweb
COPY ./caddy-leaseweb /tmp/caddy-leaseweb/
COPY ./libdns-leaseweb /tmp/libdns-leaseweb/

RUN xcaddy build \
    --with github.com/caddy-dns/leaseweb=/tmp/caddy-leaseweb \
    --with github.com/libdns/leaseweb=/tmp/libdns-leaseweb

FROM caddy:alpine

COPY --from=builder /usr/bin/caddy /usr/bin/caddy
  1. run docker build --no-cache . -t caddy-debug.

You can then use the caddy-debug docker container for testing.

If you want to change/develop code, just edit the code in the local ./caddy-leaseweb and/or ./libdns-leaseweb folders.

To iterative development you can also docker run --rm -it -v ./caddy-leaseweb:/tmp/caddy-leaseweb -v ./libdns-leaseweb:/tmp/libdns-leaseweb caddy:builder-alpine and then use

xcaddy build \
    --with github.com/caddy-dns/leaseweb=/tmp/caddy-leaseweb \
    --with github.com/libdns/leaseweb=/tmp/libdns-leaseweb

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Provider

type Provider struct{ *leaseweb.Provider }

Provider wraps the provider implementation as a Caddy module.

func (Provider) CaddyModule

func (Provider) CaddyModule() caddy.ModuleInfo

CaddyModule returns the Caddy module information.

func (*Provider) Provision

func (p *Provider) Provision(ctx caddy.Context) error

TODO: This is just an example. Useful to allow env variable placeholders; update accordingly. Provision sets up the module. Implements caddy.Provisioner.

func (*Provider) UnmarshalCaddyfile

func (p *Provider) UnmarshalCaddyfile(d *caddyfile.Dispenser) error

TODO: This is just an example. Update accordingly. UnmarshalCaddyfile sets up the DNS provider from Caddyfile tokens. Syntax:

providername [<api_token>] {
    api_token <api_token>
}

**THIS IS JUST AN EXAMPLE AND NEEDS TO BE CUSTOMIZED.**

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL