document.addEventListener('DOMContentLoaded', function() { // Get the launch data from sessionStorage const launchData = JSON.parse(sessionStorage.getItem('instanceLaunchData')); if (!launchData) { showError('No launch data found. Please start over.'); return; } // Initialize the steps initializeSteps(); // Start the launch process startLaunch(launchData); }); function initializeSteps() { const stepsContainer = document.getElementById('stepsContainer'); // Add DNS check step const dnsStep = document.createElement('div'); dnsStep.className = 'step-item'; dnsStep.innerHTML = `
Verifying domain configurations...
Verifying connection to NGINX Proxy Manager...
Setting up secure HTTPS connection...
Setting up NGINX proxy host configuration...
Verifying connection to Portainer...
Fetching docker-compose.yml from repository...
Launching your application stack...
Storing instance information...
Verifying instance health...
Setting up instance authentication...
Configuring company details...
Configuring color scheme...
Setting up admin account...
Sending notification to client...
| Domain | Status | IP Address | TTL |
|---|---|---|---|
| ${domain} | ${result.resolved ? 'Resolved' : 'Not Found'} | ${result.ip || 'N/A'} | ${result.ttl || 'N/A'} |
| Property | Value |
|---|---|
| Stack Name | ${stackResult.data.name} |
| Stack ID | ${stackResult.data.id} |
| Status | ${stackResult.data.status === 'existing' ? 'Existing' : 'Deployed'} |
| Property | Value |
|---|---|
| Internal Port | ${data.port} |
| Domains | ${data.webAddresses.join(', ')} |
| Property | Value |
|---|---|
| Status | Authenticated |
| Default Admin | administrator@docupulse.com |
| Connection Type | Management API Key |
| Authentication Type | ${authResult.alreadyAuthenticated ? 'Existing' : 'New'} |
| Property | Value |
|---|---|
| Company Name | ${data.company.name || 'Not set'} |
| Industry | ${data.company.industry || 'Not set'} |
| ${data.company.email || 'Not set'} | |
| Website | ${data.company.website || 'Not set'} |
| Address | ${data.company.streetAddress || 'Not set'}, ${data.company.city || ''}, ${data.company.state || ''} ${data.company.zipCode || ''} |
| Property | Value | Preview |
|---|---|---|
| Primary Color | ${data.colors.primary || 'Not set'} | |
| Secondary Color | ${data.colors.secondary || 'Not set'} |
| Property | Value |
|---|---|
| Email Address | ${credentialsResult.data.email || 'Not set'} |
| Password | ${credentialsResult.data.password || 'Not set'} |
| Username | ${credentialsResult.data.username || 'administrator'} |
| Role | Administrator |
| Status | ${credentialsResult.data.already_updated ? 'Already Updated' : 'Updated'} |
| Property | Value |
|---|---|
| Recipient | ${data.company.email || 'Not set'} |
| Subject | Your DocuPulse Instance is Ready! |
| Status | Sent Successfully |
| Instance URL | https://${data.webAddresses[0]} |
| Property | Value |
|---|---|
| Proxy Host ID | ${result.id || 'N/A'} |
| Domains | ${domains.join(', ')} |
| Forward Scheme | http |
| Forward Host | 192.168.68.124 |
| Forward Port | ${parseInt(port)} |
| SSL Status | Forced |
| SSL Certificate | Using Certificate ID: ${sslCertificateId} |
| Security Features | Block Exploits HSTS HTTP/2 |
| Performance | Caching WebSocket |
| Property | Value |
|---|---|
| Certificate ID | ${result.id || 'N/A'} |
| Domains | ${(result.domain_names || domains).join(', ')} |
| Provider | ${result.provider || 'Let\'s Encrypt'} |