Files
CompanySite/DOMAIN-MIGRATION-CHECKLIST.md
T
Clintchiz d402256547
Deploy to Production / Build & Verify (push) Failing after 5m56s
Ping Search Engines / Notify Search Engines (push) Successful in 2s
Deploy to Production / Pre-Deploy Tests (push) Has been skipped
Deploy to Production / Deploy to Railway (push) Has been skipped
Deploy to Production / Deploy to Render (push) Has been skipped
Deploy to Production / Deploy to VPS (PM2) (push) Has been skipped
Deploy to Production / Deploy to Fly.io (push) Has been skipped
Deploy to Production / Post-Deploy Verification (push) Has been skipped
Deploy to Production / Notify on Failure (push) Successful in 2s
E2E Test Suite / Critical User Journeys (push) Has been skipped
E2E Test Suite / API Integration Tests (push) Has been skipped
E2E Test Suite / Smoke Tests (P0) (push) Failing after 11m26s
E2E Test Suite / Form Interaction Tests (push) Failing after 11m42s
E2E Test Suite / Destructive & Chaos Tests (push) Failing after 12m2s
E2E Test Suite / Cross-Browser Regression (chromium) (push) Failing after 16m14s
E2E Test Suite / Cross-Browser Regression (webkit) (push) Failing after 17m45s
E2E Test Suite / Cross-Browser Regression (firefox) (push) Failing after 25m23s
E2E Test Suite / Security Header Tests (push) Failing after 7m55s
E2E Test Suite / Test Report Summary (push) Failing after 20s
E2E Test Suite / Mobile Device Tests (push) Failing after 2h49m9s
Uptime Monitor / Health & Response Time (push) Failing after 2s
Uptime Monitor / SSL Certificate (push) Successful in 2s
Uptime Monitor / Send Alerts (push) Failing after 3s
Uptime Monitor / Record Uptime Success (push) Has been skipped
First Init
2026-03-21 16:46:46 +05:30

14 KiB

Domain Migration Checklist: workroot.com → workroot.in

Migration Date: [To be completed] Old Domain: https://workroot.com New Domain: https://workroot.in Status: Ready for Deployment


📋 Pre-Deployment Summary

Files Modified

Category Files Changed Description
Configuration astro.config.mjs, tsconfig.json Updated site URL and base configuration
API Routes src/pages/api/sitemap.xml.ts Updated sitemap URL generation
SEO & Metadata src/components/SEO.astro, layouts Updated canonical URLs, Open Graph tags
Documentation README.md, CONTRIBUTING.md Updated all documentation references
Schemas src/content/config.ts Updated schema documentation

Security Enhancements Added

Security audit completed - No hardcoded domain references in security configurations CSP headers verified - Content Security Policy allows necessary resources CORS settings reviewed - API routes configured correctly Domain validation ready - Middleware supports new domain


🚀 Deployment Checklist

Phase 1: DNS Configuration

  • Update DNS A Records

    • Point workroot.in A record to server IP: [YOUR_SERVER_IP]
    • Point www.workroot.in A record to server IP: [YOUR_SERVER_IP]
    • Verify DNS propagation (allow 24-48 hours)
  • DNS Verification

    # Verify A records
    nslookup workroot.in
    nslookup www.workroot.in
    
    # Verify propagation globally
    dig workroot.in +short
    

Phase 2: SSL/TLS Certificates

  • Obtain SSL Certificate for workroot.in

    Option A: Let's Encrypt (Certbot)

    # Install certbot (Ubuntu/Debian)
    sudo apt-get update
    sudo apt-get install certbot python3-certbot-nginx
    
    # Obtain certificate
    sudo certbot certonly --nginx -d workroot.in -d www.workroot.in
    
    # Verify certificate
    sudo certbot certificates
    

    Option B: CloudFlare

    • Add workroot.in to CloudFlare
    • Enable SSL/TLS (Full or Full Strict)
    • Download origin certificate

    Option C: Manual Certificate

    • Purchase/obtain SSL certificate for workroot.in
    • Install certificate on server
    • Configure nginx/apache for HTTPS
  • Update SSL Certificate Paths

    # /etc/nginx/sites-available/workroot
    ssl_certificate /etc/letsencrypt/live/workroot.in/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/workroot.in/privkey.pem;
    

