Skip to content

feat(dns): add Namecheap and Spaceship DNS providers - #5705

Open
Jedddy wants to merge 2 commits into
Dokploy:canaryfrom
Jedddy:feat/namecheap-spaceship-dns-providers
Open

Jedddy wants to merge 2 commits into
Dokploy:canaryfrom
Jedddy:feat/namecheap-spaceship-dns-providers

Conversation

@Jedddy

@Jedddy Jedddy commented Oct 18, 2026 •

Copy link
Copy Markdown

What is this PR about?

This PR adds Namecheap and Spaceship as DNS providers. Both use the existing DnsClient interface in packages/server/src/utils/dns/, the same as the other providers. Users can connect either account, list their domains, and create, edit and delete DNS records from Dokploy.

  • Namecheap (namecheap.ts): uses the Namecheap XML API. setHosts replaces all records of a domain, so each write reads the full record list, changes it, and writes it back. The domain's EmailType is sent back on each write, so the mail settings (for example email forwarding) stay the same. It is set to MX only when an MX record is written. Only domains on Namecheap BasicDNS or PremiumDNS are listed. SRV and PTR records are rejected with a clear error, because the Namecheap API cannot write them. The user enters a whitelisted IPv4 address, which the API requires on each r
  • Spaceship (spaceship.ts): uses the Spaceship REST API, with paged domain and record lists. Records are converted to and from Spaceship's per-type fields (MX, SRV, CAA and the other types). To change a record's value, the old record is deleted and the new one is saved. If the save fails, the old record is restored.
  • Record IDs: neither API gives stable record IDs, so each ID is bu Dokploy does not store record IDs.
  • Schema: two new DnsProviderType values, with migration 0198. The Namecheap API key and the Spaceship API secret are masked like the other providers' secrets.
  • UI: icons, labels and form fields for both providers. The form checks that the Namecheap IP is a valid IPv4 address.
  • Tests: __test__/dns/namecheap.test.ts and __test__/dns/spaceship.test.ts (27 tests).

Checklist

Before submitting this PR, please make sure that:

  • You created a dedicated branch based on the canary branch.
  • You have read the suggestions in the CONTRIBUTING.md file https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#pull-request
  • You have tested this PR in your local instance. If you have not before submitting. This helps avoid wasting maintainers' time reviewing code that has not been verified by you.
    • Spaceship: tested with unit tests built from the official OpenAPI spec (record formats, paging, update/restore logic). "Test Connection" was tested against the live API with invalid credentials: the request reaches Spaceship and its auth error is shown. Record changes were not tested with a live account, because I do not have one.

Issues related (if applicable)

Closes #5263

Screenshots (if applicable)

Before: the provider list has Cloudflare, AWS Route53, Porkbun, Infomaniak and OVHcloud only.
before

After: Namecheap and Spaceship are in the list.
after

Namecheap form, and "Test Connection" with the Namecheap API error:
after-namecheap-form

Both providers saved:
after-provider-cards

RetriggerView in GreptileConfidence Score: 4/5

Protect Namecheap writes from overlapping changes before merging.

Summary

Adds Namecheap and Spaceship DNS providers.

  • Namecheap DNS records can be managed from Dokploy.
  • Spaceship DNS records can be managed from Dokploy.
  • DNS settings can save Namecheap and Spaceship connections.

Reviews (1) · Last reviewed commit: "feat(dns): add Namecheap and Spaceship D..." · Reviewed by Greptile

@Jedddy
Jedddy requested a review from Siumauricio as a code owner October 18, 2026 11:54
Comment thread packages/server/src/utils/dns/namecheap.ts Outdated
@Benjicode0

Copy link
Copy Markdown

Thanks

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Namecheap & Spaceship as DNS Providers

2 participants