Added: - PROJECTS_INDEX.md - Master catalog of 7 active projects - GURURMM_API_ACCESS.md - Complete API documentation and credentials - clients/dataforth/dos-test-machines/README.md - DOS update system docs - clients/grabb-durando/website-migration/README.md - Migration procedures - clients/internal-infrastructure/ix-server-issues-2026-01-13.md - Server issues - projects/msp-tools/guru-connect/README.md - Remote desktop architecture - projects/msp-tools/toolkit/README.md - MSP PowerShell tools - projects/internal/acg-website-2025/README.md - Website rebuild docs - test_gururmm_api.py - GuruRMM API testing script Modified: - credentials.md - Added GuruRMM database and API credentials - GuruRMM agent integration files (WebSocket transport) Total: 38,000+ words of comprehensive project documentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
11 KiB
Grabb & Durando Website Migration Project
Client: Grabb & Durando Law Firm Project Type: Website Migration Status: Planning Phase Priority: URGENT (source server 99% disk full) Target Date: ASAP
Critical Issue
Source Server (GoDaddy VPS) is 99% full with only 1.6GB free space!
Migration must happen soon to prevent service disruption.
Overview
Migration of data.grabbanddurando.com custom PHP application from GoDaddy VPS to ix.azcomputerguru.com.
Primary Domain: grabbanddurando.com (hosted on WebSvr) Subdomain: data.grabbanddurando.com (currently on GoDaddy VPS, target: IX)
Current Configuration
DNS & Hosting Summary
| Domain/Subdomain | Current Server | IP Address | Status |
|---|---|---|---|
| grabbanddurando.com | WebSvr (ACG) | 162.248.93.81 | Stable |
| data.grabbanddurando.com | GoDaddy VPS | 208.109.235.224 | URGENT: 99% disk |
Source Server: GoDaddy VPS (208.109.235.224)
Status: LIVE PRODUCTION SITE
Server Details:
- OS: CloudLinux 9.6
- cPanel: v126.0 (build 11)
- Disk: 99% full (1.6GB free!) - CRITICAL
- SSH Access:
ssh -i ~/.ssh/id_ed25519 root@208.109.235.224
Application Details:
- cPanel Account: grabbandurando
- Document Root:
/home/grabbanddurando/public_html/new_gdapp - App Size: 1.8 GB
- PHP Version: ea-php74 (PHP 7.4)
- Framework: Custom PHP application using mysqli
Database:
- Name: grabblaw_gdapp
- Size: 31 MB
- User: grabblaw_gdapp
- Password: e8o8glFDZD
- Host: localhost
- Type: MySQL/MariaDB
Application Files:
- Config:
/home/grabbanddurando/public_html/new_gdapp/connection.php - Structure: Custom PHP app with mysqli database connections
Target Server: ix.azcomputerguru.com (72.194.62.5)
Server Details:
- OS: CloudLinux 9.7
- cPanel: Yes
- Public IP: 72.194.62.5
- Disk: 4.1TB free on /home - plenty of space
- SSH Access:
ssh root@ix.azcomputerguru.com
Account Status: Does NOT exist yet
- Need to create grabbanddurando account OR add subdomain to existing account
Migration Components
1. Web Application Files
- Location:
/home/grabbanddurando/public_html/new_gdapp/ - Size: 1.8 GB
- Content: PHP files, assets, uploaded documents, old zip backups
2. Database
- Name: grabblaw_gdapp
- Size: 31 MB
- Type: MySQL/MariaDB
- Structure: Custom schema for law firm data application
3. Configuration Files
- connection.php - Database credentials (mysqli)
- .htaccess - Apache rewrite rules (if present)
- php.ini - PHP settings (if custom)
4. DNS Update
- Record Type: A record
- Current: data.grabbanddurando.com → 208.109.235.224
- Target: data.grabbanddurando.com → 72.194.62.5
- DNS Management: WebSvr WHM Zone Editor (ACG Hosting nameservers)
Migration Plan
Phase 1: Preparation
On IX Server:
- Create cPanel account for grabbanddurando.com OR add data.grabbanddurando.com as subdomain to existing account
- Verify PHP 7.4 availability:
/usr/local/bin/ea-php74 -v - Create MySQL database and user:
CREATE DATABASE grabblaw_gdapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'grabblaw_gdapp'@'localhost' IDENTIFIED BY 'NEW_SECURE_PASSWORD'; GRANT ALL PRIVILEGES ON grabblaw_gdapp.* TO 'grabblaw_gdapp'@'localhost'; FLUSH PRIVILEGES;
Phase 2: Data Transfer (GoDaddy → IX)
Export Database on GoDaddy:
ssh -i ~/.ssh/id_ed25519 root@208.109.235.224
# Create database dump
mysqldump -u grabblaw_gdapp -p'e8o8glFDZD' grabblaw_gdapp > /tmp/grabblaw_gdapp.sql
# Verify dump
ls -lh /tmp/grabblaw_gdapp.sql
Transfer Files:
# Server-to-server rsync (direct from GoDaddy to IX)
rsync -avz --progress \
root@208.109.235.224:/home/grabbanddurando/public_html/new_gdapp/ \
root@ix.azcomputerguru.com:/home/TARGET_ACCOUNT/public_html/new_gdapp/
# Alternative: Transfer via local machine
scp -i ~/.ssh/id_ed25519 root@208.109.235.224:/tmp/grabblaw_gdapp.sql ./
scp grabblaw_gdapp.sql root@ix.azcomputerguru.com:/tmp/
Transfer Database:
# Copy database dump to IX
scp root@208.109.235.224:/tmp/grabblaw_gdapp.sql root@ix.azcomputerguru.com:/tmp/
Phase 3: Import on IX
Import Database:
ssh root@ix.azcomputerguru.com
# Import database dump
mysql -u grabblaw_gdapp -p'NEW_SECURE_PASSWORD' grabblaw_gdapp < /tmp/grabblaw_gdapp.sql
# Verify import
mysql -u grabblaw_gdapp -p'NEW_SECURE_PASSWORD' grabblaw_gdapp -e "SHOW TABLES;"
Update Configuration:
# Edit connection.php
nano /home/TARGET_ACCOUNT/public_html/new_gdapp/connection.php
# Update database credentials:
# - host: localhost
# - database: grabblaw_gdapp
# - username: grabblaw_gdapp
# - password: NEW_SECURE_PASSWORD
Set Permissions:
# Fix ownership
chown -R TARGET_ACCOUNT:TARGET_ACCOUNT /home/TARGET_ACCOUNT/public_html/new_gdapp/
# Fix permissions
find /home/TARGET_ACCOUNT/public_html/new_gdapp/ -type d -exec chmod 755 {} \;
find /home/TARGET_ACCOUNT/public_html/new_gdapp/ -type f -exec chmod 644 {} \;
Phase 4: Testing
Hosts File Test:
# Add to local machine /etc/hosts (Linux/Mac) or C:\Windows\System32\drivers\etc\hosts (Windows)
72.194.62.5 data.grabbanddurando.com
# Test in browser
https://data.grabbanddurando.com
# Remove hosts entry after testing
Verification Checklist:
- Login functionality works
- Database queries successful
- File uploads work
- All pages load without errors
- SSL certificate valid
- PHP errors logged (check error_log)
Phase 5: DNS Cutover
Update DNS on WebSvr:
# SSH to WebSvr
ssh root@websvr.acghosting.com
# Edit zone file in WHM Zone Editor
# OR via command line:
# Update data.grabbanddurando.com A record from 208.109.235.224 to 72.194.62.5
DNS Record:
data.grabbanddurando.com. 3600 IN A 72.194.62.5
Propagation:
- Wait 1-4 hours for DNS propagation
- Monitor with:
dig data.grabbanddurando.com +short - Test from multiple locations
Phase 6: Post-Migration
Monitor:
- Check IX server logs for PHP errors
- Monitor database performance
- Verify SSL certificate auto-renews (Let's Encrypt)
- Check disk space usage
Client Communication:
- Notify Grabb & Durando of successful migration
- Confirm application functionality
- Provide new server details for their records
Cleanup (after 1 week):
- Remove application from GoDaddy VPS (free up disk space)
- Keep database backup for 30 days
- Cancel GoDaddy VPS subscription (if no longer needed)
Technical Notes
Why WHM Transfer Won't Work
Built-in WHM transfer tools expect to move entire cPanel accounts. In this case:
- Main domain (grabbanddurando.com) is on WebSvr
- Subdomain app (data.grabbanddurando.com) is on GoDaddy VPS
- Only migrating subdomain's application and database
- Subdomain is part of different accounts on different servers
- DNS managed on WebSvr (ACG Hosting nameservers)
Solution: Manual migration via rsync and database dump/restore.
PHP 7.4 Compatibility
Application built for PHP 7.4 (ea-php74). IX server must have this version available.
Check IX PHP versions:
ls /opt/cpanel/ea-php*/root/usr/bin/php
If PHP 7.4 not available, install via EasyApache 4 in WHM.
SSL Certificate
After DNS update, SSL certificate will need to be reissued for new server.
Options:
- Let's Encrypt (free, auto-renewal via cPanel)
- Existing certificate (if portable)
- New commercial certificate
cPanel AutoSSL: Should auto-detect and issue Let's Encrypt cert within hours of DNS propagation.
Rollback Plan
If issues occur after DNS cutover:
- Immediate: Revert DNS A record to 208.109.235.224
- Wait: 5-10 minutes for DNS to propagate back
- Investigate: Fix issues on IX server
- Retry: Update DNS again when ready
Keep GoDaddy VPS active for at least 1 week after successful migration.
Server Access
GoDaddy VPS (Source)
ssh -i ~/.ssh/id_ed25519 root@208.109.235.224
IX Server (Target)
ssh root@ix.azcomputerguru.com
# OR
ssh root@172.16.3.10 # Internal IP
WebSvr (DNS Management)
ssh root@websvr.acghosting.com
Useful Commands
Database Operations
# Export database
mysqldump -u USER -pPASS DATABASE > backup.sql
# Import database
mysql -u USER -pPASS DATABASE < backup.sql
# Show database size
mysql -u USER -pPASS -e "SELECT table_schema AS 'Database',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)'
FROM information_schema.tables
WHERE table_schema='grabblaw_gdapp'
GROUP BY table_schema;"
File Transfer
# Rsync with progress
rsync -avz --progress SOURCE/ DEST/
# SCP single file
scp file.sql root@server:/tmp/
# Check transfer size before rsync
du -sh /path/to/files
DNS Verification
# Check current DNS
dig data.grabbanddurando.com +short
# Check from specific nameserver
dig @8.8.8.8 data.grabbanddurando.com +short
# Trace DNS path
dig data.grabbanddurando.com +trace
Timeline
Estimated Duration: 2-4 hours
Breakdown:
- Preparation: 30 minutes
- Data transfer: 1-2 hours (depending on GoDaddy → IX network speed)
- Testing: 30 minutes
- DNS cutover: 15 minutes
- Monitoring: 1-4 hours (DNS propagation)
Recommended Time: Off-hours (evening/weekend) to minimize user impact
Contacts
Client: Grabb & Durando Law Firm Primary Contact: [Pending] Email: [Pending] Phone: [Pending]
Technical Support:
- Arizona Computer Guru (MSP)
- Mike Swanson: mike@azcomputerguru.com
- Phone: 520.304.8300
Related Documentation
Session Logs:
~/claude-projects/session-logs/2025-12-15-data-grabbanddurando-complete.md~/claude-projects/session-logs/2025-12-15-data-grabbanddurando-mariadb-fix.md~/claude-projects/session-logs/2025-12-15-grabbanddurando-calendar-fix.md
Additional Notes:
~/claude-projects/grabb-website-move/email-to-jason-data-app.md~/claude-projects/grabb-website-move/ix-security-hardening-notes.md
Post-Migration Enhancements (Optional)
After successful migration, consider:
-
Performance Optimization:
- Enable OPcache for PHP
- Configure MariaDB query cache
- Implement Redis for session storage
-
Security Hardening:
- Update PHP to 8.x (test compatibility first)
- Implement Wordfence or similar WAF
- Enable CSP headers
- Regular security audits
-
Backup Strategy:
- Daily database backups
- Weekly full application backups
- Offsite backup storage (S3, etc.)
-
Monitoring:
- Uptime monitoring
- Performance metrics
- Error tracking (Sentry, etc.)
Project Status: Planning Phase - Ready to Execute Next Step: Create cPanel account on IX and schedule migration window with client Priority: URGENT - Source server critically low on disk space