Note
Beta Release (v1.3.x) β Tested and working as of v1.3.10.
We recommend testing in a non-production environment first. Bug reports and contributions welcome!
BackBork wraps WHM's existing backup tools into a clean interface. No reinventing the wheel β just a nicer way to manage disaster recovery backups.
KISS = Keep It Simple, Stupid
We've built this for sysadmins and resellers who want reliable account backups without having to opt for a flawed paid offering to get around the native backup limitations (ie. backs up all accounts before transporting & deleting all, meaning disk allocations need to be 250-300%)
Select your accounts, pick a destination, backup/restore now or queue it. Done.
| Feature | What It Does |
|---|---|
| π¦ Backup Accounts | Full account backups to local or SFTP |
| π Restore Accounts | Full restore or cherry-pick specific parts |
| π Real-Time Progress | Live step-by-step logging during backup/restore |
| β° Schedule Backups | Hourly, daily, weekly (pick your day), or monthly (1st of month) |
| π All Accounts Mode | Dynamic schedules that auto-include new accounts |
| ποΈ Data Management | Browse backups by account with size tracking |
| π Schedule Lock | Root can prevent resellers from managing schedules |
| ποΈ Retention Pruning | Auto-delete old backups (local and remote) |
| ποΈ Destination Visibility | Root can hide destinations from resellers |
| π§ Notifications | Email and Slack alerts when things happen |
| π₯ Hot DB Backups | MariaDB-backup support (no table locks!) |
| π₯ Multi-User | Root and resellers, each with their own settings |
| π‘οΈ Cron Monitoring | Self-checks with alerts if cron goes walkabout |
| π JSON API | Full REST-style API for automation and scripting |
| π€ CLI Access | Command-line API for Ansible/automation |
| π Audit Logs | Filterable by account and action, with per-account runtimes |
| βοΈ 22+ Skip Options | Fine-tune exactly what gets backed up |
| π Update Notifications | GUI alert when a new version is available |
| β Job Cancellation | Cancel running backups gracefully |
git clone https://github.com/The-Network-Crew/BackBork-KISS-Plugin-for-WHM.git
cd BackBork-KISS-Plugin-for-WHM
./install.shWarning
Do this first! BackBork reads destinations from WHM β it doesn't create them.
- WHM β Backup β Backup Configuration
- Scroll to Additional Destinations
- Add SFTP (or use Local)
- Click Validate β
- WHM β Backup β BackBork KISS
- Or:
https://your-server:2087/cgi/backbork/index.php
Select your accounts, choose a destination, and fire off a backup. The interface shows you exactly what's happening in real-time with step-by-step progress logging β from pkgacct execution through to upload completion and cleanup. See the processing indicator (cog icon at the top) spin when the queue is being processed!
Browse your backup files and restore entire accounts or just the bits you need. Real-time progress logging shows each step of the restore β download, verification, database handling, restorepkg execution, and cleanup. No more hunting through directories or wondering what's happening.
Before restoration starts, you have to confirm:
Set up automated backups on your terms β hourly, daily, weekly (pick your day), or monthly (runs on the 1st). The cron job handles the rest.
Monitor your backup jobs in real-time. See what's pending, what's running (with live progress bars showing accounts completed), and trigger manual processing when needed. Running jobs can be cancelled β they'll finish the current account backup, then stop gracefully.
Browse backup files by account and delete individual backups when needed. Select a destination, pick an account from the A-Z list (with storage size displayed for each), and manage your backup data.
Every backup, restore, and config change is logged with timestamps, users, and IP addresses. Filter by account or action type for easy troubleshooting.
- Operation Type: Shows
backup_local,backup_remote,restore_local, orrestore_remote - Per-Account Runtime: Each account shows its individual duration (e.g.,
user1 (45s), user2 (1m 23s)) - Destination Info: Details include the destination name (local) or hostname (remote)
- Filtering: Filter logs by specific account or by action type
Tweak your notification settings, database backup methods, and 22+ skip options. Each user (root/resellers) gets their own config.
Example Notification: Slack
Example Notification: Email
Tip
This is done at WHM > Backup Configuration > Destinations.
There is a hyperlink in BackBork KISS > Configuration that'll take you there.
Isn't it convenient how there's a JB up-sell there, and they won't fix Backups...
- β Select the account(s) you want to back up
- π Choose your destination (SFTP or local)
- π Click Backup Selected
- π Watch the real-time progress log showing each step:
- Destination validation
- pkgacct execution
- Database backup (if configured)
- Upload to destination
- Cleanup of temp files
- Go to the Restore tab
- Pick the destination, account, and backup file
- Choose what to restore (full account or specific parts)
- Click Restore and watch the real-time progress:
- Download from remote (if applicable)
- File verification
- Database check
- restorepkg execution
- Cleanup and notification
- Go to the Schedule tab
- Click Add Schedule
- Select accounts, destination, and frequency
- Or enable All Accounts to dynamically include all accessible accounts
- Save β the cron job handles the rest automatically
Tip
Use different schedules for different account tiers. Back up your VIP customers hourly, regular accounts daily, and dormant sites weekly.
Tip
Enable All Accounts for a schedule that automatically includes newly created accounts without manual updates.
| User Type | Access Level |
|---|---|
| π΄ Root | All accounts, all settings, full control |
| π‘ Resellers | Only their own accounts and settings |
Each user gets separate configuration β resellers can't peek at root's settings, or another reseller.
Note
Resellers can see and use destinations but cannot create them. Root must configure destinations in WHM Backup Configuration first.
Note
Root can enable Schedule Lock in Global Settings to prevent resellers from creating, editing, or deleting schedules. Existing schedules continue to run.
| Setting | Description |
|---|---|
| π Schedule Lock | (Root only) Prevent resellers from managing schedules |
| π Debug Mode | (Root only) Verbose logging to PHP error_log |
| π§ Email | Where to send notification emails |
| π¬ Slack Webhook | Post alerts to your team's Slack channel |
| π Notify On | Start, success, and/or failure events |
| ποΈ Database Method | mysqldump, mariadb-backup, or skip databases entirely |
| π¦ Compression | Compress backups or leave them raw |
| βοΈ Skip Options | 22+ components you can exclude from backups |
/usr/local/cpanel/3rdparty/backbork/
βββ π€ users/ β Per-user config files
βββ π
schedules/ β Scheduled backup jobs
βββ π queue/ β Jobs waiting to run
βββ π running/ β Currently active jobs
βββ β
completed/ β Finished job records
βββ π logs/ β Operation audit logs
Important
Your actual backup files go to whatever destination you've configured (local path or SFTP server). The plugin directory only stores job metadata and logs β not your backups themselves.
| What | Minimum | Notes |
|---|---|---|
| WHM | 130+ | Needs modern WHMAPI1 |
| PHP | 8.2+ | Uses WHM's bundled PHP |
| Access | Root SSH | For installation only |
| Destination | SFTP or Local | Must be configured in WHM first |
| Cron | Required | Auto-configured by the installer |
Caution
Backup destinations must be configured in WHM before using BackBork. The plugin reads existing destinations β it can't create them for you.
Note
Cron is essential for scheduled backups and queue processing. The installer sets it up automatically, and the plugin monitors its health. See CRON.md for the nitty-gritty.
BackBork exposes a full JSON API for automation and scripting. Every action you can do in the GUI, you can do via API.
HTTP (remote access):
# Example: List accounts
curl -k -H "Authorization: whm root:YOUR_API_TOKEN" \
"https://server:2087/cgi/backbork/api/router.php?action=get_accounts"
# Example: Queue a backup
curl -k -X POST \
-H "Authorization: whm root:YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"accounts":["myuser"],"destination":"SFTP_Backup","schedule":"once"}' \
"https://server:2087/cgi/backbork/api/router.php?action=queue_backup"CLI (local automation):
# No auth needed β you're already root
php /usr/local/cpanel/whostmgr/docroot/cgi/backbork/api/router.php --action=get_accounts
# With JSON data
php router.php --action=create_schedule \
--data='{"all_accounts":true,"destination":"SFTP_Backup","schedule":"daily","retention":30}'| Endpoint | What It Does |
|---|---|
get_accounts |
List accessible accounts |
get_destinations |
List configured backup destinations |
queue_backup |
Add accounts to backup queue |
create_schedule |
Create automated backup schedule |
get_queue |
View queue, running jobs, and schedules |
get_logs |
Retrieve audit logs |
Tip
See API.md for the complete endpoint reference, request/response formats, and authentication details.
./uninstall.shRemoves plugin files, cron entries, and WHM registration. Your backups stay right where they are β we don't touch those.
| Resource | Description |
|---|---|
| π§ TECHNICAL.md | Architecture, file structure, and internals |
| π API.md | Full API reference for automation |
| π€ ORCH.md | Ansible playbooks and orchestration examples |
| β° CRON.md | Cron configuration and troubleshooting |
| π GitHub Issues | Report bugs or request features |
| π LICENSE | Affero GPLv3 (AGPLv3) |
Got BackBork sorted but nowhere to send your backups? Velocity Host runs KISS Cloud Storage β purpose-built for blokes like us who want simple, secure, Aussie-hosted backup storage without the Big Tech nonsense.
| Why KISS Cloud? | |
|---|---|
| π¦πΊ Data Sovereignty | Your data stays in Australia, governed by local laws |
| π No Snooping | We don't scan your files to train AI or flog you ads |
| π° Simple Pricing | Per-GB, all-inclusive β no PhD required to read your invoice |
| π‘οΈ ZFS Integrity | Monthly corruption checks on proper enterprise storage |
BackBork KISS + KISS Cloud Storage β a match made in heaven for your DR strategy.
π Check out KISS Cloud Storage
Made with π by The Network Crew Pty Ltd & Velocity Host Pty Ltd










