Add DNS provider support for Arvan Cloud

Open
#5,269 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript

Research direction

Start in packages/server/src/utils/dns/ by reading the DnsClient interface and the existing Cloudflare, Route53, and Porkbun providers. Use the Arvan Cloud API documentation to map domain discovery and DNS record CRUD operations, including API-key authentication. Done means Arvan Cloud can be selected in Dokploy and its records are automated for deployed applications.

Written by the indexing model from the issue text.

Description

enhancement
What problem will this feature address?

Dokploy's DNS provider integration does not currently support Arvan Cloud.

Arvan Cloud is a widely used DNS/CDN provider, particularly for users and businesses in Iran. Users who already manage their domains and DNS zones through Arvan Cloud currently have to manually create or update DNS records outside Dokploy when deploying applications.

Moving existing domains to another DNS provider such as Cloudflare or AWS Route53 just to use Dokploy's DNS automation is not practical, especially when managing multiple production domains.

Describe the solution you'd like

Add Arvan Cloud as a DNS provider in Dokploy, using the existing DnsClient interface in:

packages/server/src/utils/dns/

The implementation could follow the same provider architecture used by Cloudflare, Route53, Porkbun, and the other DNS providers.

Arvan Cloud provides a REST API for managing domains and DNS records:

https://www.arvancloud.ir/api/cdn/4.0

API base:

https://napi.arvancloud.ir/cdn/4.0

The API supports the operations required by Dokploy, including:

  • Discovering/listing domains
  • Listing DNS records
  • Creating DNS records
  • Updating DNS records
  • Deleting DNS records
  • Authentication using an Arvan Cloud API key

DNS records are managed through endpoints under:

/domains/{domain}/dns-records

For example:

GET /domains/{domain}/dns-records

POST /domains/{domain}/dns-records

and individual records can be updated or deleted using their record ID.

Authentication is performed through the Authorization header using an Arvan Cloud API key.

Once credentials are configured in Dokploy, users should be able to select Arvan Cloud as their DNS provider and let Dokploy automatically create/update the DNS records required for deployed applications.

Describe alternatives you've considered

The current workaround is to manually create and update the required DNS records in the Arvan Cloud dashboard whenever a domain is added to Dokploy.

Another alternative is moving DNS management to an already-supported provider such as Cloudflare or AWS Route53, but this is undesirable for users who already have their domains and DNS infrastructure configured in Arvan Cloud.

Additional context

Arvan Cloud's DNS API already provides the CRUD operations required for implementing Dokploy's DnsClient abstraction.

There are also existing open-source integrations using the same Arvan Cloud DNS API, so the API is already being used successfully for automated DNS management.

API documentation:

https://www.arvancloud.ir/api/cdn/4.0

Will you send a PR to implement it?

Maybe, need help

Dominant language
TypeScript
Stars
38.2k
Forks
3.1k
Avg merge
2d 11h
Merged PRs (30d)
65

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Dokploy/dokploy

All issues in Dokploy/dokploy

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.