meta(tasks): create [deploy-pilonuxt-vds] in OpeItcLoc03/admin

This commit is contained in:
2026-06-14 18:45:23 +00:00
parent 7ebab0a79d
commit 2ba7b6df5c

View File

@@ -489,3 +489,53 @@ vehicles-loader (stostayer) деплоится в Docker у клиента (lite
<!-- closed-by: vitya@.admin-exec / 2026-06-13 / path A: bucket assets + весь App_Data\assets (4750 obj/215.5 MiB), imgproxy 200/404 verified, snolla code unchanged --> <!-- closed-by: vitya@.admin-exec / 2026-06-13 / path A: bucket assets + весь App_Data\assets (4750 obj/215.5 MiB), imgproxy 200/404 verified, snolla code unchanged -->
--- ---
## ⚪ [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 <registry>/pilonuxt:<tag> .`
- `VERDACCIO_TOKEN` — ЖИВОЙ JWT (len ~300, 2 точки), User-env этой же машины (где `pass`). НЕ legacy-opaque (len ~196). Детали: pilonuxt `.wiki/concepts/verdaccio-token-lifecycle.md`.
- Билд ходит в сеть: `verdaccio.kzntsv.site` (пакеты) + `mssql.kzntsv.site:1433` (postinstall→schema-gen генерит `src/generated/` из CMS-БД по `config/default.json`). Если собираешь там, где CMS-БД недоступна — предгенери `yarn schema-gen` и положи `src/generated/` в контекст (schema-gen в билде тогда пропустится).
- Многостадийный, нативных модулей НЕТ (better-sqlite3 выпилен) → build-toolchain не нужен.
**Runtime egress из контейнера:**
- `mssql.kzntsv.site:1433` — живые запросы CMS (cacheTimeout=0), обязателен.
- `smtp.yandex.ru:465` — письма форм (contacts/checkout).
- Собственный публичный origin — SSR self-call на `/snolla` через `useRequestURL().origin` (`app/plugins/snolla.ts`). Контейнер должен резолвить+достигать свой публичный домен через Traefik. До cutover домена origin-петля на боевом не замкнётся.
**Env:**
- build: `VERDACCIO_TOKEN` (secret, НЕ ARG/ENV — иначе осядет в слоях).
- runtime (опц.): `NITRO_PORT`(деф 3000), `NITRO_HOST`(деф 0.0.0.0), `NUXT_PUBLIC_GTM_ID`(деф боевой `GTM-MNNXFJ6`; пустой → выкл), `NUXT_PUBLIC_SNOLLA_BASE_URL`(деф `/snolla`).
- Секреты (MSSQL/SMTP/imgproxy key+salt/siteId) ЗАПЕЧЕНЫ в `config/default.json` внутри образа (решение vitya — образ только в приватном registry). Env-override не настроен.
**Контекст инфры (с твоей доски):**
- imgproxy на books-vds (стек 29/30); у фронта `/imgproxy/**` = routeRule-редирект на `imgproxy.kzntsv.site`.
- ⚠️ Известный gap: snolla-side `content-api/routes/assets.js` — пустой stub (ты флагал в `migrate-assets-originals-to-s3`); без него часть картинок может не рендериться. Проверь на smoke.
- Прод `www.pilorama98.ru` сейчас = легаси MoreThenCms. Cutover домена — решение vitya: деплой на временный поддомен (напр. `pilonuxt.vds.kzntsv.site`) для smoke ИЛИ сразу боевой — согласуй.
**Acceptance:**
1. Образ собран и в registry.
2. Portainer-стек за Traefik, healthy.
3. Smoke: главная 200 + SSR-разметка (не 500); товары/категории из CMS; картинки рендерятся; форма contacts шлёт письмо.
4. Доклад в inbox `victor/pilonuxt`: URL, имя стека/тег образа, итог smoke.
## Обязательные скилы — вызвать до начала
- invoke `using-tasks` — статус задачи
- invoke `project-discipline` — дисциплина коммитов/пушей
- invoke `using-vds-ops` — диагностика контейнеров VDS
- invoke `using-projects-meta` — cross-project (notify pilonuxt, чтение pilonuxt-вики)
- invoke `using-wiki` после деплоя — заингесть итог в `.admin/.wiki/concepts/`
**TDD:** нет — ops/deploy, не код.
**Разрешения:** интерны: нет | автопуш инфра-конфигов: да
**weight:** needs-human (deploy-инфра)
**notify:** victor/pilonuxt
**Status:** ready
**Where I stopped:** (not started)
**Next action:** Прочитать pilonuxt Dockerfile + .wiki/concepts/verdaccio-token-lifecycle.md; собрать образ с verdaccio build-secret; согласовать с vitya целевой домен (боевой www.pilorama98.ru vs временный поддомен для smoke).
**Branch:** n/a
**Notify:** victor/pilonuxt
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: victor/pilonuxt / 2026-06-14T18:45:22.955Z -->
---