PHPackages                             nextdeveloper/dns - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. nextdeveloper/dns

ActiveLibrary

nextdeveloper/dns
=================

NextDeveloper DNS Package

v1.0.7(2w ago)0150↓56.3%MITPHPPHP &gt;=8.2.0

Since Jul 11Pushed 1w agoCompare

[ Source](https://github.com/nextdeveloper-nl/dns)[ Packagist](https://packagist.org/packages/nextdeveloper/dns)[ Docs](https://github.com/nextdeveloper-nl/dns)[ RSS](/packages/nextdeveloper-dns/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (14)Versions (9)Used By (0)

NextDeveloper DNS
=================

[](#nextdeveloper-dns)

DNS module for the PlusClouds cloud platform - unified zone/record management across three backends:

- **PowerDNS** (self-hosted) - managed through **pdns-agent**, a NATS-connected Go agent forked from `vm.agent`, talking to PowerDNS's own local REST API.
- **CloudFlare** (enterprise) - customers connect their own CloudFlare API token; this module calls CloudFlare's REST API v4 directly, no agent involved.
- **RuleDNS** (managed) - a single PlusClouds-owned RuleDNS account shared across every customer zone; this module calls RuleDNS's REST API directly, no agent involved. Unlike the other two, a RuleDNS zone doesn't activate instantly - it stays `provisioning` until the customer adds a TXT ownership record and delegates NS at their registrar.

All three sit behind one `DnsProviderInterface` contract, resolved per-zone by `DnsProviderManager` based on `DnsZones.provider` - mirrors the interface + driver + dispatcher pattern in `NextDeveloper\IAAS\Services\HypervisorsV2`.

Resources
---------

[](#resources)

- `DnsServers` - individual PowerDNS instances (primary/secondary), identified by their pdns-agent's `agent_uuid`.
- `DnsProviderCredentials` - a customer's own CloudFlare API token, encrypted at rest, never exposed back through the API. RuleDNS does not use this table - its token is a shared platform secret in config/env instead.
- `DnsZones` - a DNS zone, backed by a `DnsServers` row (PowerDNS), a `DnsProviderCredentials` row (CloudFlare), or neither (RuleDNS, which uses the shared account) depending on `provider`.
- `DnsRecords` - A/AAAA/CNAME/MX/TXT/SRV/NS/CAA/HTTPS records within a zone.

Command dispatch
----------------

[](#command-dispatch)

PowerDNS operations go through the platform's existing generic agent-command layer (`NextDeveloper\Events\Services\AgentCommandsService::dispatch('dns', ...)`

- the same mechanism vm.agent already uses, just with `agent_type = 'dns'`), publishing to `agent.dns.{server_uuid}.cmd` over NATS. Results come back on `agent.dns.{server_uuid}.evt` and are picked up by `php artisan dns:pdns-agent-listen`, which flips `DnsZones`/`DnsRecords`status from `provisioning` to `active`/`failed`.

CloudFlare and RuleDNS operations are synchronous HTTP calls - no agent, no NATS. RuleDNS zone *activation* is the exception: it depends on the customer completing steps outside the platform, so `dns:ruledns-poll-verification`(scheduled every 5 minutes in the host app) periodically re-checks every non-active RuleDNS zone and flips it to `active` once RuleDNS confirms.

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance98

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

8

Last Release

17d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/95028646?v=4)[Harun Barış Bulut](/maintainers/yakari007)[@yakari007](https://github.com/yakari007)

---

Top Contributors

[![yakari007](https://avatars.githubusercontent.com/u/95028646?v=4)](https://github.com/yakari007 "yakari007 (12 commits)")

### Embed Badge

![Health badge](/badges/nextdeveloper-dns/health.svg)

```
[![Health](https://phpackages.com/badges/nextdeveloper-dns/health.svg)](https://phpackages.com/packages/nextdeveloper-dns)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k39.6k](/packages/matomo-matomo)[craftcms/cms

Craft CMS

3.6k3.7M3.5k](/packages/craftcms-cms)[tempest/framework

The PHP framework that gets out of your way.

2.3k42.4k21](/packages/tempest-framework)[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

86538.6k](/packages/flow-php-flow)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

605.9M708](/packages/shopware-core)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45945.2k1](/packages/pressbooks-pressbooks)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
