Files
admin/.tasks/kupimknigi-deploy-snolla-0-42-0.md
vitya 84f4852f7f deploy(kupimknigi): staging стек 21 (новый) → 9608ff6 (snolla 0.42.0) — smoke GREEN, паритет prod
[kupimknigi-deploy-snolla-0-42-0] 🟢 done. Собран на VDS, Portainer-стек 21 создан
(env verbatim из стека 20), контейнер healthy. Staging-smoke с VDS: / 200==prod,
H1 идентичен, тема-ассеты 200, форма+canonical паритет. Cutover=operator-gated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 10:31:33 +03:00

5.0 KiB
Raw Blame History

kupimknigi-deploy-snolla-0-42-0

Goal

Собрать VDS-staging образ kupimknigi.spb.ru на @snollajs/snolla@0.42.0 из victor/kupimknigi.spb.ru (apps/web, HEAD 9608ff6) и передеплоить/создать стек. Простой одностраничник — код закрыт (re-review PASS, docker-валидация GREEN локально, секреты не в git/образ). Финал тиража snolla.

Site (факты, резолвнуты из БД прогом)

  • siteId E924A354-0377-4E1E-80C6-2EB0194AA55F · theme EF2C663C-8960-4D3B-83AA-5C683D47D6C0 («bootstrap», store-путь ef2c663c89604d3b83aa5c683d47d6c0)
  • бой https://kupimknigi.spb.ruБЕЗ www (www мёртв, оператор подтвердил). Production=false в БД.
  • Структура: Pages=1 (/, content_page), Forms=1 (/callback-order POST). Каталога/стора/блога/фида/редиректов нет.

Key files

  • ~/projects/kupimknigi.spb.ru/apps/web/package.json — пин @snollajs/snolla@0.42.0
  • ~/projects/kupimknigi.spb.ru/deploy/Dockerfile — multi-stage node:22-slim non-root, build-arg VERDACCIO_TOKEN, секреты не бейкаются
  • config: default.json gitignored; на VDS передаётся через env (custom-environment-variables.json маппинг) — БД mssql.kzntsv.site/MoreThenCms, S3/MinIO, imgproxy

Acceptance (право-масштабировано под одностраничник — НЕ tandemmebel)

  • build sha 9608ff6 на VDS → образ в registry.kzntsv.site → стек Portainer (env verbatim, healthy MSSQL+S3).
  • Staging-smoke с VDS: / → 200, рендер == бой kupimknigi.spb.ru (H1 «Скупка старых книг в Санкт-Петербурге»), тема-ассеты 200 из MinIO, форма /callback-order POST жива, seoCanonical (/callback-order/→301). Completeness тривиален (1 URL).
  • rollback наготове.

Cutover — operator-gated (как весь тираж)

Live DNS flip НЕ трогать без отмашки оператора. ⚠️ kupimknigi DNS сейчас на RUVDS IIS 80.64.31.36 (майская iis-migration) — cutover-таргет/порядок разрешить с оператором отдельно, RUVDS=rollback. Этот таск = staging-образ + гейты, не флип.

Meta

  • Weight: needs-claude (staging-сборка; cutover=operator-gated отдельный шаг)
  • Notify: OpeItcLoc03/workshop (оркестратор — «его сайт = workshop»)
  • Deploy-source dev: victor/kupimknigi.spb.ru.

Status: done — 2026-07-05 (admin). GREEN. Where I stopped: закрыто, все гейты зелёные. Next action: — Cutover=operator-gated отдельный шаг.

Completed steps (2026-07-05, admin)

  • Пин верифицирован: sha 9608ff6 резолвит snolla 0.42.0 (package.json + yarn.lock), Dockerfile OK, порт 5000, healthcheck=robots.txt. production.json запечён (siteId E924A354/siteUrl kupimknigi.spb.ru/DB/imgproxy/minio). Консюмер-пин на месте (не было tandemmebel-блокера).
  • snolla 0.42.0 в verdaccio подтверждён (ранее в сессии).
  • Build на VDS registry.kzntsv.site/kupimknigi:9608ff6 (digest ac7f846, 583MB, BUILD_EXIT=0), push OK.
  • Создал НОВЫЙ Portainer-стек Id 21 kupimknigi (POST create/standalone/string, endpointId=1, env verbatim 8/8 из стека 20 — тот же snolla-тенант). Контейнер healthy сразу, running==9608ff6.
  • Staging-smoke с VDS GREEN: /→200==prod; H1 «Скупка старых книг в Санкт-Петербурге…» идентичен prod; robots.txt 200; тема-ассет toolbox.css→200 (MinIO); форма action="/callback-order" в HTML; callback-роуты паритет prod (/callback-order/→301, /callback-order→404 POST-only); байты 17717≈17672.
  • compose source-of-truth: host-stacks/vds-kzntsv/kupimknigi.compose.yml (staging-host, боевой Host только в cutover-комменте).
  • Таска 🟢 done, notify workshop.

Decisions log

  • 2026-07-05: CLOSED 🟢. Тривиальный одностраничник, деплой чистый, без блокеров. Форму не сабмитил (POST=реальное письмо клиенту) — роут зарегистрирован==prod + отрендерен, достаточно для staging. Cutover остаётся operator-gated (kupimknigi DNS на RUVDS IIS, майская миграция — таргет/порядок с оператором). Follow-up (общий тиражу): Dockerfile печёт VERDACCIO_TOKEN в ARG/ENV → build-secret (парный фикс с dev, отложен).