From 1725425972425238a768e61ee7cf650e51088c4b Mon Sep 17 00:00:00 2001 From: vitya Date: Sun, 14 Jun 2026 22:59:57 +0300 Subject: [PATCH] feat(deploy): pilonuxt re-smoke GREEN on pilonuxt.vds.kzntsv.site (tag 3622662) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pilonuxt пофиксил дубль Vue в prod-бандле (resolutions @vue/*), тег 3622662 (36ec970 битый). Stack 16 перекатан. Smoke: / 200 SSR, /catalog 200 с товарами из CMS, картинки imgproxy 200 webp + статика 200, внешний доступ 200 cert valid. Остаток: contacts-form email (живой, держу) + cutover www.pilorama98.ru (решение vitya). Co-Authored-By: Claude Opus 4.8 (1M context) --- .tasks/STATUS.md | 12 +++++++----- host-stacks/vds-kzntsv/pilonuxt.compose.yml | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index ef3372b..cea8659 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -490,7 +490,7 @@ vehicles-loader (stostayer) деплоится в Docker у клиента (lite --- -## 🔵 [deploy-pilonuxt-vds] — **Цель:** Собрать prod-образ нового Nuxt-фронта ПИЛОРАМА98 (`victor/pilonuxt`, master) и задеплоить на VDS как Portainer-стек за Traefik. Готово в репо: `Dockerfile` + `.dockerignore` в корне. Полный овнершип сборки и деплоя — на тебе (build → push в VDS-registry → Portainer stack), как books/stostayer. +## 🔴 [deploy-pilonuxt-vds] — **Цель:** Собрать prod-образ нового Nuxt-фронта ПИЛОРАМА98 (`victor/pilonuxt`, master) и задеплоить на VDS как Portainer-стек за Traefik. Готово в репо: `Dockerfile` + `.dockerignore` в корне. Полный овнершип сборки и деплоя — на тебе (build → push в VDS-registry → Portainer stack), как books/stostayer. **Сборка:** - `docker build --secret id=verdaccio_token,env=VERDACCIO_TOKEN -t /pilonuxt: .` @@ -531,13 +531,15 @@ vehicles-loader (stostayer) деплоится в Docker у клиента (lite **weight:** needs-human (deploy-инфра) **notify:** victor/pilonuxt -**Status:** blocked -**Where I stopped:** pilonuxt починил Dockerfile (3 фикса) и запушил `registry.kzntsv.site/pilonuxt:36ec970`. Развернул Portainer stack id=16 на `pilonuxt.vds.kzntsv.site` (pre-pull на VDS т.к. registry-auth; Portainer API через свежий JWT — сохранённый PORTAINER_API_KEY протух 401). **Инфра зелёная**: контейнер Up/Listening :3000, cert LE валиден, traefik роутит, egress mssql:1433+smtp:465 OK, SSR hairpin self-call доходит. **НО app 500 на всех роутах** (`/`,`/snolla`,`/api/snolla`): `Cannot read properties of null (reading 'ce')` — тот же, что pilonuxt видел локально (мис-атрибутировал на egress). `/api/snolla` (server-route) тоже падает → баг в data-слое snolla, не рендер. Ошибка нигде не логируется (Nitro глотает; dev-mode throwaway stack тоже не отдал). Это app/build-баг, НЕ деплой. Inbox victor/pilonuxt отправлен (19:40) с доказательствами + что попробовать (sourcemaps/логирование в snolla-fetch). -**Next action:** Ждать app-фикс от pilonuxt → новый тег → `docker pull` на VDS + Portainer stack 16 update + пере-smoke. Стек оставлен поднятым для быстрой итерации. -**Blocker:** pilonuxt дебажит SSR 500 `reading 'ce'` (data-слой snolla получает null) — source-level, их репо. +**Status:** active +**Where I stopped (2026-06-14 20:05):** RE-SMOKE ЗЕЛЁНЫЙ. pilonuxt пофиксил баг (дубль Vue в prod-бандле → `resolutions` форсят `@vue/*` в одну версию), запушил `registry.kzntsv.site/pilonuxt:3622662` (старый 36ec970 битый). Перекатил Portainer stack 16 на новый тег. Smoke: `/`→200 SSR (title рендерится), `/catalog`→200 с товарами из CMS (sequelize), картинки imgproxy→200 image/webp + статика 200 (assets-stub флаг НЕ задет — фото из bucket pilorama98), внешний доступ с дома 200 + cert LE valid. Остался 1 критерий: форма contacts→email НЕ гонял (живой email бизнесу, держу до отмашки vitya). Cutover www.pilorama98.ru — отдельный шаг, решение vitya. +**Next action:** (1) согласовать с vitya тест формы contacts (стрельнуть [SMOKE TEST] или закрыть по pilonuxt-verified); (2) по отмашке vitya — cutover www.pilorama98.ru (traefik rule → боевой Host + DNS reg.ru, снизить TTL заранее). **Branch:** n/a **Notify:** victor/pilonuxt + +**(history)** Путь: ТЗ→pull→домен(temp). Мои 2 Dockerfile-бага (npmAlwaysAuth + COPY scripts/src-generated до install) → pilonuxt пофиксил +свой (build-time VERDACCIO_TOKEN default `${VAR:-}`) → образ `36ec970` битый: дубль Vue в prod-бандле давал SSR 500 `reading 'ce'` на всех роутах; диагностировал «инфра зелёная, баг в app»; pilonuxt нашёл (Vite дедупит Vue в dev, Nitro prod нет) → `resolutions` → `3622662` зелёный. + --- diff --git a/host-stacks/vds-kzntsv/pilonuxt.compose.yml b/host-stacks/vds-kzntsv/pilonuxt.compose.yml index 5054145..4ead120 100644 --- a/host-stacks/vds-kzntsv/pilonuxt.compose.yml +++ b/host-stacks/vds-kzntsv/pilonuxt.compose.yml @@ -21,7 +21,7 @@ services: pilonuxt: container_name: pilonuxt - image: registry.kzntsv.site/pilonuxt:238a820 + image: registry.kzntsv.site/pilonuxt:3622662 restart: unless-stopped environment: NODE_ENV: production