Skip to content

Advanced Topics

Fresh

Deep dives into MainWP's advanced capabilities for power users and developers.

Topics

TopicDescription
System RequirementsServer specs, PHP settings, hosting compatibility
WP-CLI IntegrationCommand-line management of MainWP
OpenSSL EncryptionHow MainWP secures Dashboard↔Child communication
MigrationMoving your Dashboard or child sites

Architecture Deep Dive

Key Concepts

Communication Protocol

MainWP uses a custom HTTP-based protocol with OpenSSL encryption:

  1. Dashboard generates RSA key pair during activation
  2. Public key is stored on each child site during connection
  3. All requests are signed with the Dashboard's private key
  4. Child verifies signature before executing any action
  5. Responses are encrypted with the Dashboard's public key

Data Storage

Data TypeLocationTable Prefix
Site recordsDashboard DBmainwp_wp_
Sync dataDashboard DBmainwp_wp_sync_
Extension dataDashboard DBExtension-specific
Child authChild site DBoptions table
Temporary dataBothWordPress transients

Cron Jobs

MainWP uses WordPress cron (or system cron) for:

  • Site syncing — every 24 hours (configurable)
  • Uptime checks — every 5 minutes
  • Update checks — every 12 hours
  • Report generation — per schedule
  • Backup scheduling — per job config

System Cron Recommended

For reliable scheduling, disable WP-Cron and use system cron:

bash
# Add to crontab
*/5 * * * * curl -s https://your-dashboard.com/wp-cron.php > /dev/null 2>&1

Then add to wp-config.php:

php
define('DISABLE_WP_CRON', true);