Shop: резервные копии
Деньги хранятся в базе Shop, а учётные записи — в базе панели, поэтому сохранять нужно две базы. Панель резервирует свою (Резервное копирование и восстановление); Shop резервирует свою в разделе Резервные копии своей админки. Эта страница описывает обе стороны: архивы Shop и что делать, когда восстанавливают панель.
Что такое резервная копия
Архив базы Shop (согласованная копия, снятая во время работы Shop) и квитанций переводов с карты на карту, зашифрованный ключом, который есть только у вас.
| Настройка | По умолчанию | Что делает |
|---|---|---|
| Раз в сколько часов | 24 | 0 выключает расписание. |
| Сколько архивов хранить на сервере | 7 | Более старые удаляются. |
| Отправлять копию за пределы сервера | вкл. | В чат резервных копий панели или через бота Shop. |
Архивы записываются в data/backups/ как shop-<date>-<time>.nxsb, и каждый можно скачать на той же странице. Сделать копию сейчас сразу снимает копию.
Копия за пределами сервера уходит в чат Telegram, выбранный для резервных копий в панели (Хранилища бэкапов), через собственного бота панели; сам Shop этот чат никогда не видит. Когда в панели это выключено, копия уходит через бота Shop каждому привязанному к нему администратору. Telegram принимает файлы до 50 МБ: архив побольше остаётся на сервере, и страница об этом сообщает. Ни панель, ни Telegram не могут прочитать архив.
На PostgreSQL база ваша, и её резервирование тоже: используйте pg_dump, как для остального на этом сервере. Тогда архивы Shop содержат только квитанции и сообщают об этом.
Ключ
Показать ключ показывает ключ, который открывает каждый архив (nxsb-…). Архив открывается им и ничем другим. Ключ не меняется, поэтому архив, сделанный с ним, открывается им всегда.
Храните ключ не на этом сервере
Скопируйте ключ в надёжное место подальше от сервера Shop. Потерянный сервер забирает с собой свою копию ключа, а без ключа ни один архив восстановить нельзя.
Переезд на новый сервер
Установите Shop на новый сервер как обычно (Nexora Shop), затем остановите его:
systemctl stop nexora-addon-shopилиdocker compose stop shop.Скопируйте туда архив и восстановите его с ключом:
bashnexora-shop restore -i shop-20261004-120000.nxsb -key nxsb-…С Docker сначала скопируйте архив в
data/backups/, затем:bashdocker compose run --rm shop restore -i /data/backups/shop-….nxsb -key nxsb-…Снова запустите Shop.
Прежде чем что-либо трогать, восстановление проверяет ключ и то, что база внутри принадлежит Shop. Заменённое оно сохраняет как shop.db.before-restore и receipts.before-restore. Неверный ключ или повреждённый архив ничего не меняют.
Регистрации в панели в архиве нет. Если новый сервер сохраняет старый адрес, скопируйте вместе с архивом data/nexora-credentials.json. Иначе удалите Shop на странице Дополнения панели и зарегистрируйте его снова (Каталог дополнений).
nexora-shop backup снимает архив вручную, с тем же ключом.
После восстановления панели
Когда панель восстанавливают из резервной копии, её учётные записи возвращаются к тогдашнему состоянию, и проданного Shop с тех пор там может не оказаться. Панель сообщает об этом Shop, и Shop сверяет с панелью каждую проданную им учётную запись.
Учётная запись, которой в панели больше нет или чья дата или трафик меньше того, что оставил последний заказ Shop, попадает в Резервные копии → После восстановления панели вместе с оплатившим её заказом. Обзор показывает, сколько таких записей открыто.
- Откройте каждую запись.
- Разберитесь с ней вручную: продлите учётную запись в панели или верните деньги за заказ.
- Отметьте её Разобрано.
Проверить сейчас запускает ту же проверку в любой момент. В том же списке показывается и возврат, который шлюз сделал после отказа, чтобы вы с ним разобрались (Shop: платежи).
