6.0 KiB
6.0 KiB
_last_updated_, session_id, prev_session_id
| _last_updated_ | session_id | prev_session_id |
|---|---|---|
| 2026-07-20T11:50:00Z | 2026-07-20-on-snolla-cutover-done | 2026-07-20-snolla-local-admin-restore-done |
Next session handoff
Эта сессия — Task B (on.snolla.com → VDS) DONE. Cutover завершён 2026-07-20.
on.snolla.com live на VDS как Node snolla-app @snollajs/snolla 0.42.1, за traefik, LE-серт issued.
Прод-оракул был RUVDS IIS (80.64.31.36) — не тронут, жив (rollback = revert DNS).
🟢 [on-snolla-vds-migration] ЗАКРЫТА. Спека: .wiki/concepts/snolla-local-admin-and-on-snolla-migration-design.md §Task B.
Runbook (as-built + gotchas): .wiki/concepts/on-snolla-vds-deploy-runbook.md. Таска: .tasks/on-snolla-vds-migration.md (as-built).
As-built
- Репо
victor/on.snolla.com(git.kzntsv.site, запушен) — структура-калька tandemmebel.ru. Commit473923e494db. - Образ
registry.kzntsv.site/on-snolla:473923e494db(+:latest), собран на VDS (обход traefik-499). - Стек Portainer 22 (
on-snolla),mem_limit 512m, 8 env-секретов (переиспользованы из tandemmebel стека 20 — общая snolla-инфра), ruleHost(on.snolla.com), LE-серт CN=on.snolla.com (YR1, until 2026-10-18). - DNS: reg.ru
on.snolla.comA80.64.31.36→89.253.255.94(operator flip; авторит. NS ns1/ns2.reg.ru verified → VDS before rule swap, LE-порядок соблюдён). - Реконструкция:
views/layout.liquid= bootstraptor-лендинг byte-identical прод-HTML (28413 байт, verified direct diff + live). Content-поля пустые → лендинг baked в layout. Form "Join us" baked (POST/→ snollaformsmiddleware →form_ajax_response.liquid). StaticPages/yandex_…+/4a052808276c.html./c= 404 dead-link (parity с продом — prod /c тоже 404; snolla sitemap несёт его → 3/3 loc parity). - Completeness-gate GREEN: sitemap 3/3 parity {/,/c,/yandex}, homepage + /yandex byte-identical, 0 регрессий. Live-smoke external: TLS verify=0,
/+/robots.txt+/sitemap.xml+/yandex=200,/c=404.
Гочи (в runbook + memory)
- snolla robotsTxt крашится на undefined
app.locals.domain— on.snolla.com не имеет row в MoreThenCmsDomains. Фикс вapps/web/index.js: после initApp, если!app.locals.domain, synthesized{robotsTxt: site.robotsTxt}. Без shared-DB мутации. Memorysnolla-robotstxt-crash-no-domains-row. - Form "Join us" не имеет Liquid form-tag — форма HTML baked в layout, POST —
formsmiddleware (мэтч по Path/). Legacy reCAPTCHA v1 мертва — parity, не чиним. - Portainer JWT short-lived — в node-скрипте GET stack + GET file + PUT: jwt из GET-фазы протух к PUT (первый PUT 401). Re-auth прямо перед PUT.
- hosts override на воркстейшне — Task A оставил
127.0.0.1 on.snolla.comв hosts. External verify прод-on.snolla.com = только черезcurl --resolve on.snolla.com:443:89.253.255.94.
MinIO upload-acceptance (ручной follow-up оператора — НЕ сделано)
Логин в админку on.snolla.com (на RUVDS .NET, /admin) → залить тест-ассет → проверить объект в minio.kzntsv.site bucket=assets. S3-провайдер был admin-self-test green на RUVDS; Web.config 1:1 → должно работать. Креды админа в MoreThenCms.dbo.Accounts (SQL-user snolla / SA pass mssql-vds/sa-password).
Recent commits (.admin)
4c4d1938feat(on-snolla): CUTOVER DONE — on.snolla.com live on VDS (stack 22, LE cert)- 6b5cb5fa feat(on-snolla): Portainer stack 22 source-of-truth (staging Host, mem_limit 512m, 8 env secrets)
73ad7669(projects-meta) close vehicles-loader-redeploy-per-group-rate-diff 🟢019f5bae(projects-meta) close on-snolla-vds-migration 🟢- (on.snolla.com repo) 473923e feat(on-snolla): scaffold snolla-app — byte-identical landing reconstruction
Open треки
| Трек | Готовность | Entry-point |
|---|---|---|
| books-vds → vds-kzntsv консолидация | оценено, не лезет по RAM/disk | Решение за user. |
| MinIO upload-acceptance on.snolla (ручной) | ⚪ follow-up оператора | Логин /admin (RUVDS) → тест-ассет → MinIO bucket=assets. |
Спроси user'а
- (нет pending-решений — Task B закрыт полностью)
Не делать (preemptive guards)
- НЕ пушить без добла (Rule 4) — на эту сессию добл был ("разрешаю всё, погнали").
- НЕ сжимать books на .94; НЕ netplan на vds-kzntsv.
- hosts override активен —
on.snolla.com→ 127.0.0.1 (локальный админ Task A). Боевой on.snolla.com (VDS) с воркстейшна — только через--resolve :443:89.253.255.94или off-hosts. - НЕ откатывать DNS on.snolla.com без явного запроса — cutover LIVE, RUVDS IIS жив как rollback-target.
Memory updates за сессию
- NEW
snolla-robotstxt-crash-no-domains-row— snolla sites без Domains row крашатся на /robots.txt; фикс в index.js domain-drop fallback. - (candidate) on.snolla.com мигрирован на VDS 2026-07-20 (stack 22, LE). Тираж snolla на VDS: labtools(17)/emspb(18)/labtools-pro(19)/tandemmebel(20)/kupimknigi(21)/on-snolla(22).
- (candidate) обновить entity
windows-recovery-host.md: on.snolla.com более не обслуживается локальным IIS как прод — прод на VDS; локальный IISsnolla= только админ-хаб (hosts override on.snolla.com→127.0.0.1 теперь pointing на админ-копию, не прод).