Warning
This is a read-only repository used to release the subtree. Any issues and pull requests should be forwarded to the upstream Nebula repository.
Cross-provider DNS configuration management component for LinkORB applications.
- Manage DNS zones and records programmatically
- Provider abstraction supporting multiple DNS services
- Array-based configuration for flexible integration
- Configuration error tracking for graceful degradation
- File-based YAML storage adapter
- TransIP API integration
- Scaleway DNS support
- Extensible adapter pattern for additional providers
- Framework-agnostic design
composer require linkorb/x-dns-componentuse LinkORB\Component\XDns\XDnsService;
// Load from YAML file
$service = XDnsService::fromConfigFilename('config/dns.yaml');
// Or create from array configuration
$config = [
'providers' => [
'my-provider' => [
'adapter' => 'TransIP',
'username' => 'your-username',
'key' => 'your-private-key'
]
]
];
$service = XDnsService::fromConfigArray($config);
// Manage zones and records
$zone = $service->getZoneByFqzn('example.com@my-provider');
$adapter = $provider->getAdapter();
$adapter->pushZone($zone);- File - YAML file storage
- TransIP - TransIP DNS API
- Scaleway - Scaleway DNS API
Lists all configured DNS providers from the database. Shows successfully loaded providers and displays configuration errors for any providers that failed to load (missing credentials, invalid adapters, etc.).
bin/console x-dns:provider:listLists all zones available at a specific DNS provider. Use this to discover which domains are managed by a provider.
bin/console x-dns:zone:list <providerName>providerName- Name of the provider from database
Displays complete zone information including all DNS records (A, CNAME, MX, TXT, etc.) with their values and TTL settings.
bin/console x-dns:zone:show <fqzn>fqzn- Fully Qualified Zone Name in formatzonename@provider(e.g.,example.com@production-dns)
Compares DNS records between two zones to identify differences. Useful for verifying zone synchronization or reviewing changes before pushing updates.
bin/console x-dns:zone:diff <fqznA> [target]fqznA- Source zone in formatzonename@providertarget- (Optional) Target zone FQZN or provider name. Omit to compare against all configured targets.
# Compare specific zones
bin/console x-dns:zone:diff example.com@production-dns example.com@backup-dns
# Compare same zone across providers
bin/console x-dns:zone:diff example.com@production-dns backup-dnsPushes zone configuration and DNS records from one source to target provider(s). Use this to synchronize zones across providers or deploy changes.
bin/console x-dns:zone:push <fqzn> [providerName]fqzn- Source zone to push in formatzonename@providerproviderName- (Optional) Target provider name. Omit to push to all configured targets.
# Push to specific provider
bin/console x-dns:zone:push example.com@file-backup production-dns
# Push to all configured targets
bin/console x-dns:zone:push example.com@file-backupXDnsService manages multiple providers, each with their own adapter for interacting with DNS services. The component provides a unified interface for managing DNS zones and records across different providers.
Proprietary - LinkORB Engineering
For issues or questions, contact LinkORB Engineering at engineering@linkorb.com