diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 3086564..6924cb9 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1027,3 +1027,41 @@ Dev-source: `victor/labtools.ru/apps/web` (parity-док/буфер — в `.wor --- + +## ⚪ [emspb-web-vds-deploy] — Деплой `victor/emspb.ru` `apps/web` (snolla-приложение, БД-контент+SSR Liquid) на Rusonyx VDS в docker за traefik, **staging-first**. Зеркало `[labtools-web-vds-deploy]` — тот же паттерн, адаптировать хосты/siteId. Код готов (ре-ревью PASS, ноль хаков, 29/29 parity). `deploy/` артефакты уже в репо. + +## Источник +`victor/emspb.ru` — `deploy/Dockerfile` (multi-stage, build-arg `VERDACCIO_TOKEN` build-time, node:22-slim non-root, healthcheck) + `deploy/README.md` (env-лист, все секреты через env, ничего не бейкается) + корневой `.dockerignore`. Референс-рунбук: admin-вики `labtools-vds-deploy-runbook`. + +## Split (как labtools — dev даёт Dockerfile, ops собирает и катит) +1. **Образ собирает АДМИН на VDS** из emspb `deploy/Dockerfile` (docker+verdaccio+token на VDS), из **чистого git-archive** (config/default.json отсутствует ✅ — секретов в образе нет). Тег `registry.kzntsv.site/emspb:`. +2. **Portainer stack** на STAGING `emspb.vds.kzntsv.site` за traefik (Host-rule + LE cert + порт). +3. **Runtime-env-секреты в stack-env (НЕ в образ):** DB `mssql.kzntsv.site`/`MoreThenCms`, S3/MinIO, `siteId=96EBC481-D26A-47BE-B660-13D49E7D0A61`, imgproxy HMAC (кросс-проверить как labtools). +4. **Smoke parity vs бой `www.emspb.ru`:** страницы 200 (main/contacts/portfolio/prices + service-выборка), canonical 301 (trailing/lowercase), theme-ассеты из MinIO byte-identical, Cache-Control как бой. + +## НЕ делать +- **Cutover live `emspb.ru` DNS — НЕ трогать.** Отдельный gated-шаг позже по слову оператора (бой на текущем хостинге живой; rollback = DNS назад). Эта таска = только staging + smoke. +- Секреты в образ/git — нет. + +## Ops-acceptance +Внешний smoke parity vs бой `www.emspb.ru` на задеплоенном staging-URL `emspb.vds.kzntsv.site` = GREEN. Рунбук в admin-вике `emspb-vds-deploy-runbook` (зеркало labtools). + +## Обязательные скилы — вызвать до начала работы +- invoke `using-tasks` — статус задачи +- invoke `project-discipline` — дисциплина +- invoke `using-vds-ops` — диагностика контейнеров на VDS при необходимости +- invoke `using-wiki` — записать рунбук `emspb-vds-deploy-runbook` в admin-вику + +**TDD:** n/a (ops-деплой). +**Разрешения:** ops-задача админ-сессии. +**weight:** needs-human +**notify:** OpeItcLoc03/workshop + +**Status:** ready +**Where I stopped:** (not started) +**Next action:** Собрать образ на VDS из victor/emspb.ru deploy/Dockerfile (чистый git-archive, секретов нет) → registry.kzntsv.site/emspb: → Portainer stack STAGING emspb.vds.kzntsv.site за traefik+LE → runtime-env-секреты → smoke parity vs бой www.emspb.ru. Рунбук в admin-вику. Cutover live DNS — НЕ трогать (отдельный gated-шаг). +**Branch:** n/a +**Notify:** OpeItcLoc03/workshop + + +---