Since v9.0.2 — Project HORIZON

cPanel / WHMCS Surgical Swap

Replace MariaDB on a cPanel host with Absolute DB in one command. Sub-100 ms atomic flip, 7-day automatic rollback window, WHMCS billing integration. Zero application code changes.

Overview

The cPanel Surgical Swap replaces MariaDB with Absolute DB on any cPanel/WHM server. Because Absolute DB speaks the MySQL wire protocol on port 3306, every cPanel-managed application — WordPress, Joomla, PrestaShop, WHMCS, Drupal, Magento — continues working without any configuration or code changes.

The swap is atomic: it either completes fully or not at all. MariaDB data is preserved for 7 days, giving you a guaranteed rollback window.

How It Works

  1. Pre-flight checks

    Verifies cPanel version, MariaDB version, available disk space, existing databases, and backup status.

  2. Full MariaDB dump

    Creates a complete logical backup of all databases using mysqldump. Stored in /opt/absdb/swap-backup/.

  3. Install Absolute DB

    Downloads and installs the absdb-server binary. Configures the MySQL wire protocol on port 3306 with mysql_native_password authentication.

  4. Import data

    Imports all databases and users from the MariaDB dump into Absolute DB using the migration CLI.

  5. Atomic flip

    Stops MariaDB, starts Absolute DB on port 3306 (and PG wire on 5433, REST on 8080). The socket path /var/lib/mysql/mysql.sock is symlinked to Absolute DB. Total downtime: < 100 ms.

  6. Verification

    Runs health checks: cPanel API connectivity, SHOW DATABASES, phpMyAdmin access, WordPress wp db check.

Prerequisites

RequirementDetails
cPanel/WHMVersion 110+ (CentOS 7/8, AlmaLinux 8/9, Ubuntu 22.04+)
MariaDB10.3 – 11.x (currently installed via cPanel)
Disk space2× current MySQL data directory size (for backup)
Root accessSSH root or sudo required
Downtime window< 5 minutes total (most is backup time)

Installation

bash
# One-command swap (as root)
curl -fsSL https://downloads.absolutedb.com/cpanel-swap.sh | bash

# Or step-by-step:
# 1. Download
curl -fsSL https://downloads.absolutedb.com/install.sh | bash

# 2. Run the swap wizard
absdb-cpanel-swap --preflight     # check prerequisites
absdb-cpanel-swap --backup        # backup MariaDB
absdb-cpanel-swap --swap          # perform atomic swap
absdb-cpanel-swap --verify        # run health checks
Always run --preflight first. The swap script will refuse to proceed if prerequisites are not met.

Rollback

If anything goes wrong, roll back to MariaDB in one command:

bash
# Rollback to MariaDB (within 7-day window)
absdb-cpanel-swap --rollback

# What this does:
# 1. Stops Absolute DB
# 2. Restores MariaDB from /opt/absdb/swap-backup/
# 3. Restarts MariaDB on port 3306
# 4. Removes Absolute DB socket symlink
# Total rollback time: < 2 minutes

The MariaDB backup is automatically cleaned up after 7 days. To extend the retention window:

bash
# Extend rollback window to 30 days
absdb-cpanel-swap --extend-rollback 30d

WHMCS Integration

The swap includes a WHMCS billing driver module that enables hosting providers to sell Absolute DB as an add-on product:

  • Automatic database provisioning on account creation
  • Per-tenant isolation (each hosting account gets its own schema)
  • Usage metering: storage, connections, queries/sec
  • Tier-based billing: Community (free), SME, Professional, Enterprise
  • cPanel API integration for the "MySQL Databases" interface
bash
# Install WHMCS module
cp -r /opt/absdb/whmcs-module/ /path/to/whmcs/modules/servers/absolutedb/

# Configure in WHMCS Admin:
# Setup > Products/Services > Servers > Add New Server
# Type: AbsoluteDB
# Hostname: localhost
# Port: 3306

Application Compatibility

Tested and verified with common cPanel applications:

ApplicationStatusNotes
WordPressFullwp-config.php unchanged, WP-CLI compatible
JoomlaFullconfiguration.php unchanged
PrestaShopFullparameters.php unchanged
DrupalFullsettings.php unchanged
MagentoFullenv.php unchanged
WHMCSFullconfiguration.php unchanged
phpMyAdminFullConnects via MySQL protocol, all features work
cPanel MySQL UIFull"MySQL Databases" interface works normally
SoftaculousFullOne-click installs create databases via MySQL protocol

FAQ

Does this require changing application config files?

No. Absolute DB binds to the same port (3306) and socket path (/var/lib/mysql/mysql.sock). All connection strings remain identical.

What about MySQL-specific SQL syntax?

Absolute DB handles common MySQL-isms: SET NAMES, SELECT @@version, SHOW DATABASES/TABLES/COLUMNS, USE database, backtick quoting. Standard SQL (which WordPress, Joomla, etc. all use) works identically.

Can I still use phpMyAdmin?

Yes. phpMyAdmin connects via the MySQL wire protocol and works normally.

What extra features do I get?

Every cPanel site immediately gains: vector search, full-text BM25, graph queries, time-series, native TLS 1.3, post-quantum crypto, PITR backup, and the built-in web console on port 8080.

Continue Reading

Ready to run Absolute DB?

~154 KB binary  ·  zero external dependencies  ·  2,737 tests passing  ·  SQL:2023 100%