INFRASTRUCTURE MODULE — TOOLS

WordPress Server Backup Plugin — Automated Backups, SSH Management, and Health Checks

Run granular backups of your database, plugins, themes, LuperIQ modules, and uploads directly from the WordPress admin. Manage remote servers over SSH, monitor server health, save reusable backup profiles, auto-discover resources, and download backup archives—all without leaving your dashboard. Version 2.0 with profile-based configuration.

Admin Tabs 3 (Backup, Backup Browser, Settings)
Execution Modes 2 (Local and Remote via SSH)
Backup Scopes 5 (Database, Plugins, Themes, Modules, Uploads)
Database Table Groups 8 selectable categories
AJAX Endpoints 11 nonce-protected operations
Destination Options 3 (Local, SFTP/SCP, S3/Cloud)

The Problem With WordPress Server Backups

Most WordPress backup solutions are blunt instruments. They create monolithic archives of everything on your server without letting you choose what to include. If you only need to back up the database and a handful of plugins, you still wait while the system archives every media upload and inactive theme. Remote server management requires jumping between SSH terminals and the WordPress admin. Backup profiles do not exist, so every backup starts from scratch. And when you need to browse or download a past backup, there is no structured interface for finding the right archive.

LuperIQ Server Tools solves this with a granular, profile-based backup system built into the WordPress admin. You choose exactly which components to back up: specific database table groups, individual plugins, specific themes, selected LuperIQ modules, and the uploads directory. You save those choices as named profiles so future backups run with a single click. The module works in local mode for the server it is installed on, or in remote mode using SSH key authentication to manage backups on a different server entirely. A built-in health check reports disk usage, memory, uptime, and recent backup history. The Backup Browser gives you a structured view of every archive with file sizes, SCP commands, and direct download links.

Everything You Need for WordPress Server Management

Granular Backup Engine

Choose Exactly What Gets Backed Up

Select from five backup scopes: database, plugins, themes, LuperIQ modules, and uploads. For the database, choose between all tables or pick from eight table groups including WordPress Core, Newsletter Suite, Email System, SEO Tools, Commerce, LuperIQ Core, WooCommerce, and Image Optimizer. For plugins, themes, and modules, back up all of them or select specific ones by name. Skip any scope entirely if you do not need it.

Backup Profiles

Save and Reuse Backup Configurations

Name your backup configuration and save it as a profile. The next time you need the same backup, select the profile from the dropdown and click Load. Profiles store every setting including database mode, selected table groups, plugin selections, theme selections, module selections, upload inclusion, destination, and retention count. Create profiles for different scenarios: a quick database-only profile for daily use, a full-site profile for weekly archives, or a commerce-focused profile that targets WooCommerce tables and related plugins.

Local and Remote Execution

Back Up This Server or Any Server Over SSH

Run backups locally on the server where WordPress is installed, or switch to remote mode to manage a completely different server via SSH. Remote mode uses key-based authentication with configurable host, user, SSH key path, and port. The backup configuration is transferred to the remote server via SCP, the backup runs remotely, and results are returned to the WordPress admin. Test your SSH connection with one click before running any remote operations.

Server Health Monitoring

Disk, Memory, Uptime, and Backup History

Run a health check from the Backup tab to see disk usage for the WordPress directory, total memory and available memory, server uptime, and the five most recent backups in the backup directory. Health reports work in both local and remote mode, giving you a quick server status snapshot without opening an SSH terminal.

Backup Browser

Browse, Inspect, and Download Archives

The Backup Browser tab loads a detailed view of every backup in the backup directory. Each entry shows the backup timestamp, included components, individual file paths, file sizes in human-readable format, and pre-generated SCP commands for each file. In local mode, download backup files directly through the WordPress admin. In remote mode, copy the SCP command and paste it into your local terminal.

Auto-Discovery Engine

Detect Plugins, Themes, and Modules Automatically

