meta(handoff): write NEXT_SESSION — snolla local admin + on-snolla design
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,73 +1,65 @@
|
||||
---
|
||||
_last_updated_: 2026-07-13T19:50:00Z
|
||||
session_id: 2026-07-13-tandemmebel-8df10ee-deploy
|
||||
prev_session_id: 2026-07-13-stostayer-loader-deploy
|
||||
_last_updated_: 2026-07-20T07:00:00Z
|
||||
session_id: 2026-07-20-snolla-local-admin-on-snolla-design
|
||||
prev_session_id: 2026-07-13-tandemmebel-8df10ee-deploy
|
||||
---
|
||||
|
||||
# Next session handoff
|
||||
|
||||
## Эта сессия — tandemmebel 8df10ee deploy (DONE, прод живой)
|
||||
## Эта сессия — design: SNOLLA local admin restore + on.snolla.com → VDS
|
||||
|
||||
🟢 **[tandemmebel-deploy-drop-fb-tw-gplus-buttons] ЗАКРЫТА.** In-place template bump
|
||||
`0cd9351 → 8df10ee` на проде (стек 20), убраны FB/Twitter/Google+ share-кнопки
|
||||
(экстремистистская символика РФ), оставлены ВК+Одноклассники. Template-only
|
||||
(`apps/web/views/social_buttons.liquid`, 1 file 12 delet), snolla 0.42.1 НЕ менялся.
|
||||
Спека написана и закоммичена: `.wiki/concepts/snolla-local-admin-and-on-snolla-migration-design.md`
|
||||
(commit `b1b0092c`). Две таски заведены в `.tasks/` + board-entries в STATUS.md.
|
||||
|
||||
- **Верификация поймала расхождение:** tandemmebel-записка утверждала live=`ed96b18`/0.42.0,
|
||||
фактически `0cd9351`/0.42.1. gitea `compare/0cd9351...8df10ee`=`total_commits:1` → фикс на
|
||||
правильной 0.42.1 базе, yarn.lock идентичен → регрессии sitemap нет.
|
||||
- Build на VDS (чистый gitea-архив 8df10ee, build-arg VERDACCIO_TOKEN=books-ci JWT), digest
|
||||
`sha256:30a7e5ab82f2bf371042f1b5fa0cd7ac5ceda71379d1da59e148dee8166bd560`.
|
||||
- Completeness-gate: sitemap NEW==PROD **184=184 identical**, 0 регрессий. Live-smoke 4
|
||||
share-block страницы → vk+ok / fb-tw-gp=0. TLS-серт не дёрнут.
|
||||
- Swap через Portainer JWT (API-key `ptr_*` даёт 401 → workaround JWT), env 8/8 preserve,
|
||||
`prune:false, pullImage:true`. Tandemmebel-сессия подтвердила, discrepancy-урок усвоен.
|
||||
- **Records:** STATUS.md _Updated 2026-07-13; runbook секция In-place bump 8df10ee
|
||||
(`.wiki/concepts/tandemmebel-vds-deploy-runbook.md`); compose source-of-truth
|
||||
`host-stacks/vds-kzntsv/tandemmebel.compose.yml` = 8df10ee. Коммиты `632c843f` (records)
|
||||
+ `fe8e5882` (tasks_close).
|
||||
- **Откат:** PUT стека 20 → `0cd9351` (0.42.1, {% order %} fix) / `ed96b18` (0.42.0, в registry,
|
||||
стёрт с VDS при disk-cleanup 2026-07-13 — `pullImage:true` дотянет) / `b02ca18`; ИЛИ revert
|
||||
DNS→80.64.31.36 (RUVDS IIS жив).
|
||||
**Task A — snolla-local-admin-restore** (⚪ ready):
|
||||
Восстановить локальный catch-all IIS-сайт `snolla` (снесён 2026-06-08 при decommission
|
||||
windows-recovery-host) копированием `C:\sites\snolla\` с RUVDS (текущий прод-админ с уже
|
||||
применённым MinIO drop-in). Conn → `mssql.kzntsv.site:1433` Catalog=MoreThenCms. Доступ
|
||||
`<alias>.snolla.com/admin` через hosts-override, **один AppPool**, binding `*:80` + FW block
|
||||
inbound. Развилка адресации confirmed оператором (catch-all+hosts, не per-port).
|
||||
|
||||
### Loose end (low priority, НЕ блокер)
|
||||
- **Portainer stack 20 file — устаревшие STAGING-комменты** (строки 16-17 «Домен: STAGING»,
|
||||
53 «STAGING-RULE. Cutover: после flip DNS сменить на Host(...)»). Сама `traefik...rule`
|
||||
(строка 55) уже LIVE, совпадает с label'ом контейнера — функционально нейтрально. При
|
||||
деплое 8df10ee обновлён только image-line коммент. При следующем full-sync выровнять
|
||||
Portainer file под git source-of-truth (косметика).
|
||||
**Task B — on-snolla-vds-migration** (⚪ ready, blocked by A):
|
||||
on.snolla.com (siteId `B9ECDB50-2B93-4CE5-B238-A9918B3F9CF7`, alias `on`, Title "Internal Site",
|
||||
culture `en`) с RUVDS IIS → VDS Node snolla-app 0.42.1. Исходников нет → реконструкция
|
||||
Liquid-шаблонов из боевого `https://on.snolla.com/` + локального админа (Task A). По рецепту
|
||||
`tandemmebel-vds-deploy-runbook` (cutover) + `snolla-live-prod-inplace-image-bump` (gate).
|
||||
|
||||
### Addresses + siteIds (из MoreThenCms DB, read-only tedious-проб, SA из `pass mssql-vds/sa-password`)
|
||||
Скрипт `.tmp/dbprobe-sites.mjs` (gitignored). Адреса = `<Alias>.snolla.com/admin`:
|
||||
- tandemmebel.snolla.com (tandemmebel.ru, 78080707-F6E0-4330-BA30-7922354C2CEF)
|
||||
- labtools.snolla.com (labtools.ru, D375C419-D787-4FCC-8934-A3B9DC951006)
|
||||
- labtoolspro.snolla.com (labtools.pro, 663F9410-A6CC-4651-9A5C-62844A313957)
|
||||
- emspb.snolla.com (emspb.ru, 96EBC481-D26A-47BE-B660-13D49E7D0A61)
|
||||
- kupimknigi.snolla.com (kupimknigi.spb.ru, E924A354-0377-4E1E-80C6-2EB0194AA55F)
|
||||
- on.snolla.com (on.snolla.com, B9ECDB50-2B93-4CE5-B238-A9918B3F9CF7)
|
||||
|
||||
## Recent commits
|
||||
- fe8e5882 meta(tasks): close [tandemmebel-deploy-drop-fb-tw-gplus-buttons] in OpeItcLoc03/admin
|
||||
- 632c843f deploy(tandemmebel): 8df10ee LIVE — drop FB/Twitter/Google+ share buttons
|
||||
- 94e5d77c meta(tasks): create [tandemmebel-deploy-drop-fb-tw-gplus-buttons] in OpeItcLoc03/admin
|
||||
- 7e02d611 docs(wiki): vds-kzntsv disk cleanup 94%→74% + container-log rotation guard
|
||||
- 8230f891 / 2e180029 meta(tasks): vehicles-loader-redeploy-per-group-rate-diff (create + update)
|
||||
- 135da254 chore: gitignore .zcode/
|
||||
- b1b0092c design(snolla): local .NET admin restore + on.snolla.com VDS migration
|
||||
- a02c4b86 wiki: ingest de-vds-3xui source chronicle + gitignore .tmp/.tasks/.lock
|
||||
- 543ded79 wiki: de-vds-3xui real RF-client confirmed
|
||||
|
||||
## Open треки
|
||||
|
||||
| Трек | Готовность | Entry-point |
|
||||
|---|---|---|
|
||||
| vehicles-loader 0.4.1 runtime verify | 🔴 active — deployed, verify pending | После **07-14 06:21 MSK**: SSH `new.stostayer.ru:20435` (victor, креды `pass stostayer/client`), проверить новый `importRun` `status=ok` + `counts.serviceGenerationRate={replaced:<сотни>, skipped:<~41k>}`, `serviceModificationRate={replaced:<сотни>, skipped:<~5k>}`, `duration < ~93 мин`. Если `replaced` ~44k/6.7k — образ из старого кода (но code-verify уже GREEN: rateDiff.js/replaceGroup.js в образе есть). Откат: `docker tag docker.stostayer.ru/vehicles-loader:0.4.0 vehicles-loader:latest`. User сказал «завтра посмотрим вместе». |
|
||||
| books-vds → vds-kzntsv консолидация | оценено, НЕ хватает ресурсов | RAM: .94 free 1.7 GiB (swap=0) vs books 2–3+ GiB (на .133 уходит 3.3 GiB в swap). Диск: .94 было 11 GiB free (94%), после чистки 39 GiB; books тащит ~15–20 GiB. CPU хватает (6 ядер idle). Решение за user. |
|
||||
| ntfy push.kzntsv.site cert-pinning | починено на телефоне (pin убран) | Повтор при каждом LE-renewal ~90д, если pin снова включат. Сервер НЕ трогать. |
|
||||
| snolla-local-admin-restore (Task A) | ⚪ ready — ждёт SSH RUVDS verify + DB-креды | `.tasks/snolla-local-admin-restore.md`; spec §Task A. Шаг 0: read-only SSH RUVDS (`pass show ruvds-iis/full-env`) — проверить C:\sites\snolla\ + MinIO drop-in в Web.config. |
|
||||
| on-snolla-vds-migration (Task B) | ⚪ ready, blocked by A | `.tasks/on-snolla-vds-migration.md`; spec §Task B. |
|
||||
| vehicles-loader 0.4.1 runtime verify | 🔴 active — deployed, verify pending (просрочено с 07-14) | SSH `new.stostayer.ru:20435` (victor, `pass stostayer/client`), проверить importRun status=ok + counts. Откат: `docker tag .../vehicles-loader:0.4.0 vehicles-loader:latest`. |
|
||||
| books-vds → vds-kzntsv консолидация | оценено, НЕ хватает ресурсов | RAM/disk на .94 не лезет. Решение за user. |
|
||||
|
||||
## Спроси user'а
|
||||
|
||||
- **books-vds консолидация**: свежий Ubuntu-VDS под books, апгрейд тарифа .94 (Rusonyx: +RAM/+disk), или оставить на EOL CentOS 7 (.133)? Оценка этой сессии — на .94 не лезет (RAM+диск).
|
||||
- **Durable build-fix в stostayer.new** (cross-project): `packages/vehicles-loader/Dockerfile` — добавить `ENV VERDACCIO_TOKEN=unused` в deps-стейдж (сеть off → токен не нужен) + закоммитить root `.dockerignore`. Сейчас build ломается на unresolved `${VERDACCIO_TOKEN}` (committed в `393b7d3` после Dockerfile) и тащит жирный контекст (node_modules/.worktrees). Делаем коммит в `victor/stostayer.new`?
|
||||
- **Spec review** — `b1b0092c` / `.wiki/concepts/snolla-local-admin-and-on-snolla-migration-design.md`. Ок? После approve → writing-plans (план в `.tasks/<slug>.md` по дисциплине, не docs/superpowers/).
|
||||
- **Task A first step:** дать добло на read-only SSH RUVDS (verify source + MinIO state)?
|
||||
- **Open Q из spec:** (1) имя репо для on.snolla.com (`victor/on-snolla`?); (2) MoreThenCms DB app-аккаунт + путь в `pass` (SA есть `mssql-vds/sa-password`, но админ юзает app-аккаунт — завести/найти?); (3) включать все ~60 сайтов в локальный админ или только тираж(5)+on.snolla.com.
|
||||
- **books-vds консолидация**: свежий VDS / апгрейд .94 / оставить на EOL CentOS .133?
|
||||
|
||||
## Не делать (preemptive guards)
|
||||
|
||||
- **НЕ retry-push** в `docker.stostayer.ru` — один push, сбой → стоп + к человеку. Инцидент 2026-06-17: retry-шторм забанил VPN-IP, весь дом→хост :443 лёг.
|
||||
- **НЕ деплоить vehicles-loader** из кода без rateDiff (`85ca936`). Перед deploy — verify что в образе есть `src/sync/rateDiff.js` (rateSetsEqual) + `src/sync/replaceGroup.js` (replaceRatesForGroups).
|
||||
- **НЕ чинить ntfy-пин на сервере** — это client-side (телефон). Сервер: cert валиден, ntfy healthy, `/healthz` 200.
|
||||
- На **vds-kzntsv НЕ netplan** (anti-pattern, outage 2026-05-28).
|
||||
- **НЕ сжимать** books-стек на .94 — RAM/disk не хватает (оценено этой сессией).
|
||||
- **pull перед работой** — admin чист (local==origin `7e02d611`); stostayer.new на `b86ed40`. Не забывать pull (user поправлял этой сессией).
|
||||
- **НЕ SSH-action на RUVDS без добла** — user уже раз отверг tool-call на RUVDS-SSH (хочет явное подтверждение); read-only verify — только после ок.
|
||||
- **НЕ деплоить vehicles-loader** из кода без rateDiff (`85ca936`). Verify `rateDiff.js`/`replaceGroup.js` в образе.
|
||||
- **НЕ retry-push** в `docker.stostayer.ru` (бан VPN-IP, инцидент 2026-06-17).
|
||||
- **НЕ netplan** на vds-kzntsv; **НЕ сжимать** books на .94 (RAM/disk).
|
||||
- **НЕ ставить URL Rewrite rule** локальному админу (нет traefik → `:port` leak, см. cms-server-port-leak-fix).
|
||||
- **pull перед работой** — admin на master `b1b0092c` (local, не push'нуто — спросить перед push по Rule 4).
|
||||
|
||||
## Memory updates за сессию
|
||||
|
||||
- **new**: `ntfy-android-cert-pinning-breaks-on-le-renewal.md` — LE-renewal (~90д) ломает pinned ntfy-клиент («fingerprint mismatch / connection lost»); фикс на телефоне (re-pin или отключить pinning → system CA), сервер не трогать.
|
||||
- **wiki**: `entities/vds-kzntsv.md` — Known issues += 2026-07-13 disk cleanup (контейнерные логи 19 GiB, owncloud 13 GiB) + logrotate guard (`/etc/logrotate.d/docker-containers`, copytruncate 200M hourly) + hourly cron; Open issues — GC-cron срочность снижена (94%→74%), container-log rotation DONE.
|
||||
- (пока не сохранял — если design approved, возможно memory: «SNOLLA admin addressing = <alias>.snolla.com/admin catch-all IIS, siteId из dbo.Sites by alias»; и обновить windows-recovery-host entity — планируется восстановление snolla IIS-сайта локально)
|
||||
Reference in New Issue
Block a user