Files
admin/.tasks/on-snolla-vds-migration.md
vitya b1b0092cdc design(snolla): local .NET admin restore + on.snolla.com VDS migration
Two linked tasks, spec in .wiki/concepts/ per project-discipline.

Task A — snolla-local-admin-restore: восстановить локальный catch-all IIS-сайт
`snolla` (снесён 2026-06-08) копированием C:\sites\snolla\ с RUVDS (прод-админ
с MinIO drop-in), conn → mssql.kzntsv.site MoreThenCms. Доступ
<alias>.snolla.com/admin через hosts-override, один AppPool. Адреса + siteIds
извлечены из MoreThenCms DB read-only.

Task B — on-snolla-vds-migration (blocked by A): on.snolla.com (siteId
B9ECDB50…, alias on, "Internal Site", culture en) с RUVDS IIS → VDS Node
snolla-app 0.42.1, реконструкция Liquid-шаблонов из боевого сайта+админки
(исходников нет). По рецепту tandemmebel-vds-deploy-runbook.

Board entries: .tasks/STATUS.md + per-task files.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-20 09:45:06 +03:00

2.8 KiB
Raw Blame History

on-snolla-vds-migration

Goal

Мигрировать посадочную on.snolla.com с RUVDS IIS (MoreThenCms .NET) на VDS как Node snolla-app @snollajs/snolla 0.42.1. Исходников сайта нет — реконструировать из боевого сайта + админки. Спека: ../.wiki/concepts/snolla-local-admin-and-on-snolla-migration-design.md §Task B.

Facts (из MoreThenCms DB)

  • SiteId=B9ECDB50-2B93-4CE5-B238-A9918B3F9CF7, Alias=on, Title="Internal Site", Culture=en, Live=1, Production=1.
  • Контент (DB-строки + ассеты) уже на vds-kzntsv (общая MoreThenCms DB + MinIO) — нужно только репо шаблонов+конфига.

Plan / phases

  • 1. Реконструкция шаблонов — через локальный админ (snolla-local-admin-restore) + боевой https://on.snolla.com/ HTML: для каждой страницы сопоставить вёрстку с DB-контент-структурой → layout.liquid + page/partials. Итеративно (пиши→рендерь→сверяй с боевым).
  • 2. Новый репо victor/on-snolla (имя уточнить) — калька tandemmebel.ru/apps/web (server.js/index.js/config/views/package.json + deploy/Dockerfile). Пин @snollajs/snolla 0.42.1.
  • 3. production.json — siteId B9ECDB50…, siteUrl https://on.snolla.com, sequelize→MoreThenCms mssql.kzntsv.site:1433, s3→minio.kzntsv.site, imgproxy→imgproxy.kzntsv.site, sharp serve-bytes. Секреты в runtime-env стека.
  • 4. Build на VDS (обход traefik-499, build-arg VERDACCIO_TOKEN), push registry.kzntsv.site/on-snolla:<sha>.
  • 5. Throwaway-staging :50XX из env живого (или нового стека) → completeness-gate: sitemap parity vs прод-on.snolla.com (page-locs NEW==PROD, self-consistency 0 регрессий 404/5xx).
  • 6. Stack Portainer за traefik Host(on.snolla.com), mem_limit 512m, env секреты.
  • 7. Cutover — verify авторит. NS reg.ru→89.253.255.94 → traefik Host-rule → LE-серт → live-smoke. По tandemmebel-vds-deploy-runbook.

Status

ready (blocked by snolla-local-admin-restore). Branch: master.

Depends on / blocks

Open Q

  • Имя репо (victor/on-snolla? victor/on.snolla.com?).
  • Сложность посадочной (объём шаблонов) — узнается при реконструкции.

Rollback

Образ предыдущего тега в registry / revert DNS reg.ru→80.64.31.36 (RUVDS IIS жив пока DNS не флипнут).