jmiller 2af2641712
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 22s
fix(installer): self-heal admin menu; fix alias collision; short-constant label
Fallout of the duplicate-component element bug:

- Preflight now runs removeOrphanedComponent() BEFORE the component install
  recreates its menu, so the orphan's "Backup" menu (alias "backup") no longer
  collides ("The alias backup is already being used by the Backup menu item").
- ensureSubmenuItems() recreates the top-level "Backup" menu when it is missing
  (via new createTopMenu()) instead of bailing out — so a failed install that
  deleted the parent menu no longer leaves Backup gone from the admin menu (which
  also broke the cPanel module and MokoSuiteClient component detection).
- The top-level menu label now uses the short constant COM_MOKOJOOMBACKUP_SHORT
  (manifest <menu> + enforced/normalized in the script).

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
2026-07-05 18:31:06 -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
4 MiB
2026-07-06 00:32:10 +00:00
Languages
PHP 99.6%
HTML 0.3%
CSS 0.1%