Zunnesco Domains
Zunnesco Domains Core: Laravel control plane plus WordPress client
by zunnesco-dev · github.com/teray234/zunnesco-domains · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/teray234/zunnesco-domains/archive/refs/heads/main.zipReadme
Zunnesco Domains
Search, register, connect, renew, secure, and resell customer domains from one automated platform.
This monorepo is Core 1.0.0:
- A Laravel control plane in
control-plane/ - A WordPress client (
zunnesco-domains.php+src/) that talks to the control plane through signed APIs, or runs locally in sandbox/demo mode when Laravel is not configured
Plugin URI: https://github.com/teray234/zunnesco-domains
Author: zunnesco-dev
This product is not trademark or legal advice. AI name suggestions are not trademark clearance and are not registration availability without live registrar verification. Zunnesco Hosting owns certificate install; Domains only coordinates SSL status and DNS challenge fields.
Core vs later editions
| Core (this release) | Delayed / later |
|---|---|
| Sandbox registrar (fully working, labeled not-live) | Auctions |
| Search, register, transfer in/out, renew, lock | Appraisals |
| Local DNS zone editor with versions + rollback + templates | Automated brokerage |
| Connection wizard + portfolio + agency client assignment | Broad EPP operation |
| HMAC-signed Laravel API | Aftermarket marketplace product |
| Cloudflare / Namecheap / NameSilo / OpenSRS registrar stubs | Unsupported TLD assumptions (never) |
| Cloudflare DNS + Route 53 stubs | |
| RDAP-first monitoring stub | Next module: Zunnesco Monitor |
Ownership boundaries
- Commerce owns cart, payments, taxes, refunds, and dunning.
- Domains owns registrar orders, lifecycle, DNS, and ownership.
- Registration: payment authorization → registrar submit → capture. If the registrar fails, the authorization is voided/refunded. An idempotency key is required.
- Registrar and DNS provider are separate models. A domain can use Cloudflare DNS while registered at Namecheap.
- Capabilities are detected via
capabilities($tld)only. Unsupported TLD →unsupported, never fake available. - Lifecycle dates come from registrar/registry evidence fields. Grace/redemption dates are not invented.
- Availability is never claimed without adapter verification. A domain is not reserved/owned until the registrar result confirms registration.
- Money is integer minor units + ISO currency. First-year and renewal prices are snapshotted separately. Premium renewal is labeled. Negative margin requires an approval flag.
WordPress sandbox (no Laravel)
- Activate Zunnesco Domains.
- Open Domains → Search, enter a label (
brandnew) or FQDN (brandnew.com). - Supported sample TLDs:
.com.io.app.net. Other TLDs return unsupported. - Register from an available result. Until a registrar confirms, the domain is not treated as owned.
- Manage DNS (snapshot before publish, rollback, templates with additions/updates/conflicts/removals), transfers, renewals, connections, and agency client assignment.
Shortcodes: [zunnesco_domain_search] and [zunnesco_domains_portfolio].
REST: /wp-json/zunnesco-domains/v1/search|portfolio|dns/{id} (capability-checked).
Connection SDK:
$connection = zunnesco_domains()->connections()->create([
'domain_id' => $domainId,
'target_type' => 'funnels.project',
'target_id' => $funnelId,
]);
Target modules supply records via zunnesco_domains/connection_records.
Point WordPress at Laravel
// wp-config.php
define( 'ZNDO_CONTROL_PLANE_URL', 'http://127.0.0.1:8000' );
define( 'ZNDO_CONTROL_PLANE_KEY', 'your-shared-secret' );
Or paste the same values in Domains → Settings. Credentials use zunnesco_vault() when present.
See control-plane/README.md for migrate/seed/artisan serve.
DNS rollback
Every publish writes a version snapshot first. On Domains → DNS, pick a version and Rollback. Templates preview additions, updates, conflicts, and removals before apply. MX changes and verification-record removals warn. Broken DNSSEC can make the domain unreachable; DNSSEC changes must be staged.
Tests
php tests/test-schema.php
cd control-plane && php tests/DomainSchemaTest.php
# after composer install:
cd control-plane && php artisan test
License
GPL-2.0-or-later