--- _last_updated_: 2026-07-30T10:25:00Z session_id: 2026-07-30-minio-split-on-snolla-pilot prev_session_id: 2026-07-24-stostayer-markdown-render-fix --- # Next session handoff ## Эта сессия — MinIO split, Track B3 пилот on-snolla S3-direct-path. ЗАВЕРШЁН ✅ Пилот on-snolla: in-place image bump боевого стека 22 под MinIO split (CMS-медиа → vds minio). Подтвердил главный риск runbook'а — aws-sdk v2 vs MinIO 2025 — **работает без @smithy pin**. ### Что сделано - **Build на VDS** образа `registry.kzntsv.site/on-snolla:07db7e3` (digest 9d757d97) из `victor/on.snolla.com@07db7e3` (config endpoint `minio.kzntsv.site → minio.vds.kzntsv.site`, snolla 0.42.1 v2, **без бампа package.json** — user-решение: сплит без snolla version bump). Push в registry OK (build-warning VERDACCIO_TOKEN в ARG — известный follow-up, не блокер). - **Throwaway-staging :5077** из env живого контейнера (8 секретов). robots/home/sitemap 200. - **S3-direct gate (главный):** theme asset `/themes/c406…/bootstrap.min.css` на staging → **200, 97324 B == live-public** (aws-sdk v2 → vds minio 2025 — compat подтверждена, нет SignatureDoesNotMatch/403). - **Sitemap parity** staging==live 3/3 IDENTICAL (`/`, `/c`, `/yandex_…`); `/c`→404 parity с продом. - **Portainer PUT стека 22** env-preserving (8/8), `prune:false, pullImage:true` → 200. Node-скрипт in-memory (GET+PUT, без temp-файлов — curl `/tmp/` vs node `/tmp/` расходятся на Windows). Container 07db7e3 healthy, mem_limit 512m preserved. - **Live-smoke** `https://on.snolla.com`: theme asset 200 97324 B, `/`,`/robots`,`/sitemap`,`/yandex` 200, `/c` 404 parity. TLS cert не тронут (LE YR1, CN=on.snolla.com, до Oct 18). Логи: `Server Listening`, aws-sdk v2 EOL warning (ожидаемо), нет крашей. - **Закрытие:** compose source-of-truth `host-stacks/vds-kzntsv/on-snolla.compose.yml` обновлён (тег 07db7e3 + endpoint + rollback-коммент); `scripts/minio-split-cutover/runbook.md` (новый) — Track B progress-таблица; commit `443713e8`. - **Memory:** NEW `aws-sdk-v2-minio-2025-works-no-smithy-pin.md` — @smithy SigV4 regression = v3-only, v2 идёт без пина. ### План отката PUT стека 22 назад на тег `473923e494db` (rollback-тег в registry, pred endpoint `minio.kzntsv.site`/books-vds, миррор там жив). RUVDS DECOMM 2026-07-21 — rollback только образ-тегом. ## Recent commits (этот репо, .admin) - `443713e8` feat(on-snolla): MinIO split S3-direct-path cutover — stack 22 bump 473923e494db->07db7e3 - `71dee93e` @wiki: alias pilonuxt -> pilorama98.ru in prose - `5a93ac78` wiki(snolla): ingest local admin HTTPS binding ## Open треки | Трек | Готовность | Entry-point | |---|---|---| | **MinIO split B3 — остальные 5 сайтов** | ⏳ TODO — пилот on-snolla GREEN, паттерн отработан | `scripts/minio-split-cutover/runbook.md` §B3 + progress-таблица | | MinIO split Track A (books-vds minio 2020→2025) | ⏳ TODO — transparent, отдельно | runbook.md §Track A | | MinIO split B4 .NET catch-all админ s3 endpoint | ⏳ TODO — `C:\sites\snolla\Web.config` serviceURL → minio.vds.kzntsv.site | runbook.md §B4 | | MinIO split B5 Obsidian Remotely Save endpoint | ⏳ TODO — obsidian бакет смиррорен (B1), можно менять endpoint | runbook.md §B5; memory `obsidian-remotely-save-endpoint-after-mirror` | | books-task-runner-registry-auth-cred | 🔵 blocked — cred в config-volume, но рабочий образ содержит СТАРЫЙ registryGc; тега master-a3734d5 в реестре нет | `.tasks/STATUS.md` §books-task-runner | ## Спроси user'а - Какой следующий сайт из 5 бампить (kupimknigi/labtools/labtools.pro/emspb/tandemmebel)? Все 5 уже live на VDS — кандидаты на тот же config-endpoint bump. - snolla-евый v3-трек (0.43.1/0.7.8/0.17.2 для stostayer) — HOLD, отдельная история; НЕ подхватывать без GO user (snolla ждёт). ## Не делать (preemptive guards) - **НЕ бампить snolla-пакеты** на 6 CMS-сайтах — user решил сплит через config-endpoint только, сайты на 0.42.1 v2. snolla v3-трек — HOLD (stostayer-scope). - **НЕ пушить образы в `docker.stostayer.ru:443`** с нашего VPN-egress — бан-гочи (см. [[stostayer-push-ban-single-large-push]]). Registry = `registry.kzntsv.site` (vds), build на VDS — ок. - **НЕ лезть в прод-БД** stostayer (MSSQL/MariaDB) — vitya остановил. Диагностика через логи контейнера + исходники. - **Portainer PUT: НЕ через PS Invoke-RestMethod** (корраптит кириллицу в compose). Node-скрипт in-memory (GET+PUT), НЕ встраивать JSON-payload в double-quoted `bash -c`. API-key работает для stack PUT (200) — JWT не нужен (JWT только для stack CREATE). - **curl `/tmp/` vs node `/tmp/` расходятся на Windows** (MSYS vs Win-путь) — НЕ писать temp-файлы через curl `-o /tmp/` и читать из node. In-memory в одном node-скрипте. - **После stack GET** (возвращает env-values с секретами) — вычищать temp-файлы. In-memory скрипт = нет утечки. ## Memory updates за сессию - NEW `aws-sdk-v2-minio-2025-works-no-smithy-pin.md` — v2 vs MinIO 2025 работает без пина; @smithy regression v3-only; 5 сайтов = config-endpoint bump. - MEMORY.md index обновлён.