type: update jpsVersion: 1.2 name: MightyBox WordPress Backup/Restore Addon id: mb-backup-manager description: Custom Backup and Restore Addon for WordPress using Restic. Supports backing up databases, core files, media files, and full backups with scheduling and retention policies. baseUrl: https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main targetNodes: nodeType: - nginxphp - litespeedphp - lemp - llsmp globals: envName: "${env.name}" scriptPath: "/home/jelastic/mb-backups" logPath: "/home/jelastic/mb-backups/logs" onInstall: - checkAddons - installRestic - importScripts settings: backupSettings: submitUnchanged: true fields: - name: blabel caption: Backup Label type: string restoreSettings: submitUnchanged: true fields: - name: snapshotId caption: Snapshot ID type: string buttons: - caption: Backup Now action: backupnow loadingText: Backing up... confirmText: Do you want to initiate the backup process? successText: The backup process has been finished successfully. menu: - caption: Configure Auto Backup action: configureAutoBackup confirmText: Configure automated backup schedule? loadingText: Setting up backup schedule... successText: Backup schedule configured successfully title: Configure Automated Backup Schedule submitButtonText: Save Schedule - caption: Remove Auto Backup action: removeAutoBackup confirmText: Remove automated backup schedule? loadingText: Removing backup schedule... successText: Backup schedule removed successfully - caption: View Schedule action: viewBackupSchedule confirmText: View current backup schedule? successText: Current schedule retrieved successfully onUninstall: - removeScript onBeforeDelete: - removeScript onAfterRedeployContainer[cp]: - installRestic onAfterClone: - script: return {result:0, jps:MANIFEST}; - install: ${response.jps} nodeGroup: ${targetNodes.nodeGroup:cp} settings: cronTime: "0 * * * *" backupCount: "5" actions: configureAutoBackup: - cmd[cp]: user: root commands: | bash "/home/jelastic/mb-backups/manage_backup_schedule.sh" add "0 0 * * *" "$(cat /etc/restic-password)" - return: type: info message: "Daily backup schedule configured successfully" removeAutoBackup: - cmd[cp]: user: root commands: bash /home/jelastic/mb-backups/manage_backup_schedule.sh remove - return: type: info message: "Backup schedule removed successfully" backupnow: - cmd[cp]: user: root commands: bash /home/jelastic/mb-backups/backup_all.sh "${globals.envName}" - return: type: info message: "Backup initiated successfully." viewBackupSchedule: - cmd[cp]: user: root commands: bash /home/jelastic/mb-backups/check_sched.sh - return: type: info message: "${response.out}" importScripts: - cmd[cp]: user: root commands: - mkdir -p /home/jelastic/mb-backups - mkdir -p /home/jelastic/mb-backups/logs - mkdir -p /home/jelastic/mb-backups/logs/auto - mkdir -p /home/jelastic/mb-backups/logs/manual - mkdir -p /home/jelastic/mb-backups/logs/restore - cd /home/jelastic/mb-backups - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_all.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_core_files.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_database.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_media.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/check_sched.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/manage_backup_schedule.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/restore_backup_direct.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/view_snapshots.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/backup-logic.sh - chmod +x /home/jelastic/mb-backups/*.sh