# 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** ```bash # 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)** ```bash # 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** ```nginx # /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`): ```nginx # 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** ```bash sudo nginx -t sudo systemctl reload nginx ``` ### Phase 4: Application Deployment - [ ] **Pull Latest Code** ```bash cd /path/to/workroot-website git pull origin main ``` - [ ] **Install Dependencies** ```bash npm ci --only=production ``` - [ ] **Run Build** ```bash npm run build ``` - [ ] **Verify Build Output** ```bash # 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** ```bash # 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`: ```nginx # 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: ```bash 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 - [ ] **Test New Domain (workroot.in)** - [ ] Visit https://workroot.in - [ ] Verify homepage loads correctly - [ ] Check SSL certificate is valid (green padlock) - [ ] Test API health endpoint: https://workroot.in/api/health.json - [ ] Verify sitemap: https://workroot.in/api/sitemap.xml - [ ] Check all internal links work - [ ] **Test Old Domain Redirects (workroot.com)** - [ ] Visit http://workroot.com → Should redirect to https://workroot.in - [ ] Visit https://workroot.com → Should redirect to https://workroot.in - [ ] Visit http://www.workroot.com → Should redirect to https://workroot.in - [ ] Visit https://www.workroot.com → Should redirect to https://workroot.in - [ ] Test deep links: https://workroot.com/blog → https://workroot.in/blog - [ ] **Verify Redirects Return 301 Status** ```bash # Test redirect status codes curl -I https://workroot.com curl -I http://workroot.com curl -I https://www.workroot.com # Should return: HTTP/1.1 301 Moved Permanently # Location: https://workroot.in ``` - [ ] **SEO & Metadata Verification** - [ ] Check canonical URLs: View page source → `` - [ ] Verify Open Graph tags: `` - [ ] Test social media preview (Twitter, Facebook, LinkedIn) - [ ] Check structured data: https://search.google.com/test/rich-results - [ ] **Security Headers Test** - [ ] Visit https://securityheaders.com/?q=https://workroot.in - [ ] Verify HSTS header is present - [ ] Check CSP header configuration - [ ] Verify X-Frame-Options, X-Content-Type-Options - [ ] **Performance Testing** ```bash # If Lighthouse script is available npm run test:lighthouse # Manual Lighthouse test # Open Chrome DevTools → Lighthouse → Run audit ``` - [ ] Check Core Web Vitals - [ ] Verify SSR performance - [ ] Test API response times - [ ] **Cross-Browser Testing** - [ ] Chrome/Edge - [ ] Firefox - [ ] Safari - [ ] Mobile browsers (iOS Safari, Chrome Android) - [ ] **Mobile Responsiveness** - [ ] Test on actual mobile devices - [ ] Use Chrome DevTools responsive mode ### 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** ```bash # Revert DNS to point back to old server # Restore old domain configuration in nginx sudo systemctl reload nginx # Deploy previous build git checkout 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 ```bash # 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