meta(tasks): create [labtools-web-vds-deploy] in OpeItcLoc03/admin
This commit is contained in:
@@ -988,3 +988,42 @@ deps подняты: `@snollajs/snolla ^0.18`, `content-api ^0.13`, `content-api
|
||||
<!-- closed-by: vitya@.admin-exec / 2026-06-29 / deploy 6b9ae63 LIVE + smoke 4/4 -->
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [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, не реестром. Кросс-машинный трансфер образа не нужен.
|
||||
|
||||
## Разделение обязанностей (code-ownership vs ops-ownership)
|
||||
**Имплементер (`victor/labtools.ru`, отдельная сессия — код-артефакты в репо `deploy/`):**
|
||||
- `deploy/Dockerfile` (multi-stage: node-build с `--build-arg VERDACCIO_TOKEN` → `yarn install` @snollajs/* из verdaccio → slim runtime, `node server.js`), `.dockerignore`, `PORT`-env, healthcheck.
|
||||
- **Config/секреты — через env/mounted, НЕ запекать в образ** (config `default.json` gitignored). Отдать админу **список требуемых runtime-env**: DB (`mssql.kzntsv.site` MoreThenCms creds), S3/MinIO (`minio.kzntsv.site` keys), `siteId=D375C419-D787-4FCC-8934-A3B9DC951006`, imgproxy key/salt, verdaccio (только build-time).
|
||||
- Отчёт workshop: Dockerfile готов + build-args + полный env-лист.
|
||||
|
||||
**Админ (эта таска — ops-acceptance на VDS):**
|
||||
- Собрать prod-образ на VDS из Dockerfile имплементера (VERDACCIO_TOKEN из secret-store).
|
||||
- Docker stack/compose + **traefik labels** (Host-rule, TLS/letsencrypt, service-port).
|
||||
- **Runtime-секреты на VDS** как env (DB/S3/siteId/imgproxy) — не в образе, не в git.
|
||||
- **DNS/cutover:** сперва деплой на **staging-host** (напр. `labtools.vds.kzntsv.site`) за traefik → smoke parity на задеплоенном URL vs бой. **Cutover живого `labtools.ru` DNS = ОТДЕЛЬНЫЙ gated шаг, подтвердить с оператором** (прод-переключение, план отката) — бой сейчас живой на RUVDS IIS.
|
||||
- Внешний smoke: главная styled, каталог+порядок, редиректы, canonical, ассеты из MinIO — parity с боем.
|
||||
- **Вики-рунбук** (invoke `using-wiki`): stack, traefik, env-контракт, образ/тег, cutover + rollback.
|
||||
|
||||
Оба — **репорт в inbox workshop** (from labtools / from admin) по ходу.
|
||||
|
||||
## Обязательные скилы — вызвать до начала
|
||||
- invoke `using-vds-ops` (диагностика VDS-контейнеров) · invoke `using-wiki` (рунбук после деплоя) · invoke `project-discipline`
|
||||
|
||||
**TDD:** n/a (ops-деплой; приёмка = внешний smoke parity vs бой).
|
||||
**Разрешения:** интерны: нет | автопуш: админ по своей дисциплине.
|
||||
**weight:** needs-human
|
||||
**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:** ready
|
||||
**Where I stopped:** (not started) — labtools apps/web parity-подтверждён (ре-ревью №2 PASS: HTML+визуал byte-parity, ассеты из MinIO, 0 хаков, snolla 0.28.2).
|
||||
**Next action:** Дождаться Dockerfile+env-листа от имплементера (labtools) → собрать образ на VDS из его Dockerfile → traefik+staging-host → runtime-секреты env → smoke parity vs бой → (cutover labtools.ru DNS = отдельный gated шаг с оператором) → вики-рунбук.
|
||||
**Branch:** master
|
||||
**Notify:** OpeItcLoc03/workshop
|
||||
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-07-01T13:02:23.634Z -->
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user