mxBackup

Backup файлов и БД MODX: AES-256 и безопасная dev-копия для разработки
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Артур Шевченко
Пакетов
31
Закачек
3 500
Автор дополнения
Пакетов
31
Закачек
3 500
Версия 1.8.0-rc
Дата выпуска 04.09.2026
Загрузки 8
Просмотры 227

mxBackup создаёт полноценные резервные копии сайта MODX: файлы, структуру и данные MySQL — в одном ZIP или tar.gz архиве. Содержимое ZIP можно защитить AES-256 паролем.

Для переноса сайта на стенд есть отдельный dev-профиль: сессии удаляются, а персональные данные MODX и miniShop2 заменяются стабильными тестовыми значениями. Если безопасную маскировку или шифрование применить нельзя, архив не создаётся.

  • production- и обезличенные development-копии;
  • AES-256 шифрование содержимого ZIP с проверкой результата;
  • запуск из manager, CLI и cron;
  • переносимые файловые профили и правила;
  • include/exclude-правила для файлов и таблиц;
  • собственные правила маскирования, включая JSON path;
  • история запусков, manifest, checksum и retention;
  • логирование через mxLogger со стандартным журналом MODX как fallback;
  • preflight и восстановление файлов и базы данных с обязательным страховочным backup;
  • блокировка параллельных запусков и атомарная публикация архива;
  • email-отчёт и вложение небольших архивов.

Пакет подходит для аварийного резервирования и восстановления, подготовки безопасных копий для разработчиков и регулярных задач cron. Большие копии рекомендуется запускать через CLI.

mxBackup 1.8.0-rc (2026-09-04)

  • CHANGE: Доступ к CMP и manager-коннектору ужесточён: просмотр mxBackup требует mxbackup_view, запуск backup/estimate/cancel — mxbackup_run, восстановление/preflight — mxbackup_restore, изменение профилей/правил/настроек — mxbackup_manage. После обновления доступ автоматически выдаётся группам Administrator и Developers через политику mxbackupDefault; прочим группам её нужно назначить вручную: Пользователи -> Права доступа -> группа -> Контексты -> mgr -> mxbackupDefault.
  • Пункт меню mxBackup теперь требует mxbackup_view; при обновлении старой установки резолвер заполняет пустое поле permissions у существующего пункта меню.
  • Резолвер доступа назначает штатную политику mxbackupDefault группам Administrator и Developers отдельными ACL-записями modAccessContext, не изменяя политику Administrator.

mxBackup 1.7.0-rc (2026-08-11)

  • CLI показывает ход работы. Backup и restore объявляют стадии («[3/5] Дамп базы»), считают таблицы, файлы, байты SQL и отправленные в S3 килобайты. Раньше прогон на большом сайте молчал минутами, и отличить работу от зависания было нечем.
  • Индикация идёт в STDERR, поэтому JSON в STDOUT остаётся машиночитаемым, а конвейеры и парсеры вывода продолжают работать как прежде.
  • Вне терминала (cron, лог, письмо) строка не перерисовывается: печатаются только начало и итог каждой стадии с длительностью — по ним видно, на чём именно оборвался неудачный прогон. Отключается флагом --no-progress.
  • Страховочная копия внутри restore печатает свои стадии отдельной вложенной лентой с отступом, а не подмешивается к стадиям восстановления.
  • Исправлено: ZIP-архив с записью по имени site (файл вместо каталога) ронял восстановление обращением к неопределённой переменной вместо понятной ошибки.
  • Исправлено: восстановление падало с «MySQL server has gone away» на записи страховочной копии в историю. Пока распаковывался архив, сервер закрывал простаивающее соединение по wait_timeout, и первый же запрос после этого не проходил. Соединение теперь пингуется во время долгих стадий и поднимается заново, а обращения к истории запусков повторяются после переподключения. Внутри consistent snapshot переподключения нет: там обрыв прерывает дамп с явной ошибкой, чтобы архив не собрался из разных состояний базы.

mxBackup 1.6.0-rc (2026-08-11)

  • Условие «Применять только при условии» теперь редактируется прямо в форме правила: пары «колонка строки — маска значения» задаются таблицей с редактированием по клику, строки добавляются и удаляются кнопками. Раньше условие можно было задать только правкой файла профиля, а форма его лишь сохраняла.
  • Подписи и подсказки блока условий переписаны под смысл: колонка называется «Колонка строки», маска — «Значение подходит под маску», под таблицей приведены примеры на modx_system_settings (secret поймает paymentSecret, а !*_min_length оставит нетронутой настройку password_min_length). Пустая таблица прямо говорит, что правило применится ко всем строкам.
  • Строка условия с незаполненной колонкой или пустой маской подсвечивается, и правило не сохраняется: раньше такая строка молча выпадала.
  • С кнопок компонента убраны иконки — в теме менеджера они перевешивали содержимое формы.

