jmiller 6b4f98869a
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 37s
Generic: Project CI / Lint & Validate (pull_request) Successful in 33s
Universal: PR Check / Validate PR (pull_request) Failing after 28s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 32s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
fix: installer postflight honest about partial/failed install
Joomla logs a failed child extension but still runs the package
postflight, so the 'installed successfully' message could appear on a
broken install. In postflight, before the success/next-steps messages:

- verify every bundled child declared in the package manifest actually
  registered in #__extensions (match element+type, and folder=group for
  plugins), and
- verify the component's schema tables (parsed dynamically from the
  installed install.mysql.sql) exist in the DB.

If anything is missing, enqueue an error listing it and RETURN before the
success message. Fail-open (try/catch -> nothing missing) so a transient
manifest/DB/IO glitch can't fail a good install. Unconditional
housekeeping (download-key restore, menu fixes) still runs regardless.
Names escaped with htmlspecialchars; table/child lists derived
dynamically, never hard-coded.

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