When the Backup tab loads, the discovery system scans the WordPress installation to find all installed plugins, themes, and LuperIQ modules. These populate the selection checkboxes so you can pick exactly which ones to include. Discovery also loads the database table group definitions so you can see which tables belong to each category before selecting them.

Multiple Backup Destinations

Local Storage, SFTP, or S3-Compatible Cloud

Store backups on the local server filesystem, transfer them to a remote server via SFTP or SCP, or push them to an S3-compatible cloud bucket. Each destination is configured per-backup or saved in a profile. The local backup directory defaults to /var/backups/luperiq and can be changed in Settings.

Backup Retention Management

Automatic Cleanup of Old Archives

Set a retention count to keep only the N most recent backups. After each new backup completes, archives older than the retention limit are automatically deleted. The default retention is 5 backups. Adjust this per-profile or globally in the backup options.

Script Deployment and Updates

Install or Update the Backup Binary

The Server Tools module can deploy or update the luperiq backup binary directly to /usr/local/bin on the target server. In local mode, it copies the binary and sets execute permissions. In remote mode, it transfers the binary via SCP, moves it into place with sudo, and sets permissions. Click Update Script from the Backup tab to keep your backup binary current.

Who This Module Is Built For

Any WordPress administrator, developer, or agency that manages server backups and needs more control than a one-size-fits-all backup plugin provides. Especially valuable for VPS and dedicated server environments where you own the infrastructure and want to manage it from the WordPress admin.

WordPress Site Administrators

  • Run full or selective backups from the WordPress admin without logging into the server or using cPanel.
  • Save backup profiles for recurring tasks so you never have to reconfigure the same backup twice.
  • Monitor server health including disk usage, memory, and uptime without leaving the dashboard.

DevOps Engineers and System Administrators

  • Manage backups on remote servers over SSH with key-based authentication directly from the WordPress admin.
  • Use the backup browser to inspect individual archive files with exact sizes and pre-built SCP commands for fast downloads.
  • Deploy or update the backup binary across multiple servers using the built-in script deployment tool.

Agency and Multi-Site Managers

  • Create standardized backup profiles that target only the components each client site needs, reducing backup time and storage.
  • Switch between local and remote mode to manage backups across different client servers from one WordPress installation.
  • Set per-site retention policies so production sites keep more backups while staging environments clean up aggressively.

How the Backup System Works

When you click Run Backup Now, the module reads your current configuration from the Backup tab or from the loaded profile. It builds a JSON config object specifying which database table groups to include, which plugins, themes, and modules to archive, whether to include the uploads directory, the retention count, and the destination type. This config is written to a temporary file on the server.

In local mode, the luperiq binary is invoked directly with environment variables pointing to the WordPress path and backup directory, plus the path to the config file. The binary reads the config, exports the selected database tables, archives the selected filesystem directories, writes everything to the backup directory, and reports completion. In remote mode, the config file is first transferred to the remote server via SCP. Then the backup command is executed over SSH with the remote config path. After the backup completes, the temporary config file is cleaned up on both servers.

The module detects the backup binary automatically. It checks the system PATH using the which command. If the binary is not in the PATH, it falls back to the bundled script at server_tools/bin/luperiq. All AJAX handlers verify a WordPress nonce and check that the current user has manage_options capability before executing any operation. Every request is processed server-side with no direct public URL exposure for backup files.

SSH Remote Management

The SSH client is a dedicated service class that manages remote command execution with security defaults baked in. Connections use BatchMode to prevent interactive password prompts, a 10-second connect timeout to avoid hanging on unreachable servers, and StrictHostKeyChecking set to accept-new so the first connection to a new server succeeds while subsequent connections verify the host key. SSH key authentication is the primary method, with the key path configurable in Settings.