mxBackup 1.5.3-rc (2026-08-11)

  • Обезличивание настроек добралось до пользовательских переопределений. В 1.5.2-rc правило для modx_user_settings было записано с опечаткой в имени таблицы, а modx_user_group_settings не упоминался вовсе: настройки, переопределённые у пользователя или у группы, уезжали в копию как есть. Имена сверены со схемой ядра MODX 2 и MODX 3 — они разнобойные (system_settings и user_settings во множественном числе, context_setting в единственном), и сравнение точное, поэтому лишняя буква означала не мягкое срабатывание, а полное отсутствие правила.

mxBackup 1.5.2-rc (2026-08-11)

  • Обезличенная копия больше не увозит секреты из настроек MODX. Ключи платёжных шлюзов, пароль SMTP, токены рассылок и аналитики лежат в modx_system_settings вперемешку с безобидными настройками, и до сих пор уезжали в dev-копию как есть. Теперь значение стирается у настроек, чьё имя похоже на пароль, токен, secret, api_key, private_key, license_key, access_key, auth_key или заканчивается на _credentials; то же применяется к переопределениям в modx_context_setting и modx_user_setting. Остальная конфигурация остаётся, и сайт из копии поднимается.
  • Настройки, лишь названные похоже, остаются рабочими: password_min_length, password_generated_length, allow_manager_login_forgot_password, token_ttl и прочие тайминги, лимиты и флаги не стираются — иначе копия поднималась бы с обнулённой политикой паролей.
  • Правило маскирования умеет условие по соседним колонкам строки (ключ when в профиле): 'when' => ['key' => ['*secret*']] вычистит колонку value только у подходящих строк. Так закрываются таблицы вида «имя в одной колонке, значение в другой» — настройки, метаданные, key-value-справочники сторонних пакетов. Шаблон с ! в начале — исключение: ['*token*', '!*_ttl'] заденет токены, но не тайминги. Условие задаётся в файле профиля; форма правил в manager его не редактирует, но при правке правила сохраняет.
  • Dry-run отличает условные колонки от безусловных: в отчёте они выведены отдельным списком conditional_columns, чтобы «здесь сотрут всё» не путалось с «сотрут у части строк».

mxBackup 1.5.1-rc (2026-08-10)

  • В форме профиля появился собственный каталог архивов. Пустое поле наследует общий mxbackup.storage_path; разные профили теперь можно направить в разные локальные каталоги без ручной правки PHP-конфигурации.

mxBackup 1.5.0-rc (2026-08-10)

  • tar.gz теперь собирается потоково за один проход без промежуточного несжатого TAR. На контрольном наборе 6652 файла / 208 МБ упаковались за 1,2 секунды вместо прежних 30+ минут.
  • Перед запуском из manager пакет показывает количество и суммарный размер файлов, свободное место и предупреждает, если большую копию надёжнее запустить через CLI.
  • Выполняющийся backup можно безопасно остановить из manager или командой mxbackup.php cancel. Отмена проверяется при обходе файлов, дампе БД, упаковке, подсчёте checksum и выгрузке в S3; временные файлы удаляются, запуск получает статус «Остановлен».
  • Добавлена CLI-команда estimate для предварительной оценки состава и свободного места без создания архива.

mxBackup 1.4.1-rc (2026-08-09)

  • Исправлено описание в составе пакета: в разделе ограничений значилось «Нет S3», хотя выгрузка в S3 появилась ещё в 1.4.0-rc. Заголовок «Ограничения первой версии» тоже устарел.

