Skip to content

Support for provider: NexDNS #3221

Description

@morozov-alexey

Welcome

  • Yes, I've searched for similar issues on GitHub and didn't find any.
  • Yes, the DNS provider has a publicly documented API.
  • Yes, I know that the lego maintainers don't have an account in all DNS providers in the world.

Implementation

  • Yes, I can test an implementation with the help of the maintainers.

Link to the DNS provider

https://nexdns.tech

Link to the API documentation

https://nexdns.tech/docs/api

Additional Notes

The provider is written and tested, and I will open the pull request once this issue is approved.

It follows the shape of the recent HTTP-API providers: a thin internal client with one method per endpoint, errutils for transport errors, useragent for the header, platform/env for the configuration, and challenge/dns01 for the challenge information and the zone lookup. No new module dependency - only lego's own packages and the standard library.

Verified against the live API rather than only against mocks:

lego run --server https://acme-staging-v02.api.letsencrypt.org/directory \
--accept-tos --dns nexdns -d example.tld -d '*.example.tld'

issued a certificate covering both names. The two challenges live at the same _acme-challenge label, so the provider keeps the record ID returned by the create call per challenge token and deletes exactly that record on cleanup - the wildcard and the apex do not remove each other's record.

Unit tests use servermock, and the rate-limited path is covered too: a 429 is waited out rather than returned, since a renewal sweep across many certificates can reach an account's per-minute request budget and that run is unattended.

I am the owner of the service, so I maintain the provider and can be reached for anything it breaks.

How do you use lego?

Library, Binary

Who are you?

Owner of this DNS provider

In which context are you using lego?

Professional use

🌱 Supporting the Maintainers

  • Yes, I find this project useful, and I appreciate the work done by the maintainers.
  • Yes, I have starred this repository to help others find it.
  • Yes, I have sponsored this project to keep the project stable and maintained.

Confirmation

  • Yes, I've included all the information above (links, notes, etc.).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions