feat(on-snolla): CUTOVER DONE — on.snolla.com live on VDS (stack 22, LE cert)

DNS reg.ru on.snolla.com A -> 89.253.255.94 (operator flip, authoritative NS verified).
Traefik rule swapped staging->Host(on.snolla.com), LE cert issued (CN=on.snolla.com,
YR1, until 2026-10-18). Live-smoke GREEN, homepage byte-identical prod-HTML, sitemap
3/3 parity. RUVDS IIS untouched (rollback = revert DNS).

- compose source-of-truth updated to LIVE rule.
- runbook .wiki/concepts/on-snolla-vds-deploy-runbook.md (cutover as-built + gotchas:
  snolla robotsTxt crash on undefined app.locals.domain, no Liquid form-tag, /c dead-link
  parity, Portainer JWT re-auth before PUT).

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
vitya
2026-07-20 13:17:57 +03:00
committed by vitya
parent 9705468ef4
commit 4c4d19382b
2 changed files with 99 additions and 5 deletions

View File

@@ -13,9 +13,13 @@
# @snollajs/* из verdaccio.kzntsv.site). Тег = git-sha репо on.snolla.com (текущий 473923e494db).
# Homepage render byte-identical прод-HTML (verified direct diff + completeness-gate 3/3 loc parity 2026-07-20).
#
# Домен: STAGING-Host on-snolla.vds.kzntsv.site (wildcard -> VDS). Cutover: flip DNS reg.ru -> 89.253.255.94,
# затем PUT rule -> Host(`on.snolla.com`), LE-серт issued on first hit. Прод-оракул до cutover = RUVDS IIS
# (80.64.31.36), жив, не тронут. Rollback = revert DNS -> 80.64.31.36 ИЛИ PUT стека назад на тег.
# Домен: LIVE — on.snolla.com (cert LE HTTP-01, CN=on.snolla.com, issued 2026-07-20, until 2026-10-18).
# Cutover завершён 2026-07-20: DNS reg.ru on.snolla.com A 80.64.31.36 -> 89.253.255.94 (operator flip,
# авторит. NS ns1/ns2.reg.ru verified -> VDS), traefik rule staging->боевой (LE-порядок соблюдён),
# LE-серт issued on first hit. Live-smoke GREEN, homepage byte-identical прод-HTML, sitemap 3/3 parity.
# Предыстория: жил на RUVDS IIS (80.64.31.36) до 2026-07-20. RUVDS IIS не тронут (rollback = revert DNS).
# План отката = revert DNS reg.ru -> 80.64.31.36 (RUVDS IIS жив) ИЛИ PUT стека 22 назад на тег (пока
# единственный тег 473923e494db = :latest — первый deploy; образных rollback-тегов пока нет).
#
# Runtime egress: mssql.kzntsv.site:1433, minio.kzntsv.site:443 (оригиналы + variant-cache), smtp.yandex.ru:465.
#
@@ -47,8 +51,8 @@ services:
labels:
traefik.enable: "true"
traefik.http.routers.on-snolla.entrypoints: websecure
# STAGING-RULE. Cutover: после flip DNS reg.ru -> 89.253.255.94 (verify авторит. NS) сменить на Host(`on.snolla.com`).
traefik.http.routers.on-snolla.rule: Host(`on-snolla.vds.kzntsv.site`)
# LIVE (cutover 2026-07-20). Rollback = Host(`on-snolla.vds.kzntsv.site`) + revert DNS -> 80.64.31.36.
traefik.http.routers.on-snolla.rule: Host(`on.snolla.com`)
traefik.http.routers.on-snolla.tls.certresolver: letsEncrypt
traefik.http.services.on-snolla.loadbalancer.server.port: "5000"