jmiller 4bc8b47d05
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 15s
@
fix: reliably intercept extension update/uninstall + polish backup screen

The full-screen pre-action backup did not fire for extension
updates/uninstalls because Joomla 6 renders the com_installer toolbar
Update/Uninstall buttons as `<button task="update.update">` web
components, not inline onclick="Joomla.submitbutton(...)". Wrapping
Joomla.submitbutton never caught them.

installer-backup.js now uses a capture-phase document click listener on
any `[task]` element matching update.update / manage.remove(/uninstall),
so it runs before the toolbar web component. It captures the checked
cid[] selection, runs the full-screen backup, and on return restores the
selection, sets the boxchecked list-guard field, and re-fires the real
toolbar button with __msbResuming set so it is not re-intercepted.

Also polishes the runbackup screen: the progress bar is now a full-bleed
strip along the bottom edge of the card (edge-to-edge, clipped to the
rounded corners) instead of a boxed bar crowding the status text, and it
is coloured from the Atum template CSS custom properties
(--template-link-color / --template-special-color / --template-success-color
/ --template-danger-color) with Bootstrap and literal fallbacks.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
@
2026-07-12 16:07:36 -05:00
@
2026-07-12 16:07:36 -05:00

MokoSuiteBackup

Full-site backup and restore for Joomla — database, files, and configuration.

Field Value
Package pkg_mokosuitebackup
Type Joomla Package (9 sub-extensions + MokoSuiteClient)
Joomla 6.x+
PHP 8.1+
License GPL-3.0-or-later

Features

Backup

  • Full site, database-only, files-only, and differential backup modes
  • Pre-flight validation — checks directory, disk space, extensions, credentials before starting
  • Auto-verify archive integrity after creation
  • Stepped AJAX engine prevents timeout on shared hosting
  • AES-256 ZIP encryption with configurable password
  • Configurable archive naming with placeholders ([HOST], [DATE], [SITE_NAME], etc.)
  • Per-profile retention — configure max backup count and max age (days) per profile, with global defaults
  • Data sanitization — optionally clear user passwords, emails, and sessions in backup

Content Snapshots

  • Lightweight JSON snapshots of articles, categories, and modules
  • Includes tags, custom fields, workflow associations
  • Restore modes: Replace (clean slate) or Merge (upsert)
  • Selective article restore — browse and pick individual items
  • Automatic retention (max count + max age)
  • Scheduled snapshot task via com_scheduler

Remote Storage

  • Multi-remote — upload to multiple destinations per profile simultaneously
  • SFTP with SSH key file auth + remote directory browser
  • Amazon S3 and S3-compatible (DigitalOcean Spaces, Wasabi, MinIO)
  • Google Drive with OAuth2 and resumable uploads
  • Graceful degradation — local backup preserved if upload fails

MokoRestore Standalone Wizard

  • 9-step restore wizard that works without Joomla installed
  • Per-table conflict resolution: Replace / Skip / Merge / Data Only
  • Post-restore actions: reset passwords, hits, versions, sessions, cache
  • Auto-detect sanitized passwords and prompt for reset
  • Standalone mode: restore.php scans directory for ZIP files
  • Wrapped mode: restore.php bundled inside backup ZIP
  • Security gate with filesystem verification

Notifications

  • Email on success/failure per profile
  • ntfy push notifications
  • Notifications for restore and snapshot operations

Admin Dashboard

  • Last backup status, next scheduled, total count, storage used
  • Snapshot widget with latest info and type badges
  • 30-day backup trend chart
  • Per-profile storage breakdown
  • System health checks

CLI

  • mokosuitebackup:run --profile=1 — run backup
  • mokosuitebackup:restore 1 --files-only --db-only --password=xxx
  • mokosuitebackup:snapshot create|restore|list|delete

REST API

  • Backup: start, list, download, delete, profiles
  • Snapshots: create, list, restore, delete, download
  • Profile credentials masked in API responses

Bundled: MokoSuiteClient

  • Full MokoSuiteClient package installed automatically alongside MokoSuiteBackup
  • Provides admin dashboard, security firewall, tenant management, and developer tools

Installation

  1. Download from Releases
  2. Joomla Administrator > Extensions > Install
  3. Components > MokoSuiteBackup > Dashboard

Documentation

See the Wiki for guides and reference.

License

GPL-3.0-or-later

Author

Moko Consultinghello@mokoconsulting.tech

S
Description
Full-site backup and restore for Joomla - database, files, and configuration
https://mokoconsulting.tech/support/products/mokosuitebackup Readme
5.4 MiB
2026-07-13 00:58:58 +00:00
Languages
PHP 98.8%
JavaScript 0.5%
CSS 0.4%
HTML 0.3%