Skip to content

Shop: резервные копии ​

Деньги хранятся в базе Shop, а учётные записи — в базе панели, поэтому сохранять нужно две базы. Панель резервирует свою (Резервное копирование и восстановление); Shop резервирует свою в разделе Резервные копии своей админки. Эта страница описывает обе стороны: архивы Shop и что делать, когда восстанавливают панель.

Что такое резервная копия ​

Архив базы Shop (согласованная копия, снятая во время работы Shop) и квитанций переводов с карты на карту, зашифрованный ключом, который есть только у вас.

НастройкаПо умолчаниюЧто делает
Раз в сколько часов240 выключает расписание.
Сколько архивов хранить на сервере7Более старые удаляются.
Отправлять копию за пределы серверавкл.В чат резервных копий панели или через бота Shop.

Архивы записываются в data/backups/ как shop-<date>-<time>.nxsb, и каждый можно скачать на той же странице. Сделать копию сейчас сразу снимает копию.

Копия за пределами сервера уходит в чат Telegram, выбранный для резервных копий в панели (Хранилища бэкапов), через собственного бота панели; сам Shop этот чат никогда не видит. Когда в панели это выключено, копия уходит через бота Shop каждому привязанному к нему администратору. Telegram принимает файлы до 50 МБ: архив побольше остаётся на сервере, и страница об этом сообщает. Ни панель, ни Telegram не могут прочитать архив.

На PostgreSQL база ваша, и её резервирование тоже: используйте pg_dump, как для остального на этом сервере. Тогда архивы Shop содержат только квитанции и сообщают об этом.

Ключ ​

Показать ключ показывает ключ, который открывает каждый архив (nxsb-…). Архив открывается им и ничем другим. Ключ не меняется, поэтому архив, сделанный с ним, открывается им всегда.

Храните ключ не на этом сервере

Скопируйте ключ в надёжное место подальше от сервера Shop. Потерянный сервер забирает с собой свою копию ключа, а без ключа ни один архив восстановить нельзя.

Переезд на новый сервер ​

  1. Установите Shop на новый сервер как обычно (Nexora Shop), затем остановите его: systemctl stop nexora-addon-shop или docker compose stop shop.

  2. Скопируйте туда архив и восстановите его с ключом:

    bash
    nexora-shop restore -i shop-20261004-120000.nxsb -key nxsb-…

    С Docker сначала скопируйте архив в data/backups/, затем:

    bash
    docker compose run --rm shop restore -i /data/backups/shop-….nxsb -key nxsb-…
  3. Снова запустите Shop.

Прежде чем что-либо трогать, восстановление проверяет ключ и то, что база внутри принадлежит Shop. Заменённое оно сохраняет как shop.db.before-restore и receipts.before-restore. Неверный ключ или повреждённый архив ничего не меняют.

Регистрации в панели в архиве нет. Если новый сервер сохраняет старый адрес, скопируйте вместе с архивом data/nexora-credentials.json. Иначе удалите Shop на странице Дополнения панели и зарегистрируйте его снова (Каталог дополнений).

nexora-shop backup снимает архив вручную, с тем же ключом.

После восстановления панели ​

Когда панель восстанавливают из резервной копии, её учётные записи возвращаются к тогдашнему состоянию, и проданного Shop с тех пор там может не оказаться. Панель сообщает об этом Shop, и Shop сверяет с панелью каждую проданную им учётную запись.

Учётная запись, которой в панели больше нет или чья дата или трафик меньше того, что оставил последний заказ Shop, попадает в Резервные копии → После восстановления панели вместе с оплатившим её заказом. Обзор показывает, сколько таких записей открыто.

  1. Откройте каждую запись.
  2. Разберитесь с ней вручную: продлите учётную запись в панели или верните деньги за заказ.
  3. Отметьте её Разобрано.

Проверить сейчас запускает ту же проверку в любой момент. В том же списке показывается и возврат, который шлюз сделал после отказа, чтобы вы с ним разобрались (Shop: платежи).

Текст и изображения — CC BY 4.0.