--- _last_updated_: 2026-05-25T09:42:00+03:00 session_id: 2026-05-25-books-vds-backup-standup --- # Next session handoff ## Recent commits - `tasks: add ⚪ books-vds-stacks-to-portainer` (`439da3ce`) — follow-up taskcreated - `backup(books-vds): daily 06:00 MSK pipeline to kreknin live 🟢` (`fe41ee44`) — 10 files, 694 insertions - `tasks: add stateful-split-volume-copy (moved from victor/books)` (`1eefb4d4`) - `meta(tasks): update [books-vds-bookva-bootstrap]` (`2931a432`) - `tasks(unify-backup-notifications): close 🟢` (`838f51da`) ## Open треки | Трек | Готовность | Entry-point | |---|---|---| | `books-vds-stacks-to-portainer` ⚪ | ready, не начат — promised by user после backup 🟢 | `.tasks/books-vds-stacks-to-portainer.md` | | `stateful-split-volume-copy` ⚪ | not started; playbook fits real books VDS (89.253.255.133) | `.tasks/stateful-split-volume-copy.md` | | `iis-migration-to-ruvds` 🟡 | soak (kupimknigi + emspb DNS flipped 2026-05-24, 22 pending) | `.tasks/iis-migration-to-ruvds.md` | | `infra-inventory` ⚪ | ready, не начат — **books VDS должен попасть в admin-detailed runbook** | `.tasks/infra-inventory.md` | | `books-bookva-user-whitelist-gathering` ⚪ | ready, long-lead gathering | `.tasks/books-bookva-user-whitelist-gathering.md` | | `books-vds-bookva-bootstrap` 🔵 | blocked on tenant-split Phase 4 | `.tasks/books-vds-bookva-bootstrap.md` | | `books-dns-cutover-bookva` 🔵 | blocked on books-vds-bookva-bootstrap | `.tasks/books-dns-cutover-bookva.md` | ## Спроси user'а - **Push** `fe41ee44` + `439da3ce` в `origin/master`? (Rule 4: каждая сессия start ask-mode). Это 2 коммита: backup pipeline standup + follow-up task. - **Какую таску брать в работу следующей** — `books-vds-stacks-to-portainer` (sequel к backup'у), `stateful-split-volume-copy` (отложили), или другое? - **Endpoint 6 в books Portainer** = stostayer VDS — мы за него отвечаем? Если да — после books-vds migration extend задачу на stostayer тоже. ## Не делать (preemptive guards) - **Не push без grant'а** (project-discipline Rule 4). Session начинает ask-mode. - **Не trust wiki blindly** — пример `books-ssh-access.md` (фикс'нут в этом раунде, теперь `vds-kzntsv-ssh-access.md`). Faktcheck через `vds-ops` MCP + SSH probe + IP до построения предположений. - **Не trigger полный backup для smoke** на books VDS — 13m+ wall-clock, 4.87 GB initial. Smoke = только notify-channel тест через standalone curl call. - **Не editit `/usr/docker//docker-compose.yml`** напрямую для production stacks — `books-vds-stacks-to-portainer` именно про правильный путь (migrate под Portainer, edit там). - **Не trigger ES recreate** в нормальное время — текущая ES сейчас «не используется» per user, но это **могло измениться**. Verify before any recreate. ## Memory updates за сессию - **Учить:** `books VDS ≠ vds-kzntsv`. Real books VDS = `89.253.255.133` (host4g.ru, CentOS 7, kernel 3.10 EOL). Documented в [[../wiki/entities/books-vds]]. - **Учить:** pass entries one-file-per-host pattern — consolidate сервис-specific creds в `/full-env` с section'ами (matches `vds-kzntsv/full-env` style). Не плодить `-/full-env`. - **Учить:** Yandex SMTP — port 465 = `smtps://` (implicit TLS), port 587 = `smtp://` + `--ssl-reqd` (STARTTLS). Mismatch = 30-sec curl timeout. - **Учить:** CentOS 7 OpenSSH 7.4 не имеет `accept-new` (added 7.6). Bootstrap step: `ssh-keyscan` host-key в `known_hosts`, потом `StrictHostKeyChecking=yes`. - **Учить:** docker-compose 1.29 + Docker 26 = `KeyError: 'ContainerConfig'` при recreate. Workaround: `docker rm -f ` + `docker-compose up -d`. Bigger fix: upgrade docker-compose to v2 plugin. - **Reference:** books VDS Portainer = `https://portainer.kzntsv.site` (НЕ `portainer.vds.kzntsv.site`). PAT в `pass show books-vds/full-env BOOKS_PORTAINER_API_KEY`. - **Verified 2026-05-25:** ntfy push `BOOKS-VDS backup OK 2026-05-25` пришёл на phone ✓. Email `[BOOKS-VDS] backup OK ...` + standalone `[BOOKS-VDS] SMTP fix verify` пришли в inbox ✓.