7e404b0246
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Blocked by required conditions
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Blocked by required conditions
Joomla: Extension CI / PHPStan Analysis (pull_request) Blocked by required conditions
Joomla: Extension CI / Build RC Pre-Release (pull_request) Blocked by required conditions
Universal: PR Check / Build RC Package (pull_request) Blocked by required conditions
Universal: PR Check / Report Issues (pull_request) Blocked by required conditions
Generic: Repo Health / Scripts governance (pull_request) Blocked by required conditions
Generic: Repo Health / Repository health (pull_request) Blocked by required conditions
Generic: Repo Health / Report Issues (pull_request) Blocked by required conditions
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Universal: Build & Release / Promote to RC (pull_request) Failing after 10s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 42s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 50s
Review fixes: - data-only mode uses REPLACE INTO (was INSERT INTO, broke on dupes) - temporary password is random 16-char hex (was hardcoded "changeme") README rewritten with all features: snapshots, SFTP, MokoRestore wizard, sanitization, dashboard, CLI, API.
86 lines
3.0 KiB
Markdown
86 lines
3.0 KiB
Markdown
# MokoSuiteBackup
|
|
|
|
Full-site backup and restore for Joomla — database, files, and configuration.
|
|
|
|
| Field | Value |
|
|
|---|---|
|
|
| **Package** | `pkg_mokosuitebackup` |
|
|
| **Type** | Joomla Package (8 sub-extensions) |
|
|
| **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.)
|
|
- 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
|
|
- SFTP with SSH key file authentication (key stored base64-encoded in database)
|
|
- 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
|
|
|
|
## Installation
|
|
|
|
1. Download from [Releases](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/releases)
|
|
2. Joomla Administrator > Extensions > Install
|
|
3. Components > MokoSuiteBackup > Dashboard
|
|
|
|
## Documentation
|
|
|
|
See the [Wiki](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/wiki) for guides and reference.
|
|
|
|
## License
|
|
|
|
GPL-3.0-or-later
|
|
|
|
## Author
|
|
|
|
[Moko Consulting](https://mokoconsulting.tech) — hello@mokoconsulting.tech
|