You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Task: Build DomainManager.vue, DnsRecordEditor.vue, and ApplicationDomainBinding.vue
Description
Build a comprehensive suite of Vue.js 3 components for domain management and DNS configuration within the Coolify Enterprise platform. These components provide organization administrators with a powerful, intuitive interface for managing custom domains, editing DNS records, and binding domains to applications—all while maintaining the enterprise's white-label branding.
This task creates three interconnected Vue.js components that work together to provide complete domain management functionality:
DomainManager.vue - The primary domain management interface where users can view all organization domains, check availability, register new domains, renew existing domains, transfer domains from other registrars, and configure DNS settings. This component acts as the central hub for all domain-related operations.
DnsRecordEditor.vue - A specialized component for creating, editing, and deleting DNS records (A, AAAA, CNAME, MX, TXT, NS, SRV). It provides real-time validation, DNS propagation checking, and intelligent suggestions for common configurations (like email setup, CDN integration, and domain verification).
ApplicationDomainBinding.vue - A component for associating custom domains with deployed applications. It handles domain verification, automatic DNS record creation, SSL certificate provisioning via Let's Encrypt, and displays binding status with health checks.
Integration with Enterprise Architecture:
These components integrate deeply with the backend domain management system:
DomainRegistrarService (Task 66) - Handles domain registration, renewal, and transfer operations
DnsManagementService (Task 67) - Manages DNS record CRUD operations across multiple providers
WhiteLabelConfig - Displays branding consistently throughout domain management
Organization Model - Enforces organization-scoped domain ownership
Application Model - Links domains to deployed applications with automatic proxy configuration
Why This Task Is Critical:
Domain management is a cornerstone of professional application deployment. These components transform Coolify from a tool that requires users to manually configure DNS elsewhere into a comprehensive platform where domains are managed alongside infrastructure and deployments. For enterprise customers, this means:
Reduced Friction: Register and configure domains without leaving the platform
Automatic Configuration: DNS records created automatically when binding domains to applications
SSL Automation: Let's Encrypt integration provides automatic HTTPS for all custom domains
White-Label Consistency: Domain management respects organization branding throughout the UI
Audit Trail: All domain operations logged for compliance and debugging
Acceptance Criteria
DomainManager.vue Component
Display paginated list of organization domains with search and filtering
Domain availability checker with real-time validation
Domain registration flow with WHOIS privacy, auto-renewal, and contact management
Domain renewal functionality with expiration warnings (30/60/90 day alerts)
Domain transfer flow with authorization code handling
Domain deletion with confirmation and safety checks
DNS settings quick access with link to DnsRecordEditor
Domain verification status display (verified, pending, failed)
Integration with multiple registrars (Namecheap, Route53, Cloudflare)
Responsive design working on mobile, tablet, desktop
Task: Build DomainManager.vue, DnsRecordEditor.vue, and ApplicationDomainBinding.vue
Description
Build a comprehensive suite of Vue.js 3 components for domain management and DNS configuration within the Coolify Enterprise platform. These components provide organization administrators with a powerful, intuitive interface for managing custom domains, editing DNS records, and binding domains to applications—all while maintaining the enterprise's white-label branding.
This task creates three interconnected Vue.js components that work together to provide complete domain management functionality:
DomainManager.vue - The primary domain management interface where users can view all organization domains, check availability, register new domains, renew existing domains, transfer domains from other registrars, and configure DNS settings. This component acts as the central hub for all domain-related operations.
DnsRecordEditor.vue - A specialized component for creating, editing, and deleting DNS records (A, AAAA, CNAME, MX, TXT, NS, SRV). It provides real-time validation, DNS propagation checking, and intelligent suggestions for common configurations (like email setup, CDN integration, and domain verification).
ApplicationDomainBinding.vue - A component for associating custom domains with deployed applications. It handles domain verification, automatic DNS record creation, SSL certificate provisioning via Let's Encrypt, and displays binding status with health checks.
Integration with Enterprise Architecture:
These components integrate deeply with the backend domain management system:
Why This Task Is Critical:
Domain management is a cornerstone of professional application deployment. These components transform Coolify from a tool that requires users to manually configure DNS elsewhere into a comprehensive platform where domains are managed alongside infrastructure and deployments. For enterprise customers, this means:
Acceptance Criteria
DomainManager.vue Component
DnsRecordEditor.vue Component
ApplicationDomainBinding.vue Component
General Requirements (All Components)
Technical Details
File Paths
Vue Components:
/home/topgun/topgun/resources/js/Components/Enterprise/Domain/DomainManager.vue/home/topgun/topgun/resources/js/Components/Enterprise/Domain/DnsRecordEditor.vue/home/topgun/topgun/resources/js/Components/Enterprise/Domain/ApplicationDomainBinding.vueSupporting Components:
/home/topgun/topgun/resources/js/Components/Enterprise/Domain/DomainAvailabilityChecker.vue/home/topgun/topgun/resources/js/Components/Enterprise/Domain/DomainRegistrationForm.vue/home/topgun/topgun/resources/js/Components/Enterprise/Domain/DnsRecordForm.vue/home/topgun/topgun/resources/js/Components/Enterprise/Domain/DnsPropagationStatus.vue/home/topgun/topgun/resources/js/Components/Enterprise/Domain/SslCertificateStatus.vueBackend Integration:
/home/topgun/topgun/app/Http/Controllers/Enterprise/DomainController.php(existing, from Task 66)/home/topgun/topgun/app/Http/Controllers/Enterprise/DnsRecordController.php(existing, from Task 67)/home/topgun/topgun/app/Http/Controllers/Enterprise/ApplicationDomainController.php(new)Routes:
/home/topgun/topgun/routes/web.php(domain management routes)Test Files:
/home/topgun/topgun/resources/js/Components/Enterprise/Domain/__tests__/DomainManager.spec.js/home/topgun/topgun/resources/js/Components/Enterprise/Domain/__tests__/DnsRecordEditor.spec.js/home/topgun/topgun/resources/js/Components/Enterprise/Domain/__tests__/ApplicationDomainBinding.spec.jsComponent 1: DomainManager.vue
File:
resources/js/Components/Enterprise/Domain/DomainManager.vue