meta(tasks): create [deploy-pilonuxt-vds] in OpeItcLoc03/admin
This commit is contained in:
@@ -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 -->
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [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 -->
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user