The Test Connection button executes a lightweight command on the remote server that echoes a success message, prints the hostname, and reports uptime. This confirms that SSH connectivity, authentication, and command execution all work before you attempt a backup. For file transfers, the SSH client provides a dedicated SCP method that handles key path injection, port configuration, and timeout settings. Remote backup configs are transferred to /tmp on the remote server and cleaned up immediately after the backup completes.

Key-Based Authentication

No Passwords in Transit

SSH connections use key files configured in Settings. The key path is passed via the -i flag. No passwords are stored in the database or transmitted over the network.

BatchMode Enabled

No Interactive Prompts

All SSH commands run with BatchMode=yes, which means no password prompts, no passphrase prompts, and no interactive confirmations. If authentication fails, the command returns immediately with an error.

SCP File Transfer

Secure Config Delivery

Backup configurations are transferred to remote servers using SCP with the same authentication and timeout settings as SSH. Temporary files are written to /tmp and cleaned up after use.

Connection Testing

Verify Before You Execute

Test your SSH configuration with a single click. The test command prints a success message, the remote hostname, and the server uptime. Results appear directly in the WordPress admin.

Frequently Asked Questions

Does this module require SSH access to work?

No. The module works in local mode without any SSH configuration. Local mode runs backups directly on the server where WordPress is installed using shell_exec. SSH is only needed if you want to manage backups on a different remote server. You can switch between local and remote mode in Settings at any time.

What database table groups are available?

Eight groups: WordPress Core (posts, users, options, and other core tables), Newsletter Suite, Email System, SEO Tools, Commerce, LuperIQ Core, WooCommerce, and Image Optimizer. You can back up all tables at once, select specific groups, or skip the database entirely.

Can I back up individual plugins instead of all of them?

Yes. On the Backup tab, select the "Select Specific" radio option under Plugins. The discovery engine scans your wp-content/plugins directory and shows every installed plugin as a checkbox. Check only the plugins you want to include. The same applies to themes and LuperIQ modules.

Where are backups stored?

By default, backups are stored in /var/backups/luperiq on the target server. You can change this path in the Settings tab. The backup directory is configurable per installation. If you use SFTP or S3 as the destination, backups are transferred to those locations after creation.

How do backup profiles work?

Create a backup configuration on the Backup tab by selecting your database mode, plugins, themes, modules, uploads, destination, and retention count. Click Save As to name the profile. Profiles are stored in a WordPress option. To use a profile, select it from the dropdown and click Load. All settings are restored. Profiles can be updated by loading them, making changes, and saving again. Delete profiles you no longer need from the same dropdown.

Is the backup process secure?

Yes. All AJAX endpoints verify a WordPress nonce and require the manage_options capability. Backup files are stored on the server filesystem with no public URL. The download endpoint validates that the requested file path resolves to a location inside the configured backup directory, preventing path traversal. In remote mode, SSH connections use key-based authentication with BatchMode and a 10-second timeout.

Can I download backup files directly from the browser?

In local mode, yes. The Backup Browser provides a download link for each file that streams the archive through an AJAX handler. In remote mode, the browser shows a pre-generated SCP command for each file that you can paste into your local terminal. Direct browser downloads are not available in remote mode because the files are on a different server.

Does the module depend on other LuperIQ modules?

No. Server Tools has no module dependencies. It works as a standalone module. If the LuperIQ BasicCore plugin is installed, the module integrates with its admin UI header and help modal system, but neither is required for backup functionality.

What happens if the luperiq binary is not installed?

The module first checks if luperiq is in the system PATH using the which command. If not found, it falls back to the bundled binary at server_tools/bin/luperiq. If neither exists, you can deploy the binary using the Update Script button, which copies it to /usr/local/bin and sets execute permissions. In remote mode, the binary is transferred via SCP.

Take Control of Your WordPress Server Backups

Stop running backups blindly. Install LuperIQ, activate Server Tools, and get granular, profile-based backups with SSH remote management, health monitoring, and a structured backup browser—all from the WordPress admin.

See Pricing