Current Status: Database Migration Complete โ
All 16 WordPress databases successfully migrated to DigitalOcean MySQL cluster.
Critical Issues to Resolve
1. โ ๏ธ WordPress App Platform URL Mismatch
Priority: HIGH
Issue: WordPress sites on DO App Platform redirect to install.php because database URLs don't match the app URLs.
Tasks:
- Create wp-config.php template with environment detection
- Deploy wp-config.php override to all WordPress apps
- Test each WordPress app individually
- Verify database connectivity from apps
- Verify all WordPress apps can be accessed without install.php redirect
Reference: See WORDPRESS_APP_ISSUES.md for detailed solutions
Security & Access Isolation
2. ๐ Database Access Isolation
Priority: HIGH โ ๏ธ CRITICAL SECURITY ISSUE
Current Issue: All 16 WordPress sites use the same doadmin credentials, giving each site access to ALL other sites' data.
Security Risk: If one site is compromised, attacker gains access to all 16 databases.
Tasks:
- Create 16 separate MySQL users (one per database)
- Grant each user access ONLY to their specific database
- Update wp-config.php files with site-specific credentials
- Test database access for each site
- Verify sites cannot access other databases
- Document new credentials securely
- Revoke doadmin access from apps (keep for admin only)
Implementation:
CREATE USER 'performwritecom_user'@'%' IDENTIFIED BY 'unique_secure_password';
GRANT ALL PRIVILEGES ON performwritecom_wp.* TO 'performwritecom_user'@'%';
FLUSH PRIVILEGES;
Databases requiring isolated users:
- collegeo_wp
- coomerawatersrea_wp
- corne582_wp
- handsofd_wp
- kandudeliveriesc_wp
- laserxperts_wp
- murbahmowers_wp
- murwillu_wp
- outdoor1_wp
- path2ucom_wp
- performwritecom_wp
- pits_wp
- redheale_wp
- sfnm_wp
- soilife_wp
- vastcons_wp
3. ๐ชฃ CDN/Bucket Access Isolation
Priority: HIGH โ ๏ธ CRITICAL SECURITY ISSUE
Current Issue: Bucket credentials allow access to ALL buckets.
Security Risk: If credentials are compromised, attacker can access/modify all site assets.
Solution Options:
Option A: Separate Buckets per Site (Recommended)
- Create 16 separate DO Spaces buckets (one per site)
- Create 16 separate API keys with bucket-specific permissions
- Configure each WordPress site to use only its bucket
- Update wp-config.php with bucket-specific credentials
- Test uploads to ensure isolation
Option B: Single Bucket with IAM Policies
- Create single DO Spaces bucket with folders per site
- Create 16 separate API keys
- Apply IAM policies restricting each key to specific folder
- Configure WordPress to use folder-specific credentials
Recommendation: Option A (separate buckets) is more secure and easier to manage.
Tasks:
- Decide on bucket isolation strategy
- Create separate Spaces buckets/credentials per site
- Document bucket-specific credentials securely
- Update wp-config.php files with bucket credentials
- Test file uploads for each site
- Verify sites cannot access other buckets
Bucket Naming Convention:
wordpress-performwritecom-assets
wordpress-collegeo-assets
wordpress-soilife-assets
... (etc for all 16 sites)
App Platform Configuration
4. ๐ WordPress Application Deployment
Priority: HIGH
Tasks:
- Verify all 16 WordPress apps are deployed on DigitalOcean App Platform
- Document app URLs for each WordPress site
- Configure environment variables for each app (DB_HOST, DB_USER, etc.)
- Set up health checks for each app
- Configure auto-scaling if needed
Apps to verify:
- collegeo_wp โ comsmta.org
- coomerawatersrea_wp โ coomerawatersrealestate.com.au
- corne582_wp โ cornerstone-constructions.com.au
- handsofd_wp โ handsofdestiny.com.au
- kandudeliveriesc_wp โ kandudeliveries.com.au
- laserxperts_wp โ laser-x-perts.com.au
- murbahmowers_wp โ murwillumbahmowers.com.au
- murwillu_wp โ murwillumbahchamber.com.au
- outdoor1_wp โ outdoorism.com.au
- path2ucom_wp โ path2u.com.au
- performwritecom_wp โ performwrite.com.au โ ๏ธ Currently has install.php error
- pits_wp โ preciseitservices.com.au
- redheale_wp โ redhealer.com.au
- sfnm_wp โ supportfornewmums.info
- soilife_wp โ soilifefarming.com.au
- vastcons_wp โ vastconstructions.com.au
DigitalOcean Spaces CDN Setup
5. ๐ฆ CDN & Static Assets
Priority: MEDIUM
Current Status: DO Spaces bucket exists but is empty
Tasks:
- Identify which DO Spaces bucket to use
- Configure bucket CORS settings
- Create WordPress plugin/config for CDN URL rewriting
- Migrate static assets (images, CSS, JS) from WordPress uploads to CDN
- Update WordPress media library to use CDN URLs
- Test image loading from CDN
- Set up automatic sync for new uploads
Migration Plan:
# Example: Sync WordPress uploads to Spaces
s3cmd sync /path/to/wordpress/wp-content/uploads/ s3://bucket-name/wp-content/uploads/
# Or use DO Spaces API
doctl compute cdn create --origin bucket-name.nyc3.digitaloceanspaces.com
WordPress CDN Plugins to Consider:
- WP Offload Media Lite (supports DigitalOcean Spaces)
- CDN Enabler
- W3 Total Cache (has CDN support)
- Custom plugin using upload_dir filter
Database & Configuration
6. ๐๏ธ Database Optimization
Priority: LOW
Tasks:
- Set up automated backups for MySQL cluster
- Configure backup retention policy
- Test database restore procedure
- Monitor database performance
- Optimize slow queries if any
- Set up database connection pooling if needed
DNS & Domain Configuration
7. ๐ DNS Migration
Priority: LOW (Do after apps are working)
Tasks:
- Document current DNS records for all 16 domains
- Plan DNS cutover strategy
- Update A/CNAME records to point to DO App Platform
- Configure SSL certificates for custom domains
- Test each domain after DNS propagation
- Monitor for DNS-related issues
- Update Google Search Console / Analytics
Domains:
- comsmta.org
- coomerawatersrealestate.com.au
- cornerstone-constructions.com.au
- handsofdestiny.com.au
- kandudeliveries.com.au
- laser-x-perts.com.au
- murwillumbahmowers.com.au
- murwillumbahchamber.com.au
- outdoorism.com.au
- path2u.com.au
- performwrite.com.au
- preciseitservices.com.au
- redhealer.com.au
- supportfornewmums.info
- soilifefarming.com.au
- vastconstructions.com.au
Monitoring & Performance
8. ๐ Monitoring Setup
Priority: MEDIUM
Tasks:
- Set up uptime monitoring for all 16 sites
- Set up alerts for downtime
- Monitor database performance
- Set up APM (Application Performance Monitoring)
Tools to consider:
- DigitalOcean Monitoring
- UptimeRobot
- New Relic / Datadog
- Custom health check endpoints
Dashboard Integration
7. ๐จ RMM Dashboard Integration
Priority: MEDIUM
Tasks:
- Add WordPress sites to services page in dashboard
- Display database credentials (secure view)
- Show app status (online/offline)
- Add quick links to:
- App Platform dashboard
- Database cluster
- CDN settings
- Implement site health checks in dashboard
- Add deployment status indicators
Data to display:
- Site name
- Original URL
- DO App URL
- Database name
- Status (โ
Online / โ ๏ธ Issues / โ Offline)
- Last checked timestamp
- Quick actions (restart, view logs, etc.)
Testing & Validation
8. โ
Testing Checklist
Priority: HIGH
Tasks:
- Database connectivity tested โ
- All 16 databases verified on DO MySQL cluster โ
- WordPress admin login works for all sites
- Frontend pages load correctly
- Plugins functioning correctly
- Themes displaying properly
- Forms/contact functionality working
- Search functionality working
- Performance testing (page load times)
- Mobile responsiveness check
Documentation
9. ๐ Documentation Tasks
Priority: LOW
Tasks:
- Database credentials documented โ
- WordPress app issues documented โ
- wp-config.php template created
Cleanup & Optimization
10. ๐งน Post-Migration Cleanup
Priority: LOW (After everything is working)
Tasks:
- Remove old cPanel SQL dumps (after verifying DO is working)
- Clean up temporary files and scripts
- Optimize images before uploading to CDN
- Clean up unused plugins/themes
- Remove old cPanel backups
Quick Win Tasks (Do First)
Immediate Actions:
- โ
Fix performwritecom_wp app - Update siteurl in database or add wp-config override
- Test other apps - Check if other WordPress apps have same issue
- Create wp-config template - Standard config for all sites
- Document app URLs - List all DO App Platform URLs
Within 24 Hours:
- Get all apps working - No more install.php redirects
- Test admin access - Verify wp-admin works on all sites
- Check file uploads - Ensure wp-content/uploads is writable
- Initial CDN setup - At least configure the bucket
Within 1 Week:
- Full app testing - Test all functionality on all 16 sites
- CDN deployment - Migrate static assets
- Dashboard integration - Add sites to RMM dashboard
- Monitoring setup - Health checks and alerts
Resources & References
Notes
- Database Migration: โ
Complete - All 16 databases on DO MySQL cluster
- App Deployment: โ ๏ธ Partial - Apps deployed but have URL mismatch issues
- CDN Setup: โ Not started - Bucket is empty
- DNS Migration: โ Not started - Still on cPanel hosting
Current Blocker: WordPress apps redirect to install.php due to URL mismatch between database (old cPanel URLs) and app platform URLs.
Next Step: Update wp-config.php files to handle multiple environments OR update database URLs for testing.
Last Updated: February 17, 2026