feat(books-backup): bookva-es snapshot via Portainer path.repo

bookva-es (отдельный ES 7.10, Portainer stack 37) не снапшотился — path.repo
не сконфигурирован. Пересоздан через Portainer API (PUT /api/stacks/37) с
path.repo=/snapshots + bind /usr/docker/bookva-es/snapshots (uid 1000:0);
внешний том bookva-es-data сохранён (epz/products целы). Repo kreknin
зарегистрирован.

Добавлен Step 2b (bookva-es snapshot + prune) в run.sh.

Gotcha пойман на проверке приёмника ДО коммита: оба ES-каталога называются
`snapshots` → как отдельные rsync-источники сливаются в один dest/snapshots/
и портят оба репо (видно по двойному index-N). Fix: источник bookva-es =
родительский /usr/docker/bookva-es (basename bookva-es → dest/bookva-es/snapshots/).

Verified green: BOOKS-VDS backup OK 10m28s, на kreknin раздельно
snapshots/ (slovo, index-41, 795M) + bookva-es/snapshots/ (index-4, 801M),
по одному index-N в каждом → оба независимо рестораблельны.

Закрывает .tasks/bookva-es-snapshot-repo.md (🟢). bookva tenant полностью
покрыт (db/mongo/minio/es).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-12 11:56:19 +03:00
parent aeb82a6a70
commit e001b8e331
5 changed files with 38 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
# bookva-es-snapshot-repo — отдельный ES-снапшот для bookva tenant
**Status:** ⚪ backlog — заведена 2026-06-12 при добавлении bookva в backup.
**Priority:** низкий (данные покрыты по факту — см. ниже).
**Status:** 🟢 closed 2026-06-12 (в ту же сессию). Сделано полностью — не отложено.
**Close note:** Portainer stack 37 пересоздан (PUT API) с `path.repo=/snapshots` + bind `/usr/docker/bookva-es/snapshots` (1000:0), том bookva-es-data сохранён (epz/products целы). Repo `kreknin` зарегистрирован, snapshot-блок добавлен в `run.sh`. Поймана и устранена коллизия basename `snapshots` (rsync источник bookva-es = родительский `/usr/docker/bookva-es`). Verified green: `BOOKS-VDS backup OK 10m28s`, на kreknin раздельно `snapshots/`(slovo, index-41) и `bookva-es/snapshots/`(index-4).
## Контекст