mxBackup 1.4.0-rc (2026-08-07)

  • Архив можно выгружать в S3 или совместимое хранилище (MinIO, Selectel, Yandex Object Storage). Копия, лежащая на той же машине, что и сайт, защищает от испорченной базы и неудачного обновления, но не от потери самой машины.
  • Хранилище задаётся профилем, а не общей настройкой: боевая копия уезжает с сервера, а обезличенная копия для разработки остаётся под рукой — платить за её хранение и трафик незачем.
  • Ключи доступа необязательны. Если поля пустые, пакет берёт доступ из переменных окружения или из роли машины в облаке — тогда на сервере не хранится ни одного ключа.
  • Неудачная выгрузка не считается провалом копирования: архив создан и лежит на диске, в отчёте появляется предупреждение. Локальные копии в этом случае не удаляются.
  • После успешной выгрузки на диске остаётся столько копий, сколько указано в профиле (минимум одна): остальные уже в облаке.
  • Своя глубина хранения в облаке. По умолчанию пакет там ничего не удаляет — если у хранилища есть собственное правило истечения, две несогласованные ротации хуже одной.
  • Восстановление умеет забирать архив прямо из хранилища: mxbackup.php restore --from-remote=ИМЯ_АРХИВА.
  • Новые команды: remote-list (что лежит в хранилище) и remote-check (доступ на чтение, а с ключом --write — и на запись).
  • Проверка конфигурации в интерфейсе и в консоли теперь охватывает и настройки хранилища: ошибка видна до копирования, а не после получаса упаковки.

mxBackup 1.3.0-rc (2026-08-06)

  • В интерфейс добавлена кнопка «Проверить конфигурацию»: та же проверка, что и команда validate-config в консоли. Раньше проверка существовала только в CLI.
  • Пункт меню компонента больше не задаёт собственное право доступа: MODX и так проверяет права при открытии страницы, а лишняя проверка мешала пункту отображаться.
  • Кнопки запуска больше не расползаются по ширине панели: раскладка панели переведена на штатный тулбар менеджера.

mxBackup 1.2.2-rc (2026-08-06)

  • Артефакты запуска, убитого извне (обрыв SSH, лимит хостера, нехватка памяти), больше не остаются в каталоге архивов. Раньше там навсегда оставались недоделанный архив и рабочий каталог с незашифрованным дампом базы: аварийное завершение минует штатную уборку. Теперь следующий запуск удаляет такие остатки и сообщает об этом в отчёте.

mxBackup 1.2.1-rc (2026-08-06)

  • Правило хранения по возрасту больше не удаляет свежие архивы: количество из mxbackup.retention_count теперь несносимый минимум. Раньше остановившийся cron через mxbackup.retention_days мог оставить сайт вовсе без резервных копий.
  • Кнопка «Сохранить» на вкладке «Настройки» больше не уходит за границу панели при изменении ширины окна или сворачивании дерева.
  • Восстановлена иконка кнопки «Обновить» в истории запусков.
  • Режимы профиля в русском интерфейсе подписаны по-русски: «Боевой», «Обезличенный», «Пользовательский»; служебные значения prod, dev и custom не изменились.
  • Удалены неиспользуемые ключи лексикона, оставшиеся от первой версии интерфейса.
  • В readme пакета исправлено устаревшее описание хранения профилей: они лежат в PHP-файлах каталога mxbackup.config_dir, а не в таблицах.

mxBackup 1.2.0-rc (2026-08-05)

  • Добавлено восстановление файлов и базы данных из ZIP, tar.gz и AES-256 ZIP через CLI и историю CMP.
  • Preflight проверяет формат, manifest, checksum архива/SQL, пути элементов и совместимость основной версии MODX.
  • Перед изменениями автоматически создаётся страховочный production-backup текущего сайта.
  • Файлы восстанавливаются атомарно в merge-режиме; SQL importer принимает только выражения, создаваемые mxBackup.
  • Добавлено отдельное право mxbackup_restore и подтверждение восстановления кодом из checksum архива.

mxBackup 1.1.0-beta (2026-08-05)

  • Добавлено AES-256 шифрование содержимого ZIP-архивов с fail-closed проверкой результата.
  • Пароль шифрования настраивается отдельно для каждого профиля и не возвращается в CMP, отчёты или manifest.
  • mxLogger используется как основной журнал запусков и ошибок; при его отсутствии или сбое пакет пишет в стандартный журнал MODX.
  • Профили и пользовательские правила перенесены из БД в переносимые PHP-файлы.
  • CMP профилей, таблиц и обезличивания переработан без редактирования сырого JSON.

mxBackup 1.0.0-beta (2026-08-05)

  • Первый публичный выпуск для MODX Revolution 2.
  • Production- и обезличенные development-бэкапы файлов и MySQL.
  • CLI, manager UI, профили, правила, история, retention и email-отчёты.

Последние обсуждения в сообществе MODX.pro