From 69d3d0dd3f8065280fd8804c386ca52c09546135 Mon Sep 17 00:00:00 2001 From: vitya Date: Thu, 30 Jul 2026 19:00:52 +0300 Subject: [PATCH] =?UTF-8?q?feat(tandemmebel):=20v3=20cutover=20LIVE=20?= =?UTF-8?q?=E2=80=94=20snolla=200.42.1=E2=86=920.43.2=20(aws-sdk=20v2?= =?UTF-8?q?=E2=86=92v3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 6-й сайт тиража v3 (после on-snolla, kupimknigi, labtools.ru, labtools.pro, emspb). 6/6 v3 сайтов GREEN — тираж v3 ЗАВЕРШЁН. - Bump: @snollajs/snolla 0.42.1→0.43.2 (apps/web) + resolutions verbatim labtools.ru (@aws-sdk/client-s3 3.1005.0 + @smithy chain 5.3.11 — optional determinism) + реген yarn.lock (single @smithy/signature-v4@5.3.11 deduped). Commit 9d51c09 в victor/tandemmebel.ru. Заодно нёс на live s3.endpoint fix f4ddce6 (→ minio.vds.kzntsv.site), был в master с 2026-07-29. - Build на VDS: registry.kzntsv.site/tandemmebel:9d51c09, digest d14982c24dc7, 476MB (v2 583MB), EXIT=0. - Staging :5020 parity-gate GREEN: robots md5 identical, sitemap 184=184 locs IDENTICAL, self-consistency 183×200 + 1×404 (/articles parity), Gotham-Pro.css 200 4436B (v3 S3-direct). - Portainer PUT stack 20 (node in-memory, кириллица compose), env 8/8, pullImage:true, mem_limit 512m. PUT 200. - Live smoke GREEN: / 200 45742B, /projects 200, sitemap 184, theme 200 4436B. TLS CN не тронут (LE Oct 10). - Rollback = 8df10ee (v2, жив в registry). Co-Authored-By: Claude --- .wiki/concepts/minio-split-cutover-runbook.md | 2 +- .../tandemmebel-vds-deploy-runbook.md | 25 +++++++++++++++---- .../vds-kzntsv/tandemmebel.compose.yml | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/.wiki/concepts/minio-split-cutover-runbook.md b/.wiki/concepts/minio-split-cutover-runbook.md index 3ce2c33..692c190 100644 --- a/.wiki/concepts/minio-split-cutover-runbook.md +++ b/.wiki/concepts/minio-split-cutover-runbook.md @@ -36,7 +36,7 @@ updated: 2026-07-30 | **B3v3 labtools.ru** | ✅ LIVE 2026-07-30 | bump `@snollajs/snolla 0.42.1→0.43.2` + resolutions (commit `0dc0b4e`, apps/web + root). Endpoint fix `4f3314f` в master, но в бегущем образе `566d41c` (v2) его не было — v3 cutover заодно перевёл S3-direct read на vds minio. Build на VDS (archive → `~/build/labtools`) → `registry.kzntsv.site/labtools:0dc0b4e`(+latest). Throwaway staging :5080 parity-gate GREEN: `/` byte-identical (18594B), theme `lato.css` 200 9239B byte-identical (v3 S3-direct), sitemap 38 locs == live (0 diff, 0 bad), section order-parity byte-identical. Portainer PUT stack 17 env-preserving (8/8, node in-memory), `prune:false pullImage:true mem_limit 512m`. Live smoke GREEN: menu pages 200, theme 200 9239B, TLS CN не тронут (LE до Sep 30). **Rollback = `566d41c`** (v2, жив). См. [[labtools-vds-deploy-runbook]] §0.43.2. | | **B3v3 labtools.pro** | ✅ LIVE 2026-07-30 | bump `@snollajs/snolla 0.42.1→0.43.2` + resolutions (commits `12f8992` bump + `a106622` yarn.lock реген — обязателен, иначе `yarn install --immutable` падает YN0028). Endpoint fix `6c7ea88` в master, но в бегущем образе `0610432` (v2) его не было. Build на VDS (archive → `~/build/labtools-pro`) → `registry.kzntsv.site/labtools-pro:a106622`(+latest), digest `2152642c4b17`. Throwaway staging :5081 parity-gate GREEN: `/`+nav+catalog 4-байт diff = `og:url`/`og:image` request-host (benign), redirects IDENT, robots/sitemap IDENT (7 детей == live), theme `lato.css` 200 9994B md5-identical (v3 S3-direct), order-parity press-forms 12 изделий. Portainer PUT stack 19 env-preserving (8/8, node in-memory put-stack), `prune:false pullImage:true mem_limit 512m`. Live smoke GREEN: nav+каталог+продукты 200, theme 200 9994B, TLS CN=labtools.pro не тронут (LE до Sep 30). **Rollback = `0610432`** (v2, жив). См. [[labtools.pro-vds-deploy-runbook]] §0.43.2. | | **B3v3 emspb.ru** | ✅ LIVE 2026-07-30 | bump `@snollajs/snolla 0.42.1→0.43.2` + resolutions (commit `5afd8a1`, apps/web + root). Endpoint fix `218c3ae` в master, но в бегущем образе `95a5c42` (v2) его не было — v3 cutover заодно перевёл S3-direct read на vds minio. Build на VDS (archive → `~/build/emspb`) → `registry.kzntsv.site/emspb:5afd8a1`(+latest), digest `72bb59fc…`. Throwaway staging :5082 parity-gate GREEN: robots md5 identical (31B), sitemap 29 locs == live, 29/29 routes 200 (+2B host-context benign), theme assets 7/7 md5 IDENTICAL (v3 S3-direct: snolla-framework/bootstrap/toolbox/theme/slick + images/2.jpg + /images/3.jpg 115618B). Portainer PUT stack 18 env-preserving (8/8, node in-memory put-stack), `prune:false pullImage:true mem_limit 512m`. Live smoke GREEN: nav 200, /services+/index.php 404, theme assets md5 LIVE==staging, redirects 301 byte-identical post-cutover, apex 200. TLS не тронут. **Rollback = `95a5c42`** (v2, жив). См. [[emspb-vds-deploy-runbook]] §0.43.2. | -| B3 ostatся 1 сайт (tandemmebel) | ⏳ TODO | тот же паттерн (bump @snollajs/snolla→0.43.2 + **resolutions** + **реген yarn.lock** + rebuild). tandemmebel BLOCKED (визуальный дефект sharp-staging) — проверить перед бампом | +| **B3v3 tandemmebel.ru** | ✅ LIVE 2026-07-30 | bump `@snollajs/snolla 0.42.1→0.43.2` + resolutions (commit `9d51c09`, apps/web + root) + реген `yarn.lock` (single `@smithy/signature-v4@5.3.11`). Endpoint fix `f4ddce6` в master, но в бегущем образе `8df10ee` (v2) его не было — v3 cutover заодно перевёл S3-direct read на vds minio. Build на VDS (archive → `~/build/tandemmebel`) → `registry.kzntsv.site/tandemmebel:9d51c09`(+latest), digest `d14982c24dc7…`, 476MB (v2 8df10ee 583MB — v3 leaner). Throwaway staging :5020 parity-gate GREEN: robots md5 `a01e4c60…` identical (87B), sitemap 5 sub-sitemaps → **184 locs == live 184 IDENTICAL** (0 prod-only/new-only), self-consistency 183×200 + 1×404 (`/articles` parity benign), `/` +557B host-context benign, theme `Gotham-Pro.css` 200 4436B (v3 S3-direct). Portainer PUT stack 20 env-preserving (8/8, node in-memory put-stack — кириллица compose), `prune:false pullImage:true mem_limit 512m`. Live smoke GREEN: `/` 200 45742B, `/projects` 200, sitemap 184 locs, robots md5 identical, theme 200 4436B. TLS CN=tandemmebel.ru не тронут (LE до Oct 10). **Rollback = `8df10ee`** (v2, жив). См. [[tandemmebel-vds-deploy-runbook]] §0.43.2. **6/6 v3 сайтов GREEN — тираж v3 ЗАВЕРШЁН.** | | Track A (books-vds minio 2020→2025) | ⏳ TODO | transparent, отдельно от Track B | | B4 .NET catch-all админ s3 endpoint | ⏳ TODO | `C:\sites\snolla\Web.config` serviceURL → minio.vds.kzntsv.site | | B5 Obsidian Remotely Save endpoint | ⏳ TODO | после B1 миррора obsidian (готово) — менять endpoint | diff --git a/.wiki/concepts/tandemmebel-vds-deploy-runbook.md b/.wiki/concepts/tandemmebel-vds-deploy-runbook.md index 0d1182a..6ee759b 100644 --- a/.wiki/concepts/tandemmebel-vds-deploy-runbook.md +++ b/.wiki/concepts/tandemmebel-vds-deploy-runbook.md @@ -1,9 +1,9 @@ --- -title: tandemmebel.ru snolla-app — VDS deploy runbook (cutover + in-place 0.42.1 bump) +title: tandemmebel.ru snolla-app — VDS deploy runbook (cutover + 0.42.1 bumps + 0.43.2 v3 cutover) type: concept -tags: [tandemmebel, snolla, vds, deploy, docker, portainer, traefik, runbook, migration, blog-portfolio] -related: [[../entities/vds-kzntsv]], [[../entities/ruvds-iis-host]], [[portainer-stack-management-vds]], [[minio-imgproxy-on-vds]], [[snolla-live-prod-inplace-image-bump]], [[labtools-vds-deploy-runbook]], [[labtools.pro-vds-deploy-runbook]], [[emspb-vds-deploy-runbook]] -updated: 2026-07-12 +tags: [tandemmebel, snolla, vds, deploy, docker, portainer, traefik, runbook, migration, blog-portfolio, v3, aws-sdk] +related: [[../entities/vds-kzntsv]], [[../entities/ruvds-iis-host]], [[portainer-stack-management-vds]], [[minio-imgproxy-on-vds]], [[snolla-live-prod-inplace-image-bump]], [[labtools-vds-deploy-runbook]], [[labtools.pro-vds-deploy-runbook]], [[emspb-vds-deploy-runbook]], [[minio-split-cutover-runbook]] +updated: 2026-07-30 --- # tandemmebel.ru → VDS deploy runbook @@ -143,4 +143,19 @@ Portainer file под git-source. ## Тираж snolla 0.42.1 — статус Все 5 snolla-сайтов на VDS: - labtools.ru (17), emspb.ru (18), labtools.pro (19) — 0.42.1 in-place bump 2026-07-05. -- kupimknigi (21), **tandemmebel (20)** — 0.42.0 cutover, tandemmebel in-place bump до 0.42.1 2026-07-12. (kupimknigi остался на 0.42.0 по решению оператора — см. `NEXT_SESSION.md`.) \ No newline at end of file +- kupimknigi (21), **tandemmebel (20)** — 0.42.0 cutover, tandemmebel in-place bump до 0.42.1 2026-07-12. (kupimknigi остался на 0.42.0 по решению оператора — см. `NEXT_SESSION.md`.) + +## 0.43.2 v3 cutover (aws-sdk v2→v3) — ✅ ВЫПОЛНЕН 2026-07-30 +6-й сайт тиража v3 (после on-snolla, kupimknigi, labtools.ru, labtools.pro, emspb — 5 GREEN). In-place bump стека 20 (DNS на VDS с 2026-07-12, не трогали). Рецепт — [[minio-split-cutover-runbook]] §B3-v3. **6/6 v3 сайтов GREEN = тираж завершён.** +- **Bump:** `@snollajs/snolla 0.42.1→0.43.2` в `apps/web/package.json` (commit `9d51c09`) + `resolutions`-блок в root `package.json` (verbatim labtools.ru: `@aws-sdk/client-s3 3.1005.0` + `@smithy` chain 5.3.11 — optional determinism, live verify доказал 5.6.12 работает vs vds MinIO 2025) + реген `yarn.lock` (single `@smithy/signature-v4@5.3.11` deduped, no dual-instance). Pushed victor/tandemmebel.ru master `f4ddce6..9d51c09`. Endpoint fix `f4ddce6` (s3.endpoint→minio.vds.kzntsv.site) был в master с 2026-07-29, но в бегущем образе `8df10ee` (v2) его не было — v3 cutover заодно перевёл S3-direct read на vds minio. +- **Build на VDS:** `git archive 9d51c09` → `~/build/tandemmebel` → `docker build -f deploy/Dockerfile --build-arg VERDACCIO_TOKEN` → `registry.kzntsv.site/tandemmebel:9d51c09`(+latest), digest `sha256:d14982c24dc7c61a334c8973e6f1c48147c7d3cbcc772b28af6c629431947b16`, 476MB (v2 8df10ee был 583MB — v3 leaner), EXIT=0. `yarn install --immutable` в Docker прошёл (yarn.lock matches). +- **Staging :5020 parity-gate GREEN** (throwaway контейнер из env живого стека 20, 8 секретов, `--network proxy`): + - robots.txt md5 `a01e4c60…` byte-identical (87 B). + - sitemap index→5 sub-sitemaps → **184 locs == live 184 IDENTICAL** (0 prod-only / 0 new-only — regression нет). + - **self-consistency 183×200 + 1×404** (`/articles` — prod=404 parity benign, не регрессия). 0×301/5xx. + - `/` 200 staging 45738B vs prod 45181B (+557B = og:url/og:image request-host context — benign, byte-identical post-cutover). + - theme `Gotham-Pro.css` 200 4436B (v3 aws-sdk v3 S3-direct read из vds MinIO 2025 — латентный прод-баг 0B→4436B починен ещё cutover'ом 2026-07-12, сохранён). +- **Portainer PUT stack 20 LIVE:** node in-memory `put-stack` (НЕ PS — кириллица compose; Node 22 global fetch, GET `/stacks/20` для Env + `/stacks/20/file` для StackFileContent), env 8/8 preserved, `prune:false pullImage:true mem_limit 512m`. PUT 200. Контейнер `9d51c09` healthy ~9s. +- **Live smoke GREEN (via traefik):** `/` 200 45742B, `/projects` 200 90758B, `/sitemap.xml` 200 (184 locs == parity), robots md5 `a01e4c60…`, `/articles` 404 parity, theme `Gotham-Pro.css` 200 4436B (v3 S3-direct). TLS CN=tandemmebel.ru, expire Oct 10 2026 (не тронут — in-place swap). Лог чист (tedious deprecation + `tandemmebel.ru (snolla) listening`). +- **Rollback:** `tandemmebel:8df10ee` (0.42.1 v2, template-only share-buttons, жив в registry) — Portainer PUT назад / compose revert. `0cd9351` (0.42.1) + `ed96b18` (0.42.0) — deeper rollback. DNS→RUVDS 80.64.31.36 — крайний. +- Compose (admin source-of-truth) синхронно закоммичен `8df10ee`→`9d51c09`. **6/6 v3 сайтов GREEN — тираж v3 завершён.** \ No newline at end of file diff --git a/host-stacks/vds-kzntsv/tandemmebel.compose.yml b/host-stacks/vds-kzntsv/tandemmebel.compose.yml index 7124338..c5f7727 100644 --- a/host-stacks/vds-kzntsv/tandemmebel.compose.yml +++ b/host-stacks/vds-kzntsv/tandemmebel.compose.yml @@ -36,7 +36,7 @@ services: tandemmebel: container_name: tandemmebel - image: registry.kzntsv.site/tandemmebel:8df10ee # git-sha victor/tandemmebel.ru master 8df10ee (snolla 0.42.1 / core 0.24.1 / liquid 0.10.2 / data 0.14.1 — template-only: remove FB/Twitter/Google+ share buttons, keep VK+OK; in-place bump 2026-07-13). rollback-теги 0cd9351 (0.42.1, {% order %} Drop-field fix) + ed96b18 (0.42.0) + b02ca18 в registry. + image: registry.kzntsv.site/tandemmebel:9d51c09 # git-sha victor/tandemmebel.ru master 9d51c09 (snolla 0.43.2 / aws-sdk v3 — v3 cutover 2026-07-30, 6-й сайт тиража; resolutions @aws-sdk/client-s3 3.1005.0 + @smithy chain 5.3.11; заодно нёс на live s3.endpoint fix f4ddce6 → minio.vds.kzntsv.site). rollback-теги 8df10ee (0.42.1 v2, template-only share-buttons) + 0cd9351 (0.42.1) + ed96b18 (0.42.0) в registry. restart: unless-stopped mem_limit: 512m # guardrail от runaway: snolla baseline ~100-200M; OOM в контейнере → restart:unless-stopped поднимет. standalone-compose → mem_limit (НЕ deploy.resources — то swarm-only). environment: