deploy(labtools): 43e28ba LIVE on vds-kzntsv — cutover done, labtools.ru on VDS

DNS zone is on Yandex DNS (dns1/dns2.yandex.net), not reg.ru. Flip propagated
unevenly (dns2 first, dns1 lagged); cutover gate = BOTH authoritative Yandex NS
agree apex+www -> 89.253.255.94 (monitor waited for it) so LE HTTP-01 can't hit
RUVDS via a stale auth server and burn the rate-limit.

Stack 17 traefik-rule -> Host(labtools.ru)||Host(www.labtools.ru) via Portainer
PUT (env 8/8 preserved, pullImage=false). LE cert issued (~t+20s; brief self-signed
window during issuance). Live-smoke GREEN: both hosts 200 (nav+catalog+products),
redirects parity (trailing/lowercase/.php), sitemap index host=labtools.ru (this
tenant's siteUrl is non-www), theme assets byte-identical (RUVDS 301 apex->www made
the direct md5 an artifact; -L => MD5-OK). Staging host removed (->404). External:
apex->VDS 200; www still split-brain on RUVDS cache (200, identical content, TTL 6h).
RUVDS left intact as rollback.

Task closed. Whole batch done: labtools.ru + labtools.pro LIVE on VDS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-02 12:42:57 +03:00
parent ed99f2225b
commit a9f4f3a673
3 changed files with 15 additions and 12 deletions

View File

@@ -989,7 +989,7 @@ deps подняты: `@snollajs/snolla ^0.18`, `content-api ^0.13`, `content-api
---
## 🟡 [labtools-web-vds-deploy] — Деплой `labtools.ru` snolla-приложения (`victor/labtools.ru/apps/web`) в docker-контейнере на Rusonyx VDS за traefik. Приложение parity-подтверждено (ре-ревью №2 PASS: HTML+визуал byte-parity с боем `www.labtools.ru`, ассеты из MinIO, ноль локальных хаков, `@snollajs/snolla@0.28.2`).
## 🟢 [labtools-web-vds-deploy] — Деплой `labtools.ru` snolla-приложения (`victor/labtools.ru/apps/web`) в docker-контейнере на Rusonyx VDS за traefik. Приложение parity-подтверждено (ре-ревью №2 PASS: HTML+визуал byte-parity с боем `www.labtools.ru`, ассеты из MinIO, ноль локальных хаков, `@snollajs/snolla@0.28.2`).
## Кто/где собирает образ (решение workshop)
**Образ собирает АДМИН на VDS** из `Dockerfile`, который пишет имплементер. build нужен docker + доступ к verdaccio (`verdaccio.kzntsv.site`) + `VERDACCIO_TOKEN` — эта инфра у админа/на VDS; имплементер владеет корректностью Dockerfile, не реестром. Кросс-машинный трансфер образа не нужен.
@@ -1019,9 +1019,9 @@ deps подняты: `@snollajs/snolla ^0.18`, `content-api ^0.13`, `content-api
**notify:** OpeItcLoc03/workshop
Dev-source: `victor/labtools.ru/apps/web` (parity-док/буфер — в `.workshop/.brainstorm/snolla-sites-migration.md`). Blast: cutover затронет живой прод labtools.ru — staging-first, cutover gated.
**Status:** in_progress
**Where I stopped:** STAGING ЗЕЛЁНЫЙ (2026-07-01). Образ `registry.kzntsv.site/labtools:43e28ba` собран на VDS + push; Portainer stack `labtools` (Id 17) на `labtools.vds.kzntsv.site`, контейнер healthy (MSSQL+S3 подключены); 8 секрет-env в stack-env. Smoke parity vs бой GREEN: все страницы меню 200/200, редиректы `.php`/trailing-slash/lowercase 301 1:1, `theme.css` из MinIO байт-в-байт (Cache-Control 86400), `/assets/*.webp` байт-в-байт. Рунбук: `.wiki/concepts/labtools-vds-deploy-runbook.md`.
**Next action:** Cutover live DNS `labtools.ru` — GATED, ждём добро оператора (бой на RUVDS 80.64.31.36 живой, НЕ выводить). По go: добавить `Host(labtools.ru)||Host(www.labtools.ru)` в traefik-rule стека → оператор флипает A-записи reg.ru → 89.253.255.94 → LE cert → smoke на боевом хосте. labtools.pro — ОТДЕЛЬНАЯ таска (deferred, решение оператора 2026-07-01), не в scope.
**Status:** 🟢 CLOSED 2026-07-02 — cutover LIVE. `labtools.ru`+`www` на VDS (89.253.255.94), стек 17, образ `labtools:43e28ba`. Рунбук § Cutover обновлён.
**Closure:** DNS зона на **Yandex DNS** (не reg.ru). Флип шёл неравномерно — dns1/dns2 расходились; cutover-гейт = ОБА авторитетных Yandex-NS согласованно → VDS по apex+www (монитор дождался). Стек 17 traefik-rule → `Host(labtools.ru)||Host(www.labtools.ru)` (Portainer PUT, env 8/8, pullImage=false); LE-cert выпущен (~t+20s). Live-smoke GREEN: оба хоста 200 (nav+каталог-секции+продукты), редиректы (`/about/` trailing, `/Contacts` lowercase, `/index.php`→`/`) parity, sitemap index (host=labtools.ru non-www — siteUrl тенанта без www), theme-ассеты byte-identical (RUVDS 301 apex→www → прямой md5 артефакт, с -L MD5-OK). staging-host убран (→404). Внешне: apex→VDS 200; www ещё split-brain на кэше RUVDS (200, идентичный контент, тухнет по TTL 6ч). RUVDS = rollback, не тронут. Репорт workshop отправлен. **Весь тираж закрыт: labtools.ru + labtools.pro LIVE на VDS.**
**Next action:** — (закрыто). Опционально позже по решению оператора: снять RUVDS-биндинги labtools.ru/www (как для emspb) — сейчас оставлены как rollback.
**Branch:** master
**Notify:** OpeItcLoc03/workshop
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-07-01T13:02:23.634Z -->