Phase 3: Server Configuration

  • Update Nginx/Apache Virtual Host

    Nginx Configuration (/etc/nginx/sites-available/workroot):

    # Redirect HTTP to HTTPS
    server {
        listen 80;
        server_name workroot.in www.workroot.in;
        return 301 https://workroot.in$request_uri;
    }
    
    # Redirect www to non-www (HTTPS)
    server {
        listen 443 ssl http2;
        server_name www.workroot.in;
    
        ssl_certificate /etc/letsencrypt/live/workroot.in/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/workroot.in/privkey.pem;
    
        return 301 https://workroot.in$request_uri;
    }
    
    # Main server block
    server {
        listen 443 ssl http2;
        server_name workroot.in;
    
        ssl_certificate /etc/letsencrypt/live/workroot.in/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/workroot.in/privkey.pem;
    
        # SSL settings
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
    
        # Security headers
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        add_header X-Frame-Options "SAMEORIGIN" always;
        add_header X-Content-Type-Options "nosniff" always;
        add_header X-XSS-Protection "1; mode=block" always;
    
        location / {
            proxy_pass http://localhost:10000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  • Test Nginx Configuration

    sudo nginx -t
    sudo systemctl reload nginx
    

Phase 4: Application Deployment

  • Pull Latest Code

    cd /path/to/workroot-website
    git pull origin main
    
  • Install Dependencies

    npm ci --only=production
    
  • Run Build

    npm run build
    
  • Verify Build Output

    # Check that domain is correctly referenced in build
    grep -r "workroot.in" dist/
    
    # Verify no old domain references remain
    grep -r "workroot.com" dist/ --exclude-dir=node_modules
    
  • Restart Application

    # If using PM2
    pm2 restart workroot-website
    pm2 save
    
    # If using systemd
    sudo systemctl restart workroot
    
    # If using Docker
    docker-compose down
    docker-compose up -d --build
    

Phase 5: Old Domain Redirect (workroot.com)

  • Setup 301 Redirects from workroot.com to workroot.in

    Option A: Nginx Redirect Configuration

    Create /etc/nginx/sites-available/workroot-redirect:

    # Redirect HTTP
    server {
        listen 80;
        server_name workroot.com www.workroot.com;
        return 301 https://workroot.in$request_uri;
    }
    
    # Redirect HTTPS (requires valid SSL for workroot.com)
    server {
        listen 443 ssl http2;
        server_name workroot.com www.workroot.com;
    
        ssl_certificate /etc/letsencrypt/live/workroot.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/workroot.com/privkey.pem;
    
        return 301 https://workroot.in$request_uri;
    }
    

    Enable configuration:

    sudo ln -s /etc/nginx/sites-available/workroot-redirect /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    

    Option B: CloudFlare Page Rules

    • Log into CloudFlare
    • Go to workroot.com → Page Rules
    • Create rule: *workroot.com/* → Forward to https://workroot.in/$1 (301 Permanent Redirect)
  • Keep workroot.com SSL Valid

    • Renew SSL certificate for workroot.com (for HTTPS redirects)
    • Set up auto-renewal

Phase 6: Verification & Testing

Phase 7: Search Engine Updates

  • Google Search Console

    • Add workroot.in property
    • Verify ownership (DNS TXT record or HTML file)
    • Submit new sitemap: https://workroot.in/api/sitemap.xml
    • Set up Change of Address (from workroot.com to workroot.in)
    • Monitor for crawl errors
  • Bing Webmaster Tools

    • Add workroot.in site
    • Verify ownership
    • Submit sitemap
    • Set up site move notification
  • Google Analytics / Tag Manager

    • Update property settings with new domain
    • Update referral exclusions
    • Test tracking is working on new domain
  • Other SEO Tools

    • Update domain in Ahrefs/SEMrush/Moz (if applicable)
    • Update domain in Google My Business
    • Update in any directory listings

Phase 8: External Services Update

  • Update Email Services

    • Update SPF records for workroot.in
    • Update DKIM records
    • Update DMARC policy
    • Test email sending from new domain
  • Update Third-Party Integrations

    • CDN configuration (if applicable)
    • Payment processor (Stripe, PayPal) - update webhook URLs
    • CRM system
    • Marketing automation tools
    • Social media login callbacks
    • OAuth redirect URIs
  • Update API Consumers

    • Notify API consumers of domain change
    • Update API documentation
    • Update rate limiting rules
  • Update Monitoring Services

    • Uptime monitors (Pingdom, UptimeRobot)
    • Error tracking (Sentry) - update DSN if needed
    • APM tools (New Relic, DataDog)
    • Log aggregation services

Phase 9: Content & Social Media

  • Update Social Media Profiles

    • LinkedIn company page
    • Twitter/X profile
    • Facebook page
    • Instagram bio
    • YouTube channel
    • GitHub organization
  • Update Business Listings

    • Google My Business
    • Yelp
    • Industry-specific directories
  • Notify Stakeholders

    • Email announcement to users/subscribers
    • Blog post announcing domain change
    • Update email signatures
    • Update business cards (if applicable)

Phase 10: Monitoring & Maintenance

  • Monitor for 48-72 Hours Post-Launch

    • Check error logs regularly
    • Monitor server resources (CPU, memory, disk)
    • Watch for 404 errors
    • Monitor redirect chain performance
    • Check analytics for traffic drops
  • Set Up Alerts

    • SSL certificate expiry alerts
    • Uptime monitoring alerts
    • Error rate threshold alerts
    • DNS change notifications
  • Weekly Checks (First Month)

    • Review Google Search Console for crawl errors
    • Check that old domain redirects are working
    • Monitor search rankings
    • Review analytics data

🔧 Rollback Plan

In case of critical issues:

  1. Immediate Rollback

    # Revert DNS to point back to old server
    # Restore old domain configuration in nginx
    sudo systemctl reload nginx
    
    # Deploy previous build
    git checkout <previous-commit>
    npm run build
    pm2 restart workroot-website
    
  2. Partial Rollback

    • Keep new domain live but fix specific issues
    • Use feature flags to disable problematic features
    • Monitor and iterate
  3. Communication

    • Notify team immediately
    • Update status page if applicable
    • Prepare user communication

📊 Success Metrics

Monitor these metrics for 30 days post-migration:

  • Traffic: Organic traffic maintained or improved
  • Rankings: No significant ranking drops for key terms
  • Errors: 404 errors < 1% of requests
  • Performance: Page load times within acceptable range
  • Uptime: 99.9%+ uptime maintained
  • Redirects: All old domain URLs properly redirect (301)

📝 Post-Deployment Notes

Completed By: _________________ Completion Date: _________________ Issues Encountered: _________________ Resolution Notes: _________________


Final Sign-Off

  • All checklist items completed
  • No critical errors in production
  • Monitoring in place
  • Team notified
  • Documentation updated
  • Old domain redirects verified
  • SEO migration completed

Approved By: _________________ Date: _________________


📞 Support Contacts

  • Technical Lead: _________________
  • DevOps: _________________
  • DNS Provider Support: _________________
  • SSL Certificate Support: _________________
  • Hosting Provider: _________________

🔗 Useful Commands Reference

# Check DNS propagation
dig workroot.in +short
nslookup workroot.in

# Test redirects
curl -I https://workroot.com
curl -I https://www.workroot.com

# Verify SSL certificate
openssl s_client -connect workroot.in:443 -servername workroot.in

# Check nginx configuration
sudo nginx -t

# View application logs
pm2 logs workroot-website
journalctl -u workroot -f

# Monitor server resources
htop
df -h
free -m

# Test sitemap
curl https://workroot.in/api/sitemap.xml

# Test health endpoint
curl https://workroot.in/api/health.json

Last Updated: 2026-03-21 Version: 1.0