meta(handoff): session 2026-06-08 — maljarka fix + host decommission

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-08 15:16:16 +03:00
parent 1eb58aa940
commit 47057484a9

View File

@@ -1,51 +1,37 @@
---
_last_updated_: 2026-06-05T02:00:00+03:00
session_id: 2026-06-05-iis-cutover-and-winacme-renewal
_last_updated_: 2026-06-08T18:30:00+03:00
session_id: 2026-06-08-maljarka-fix-and-host-decommission
---
# Next session handoff
_Сессия: (1) full DNS cutover на RUVDS достигнут; (2) поднят постоянный win-acme HTTP-01 auto-renewal
на RUVDS IIS — дедлайн cert-expiry 2026-07-22 СНЯТ. Source НЕ заглушен (warm rollback). Всё проверено,
ничего не висит._
_Сессия: (1) починен `maljarka.tandemmebel.ru` 502-on-HTTPS; (2) большой декоммишн рабочей машины
после Synology-аварии — C: free 62→275 ГБ. Всё проверено. 7 коммитов локально, НЕ запушено._
## Recent commits
## Recent commits (session, 7 ahead of origin)
- `task(decommission): windows-recovery-host cleanup complete (C: 62->275GB)`
- `fix(decommission): smoke :8091 via curl --noproxy; idempotent F2`
- `fix(decommission): orphan fix done agent-side; drop F1/sa from script`
- `fix(decommission): ASCII-only / sa-prompt / traefik removal`
- `fix(iis-migration): maljarka.tandemmebel.ru 502-on-HTTPS resolved`
- `9cd6d4e2` task(iis-migration): full DNS cutover reached 2026-06-05
- (+ commit этой сессии: win-acme renewal pipeline + wiki concept)
## Что сделано (iis-migration, 05.06)
-**Full cutover:** все 25 hostname authoritative на RUVDS `80.64.31.36`. На windows-source ничего authoritative.
-**win-acme auto-renewal** на RUVDS: 25-SAN LE cert (до **2026-09-03**) во всех SNI-биндингах +
SYSTEM scheduled task `win-acme-renew-snolla` (renew 55д до expiry). RUVDS больше НЕ зависит от
домашнего traefik по сертификатам.
- Gotcha решён: OWIN-catch-all CMS жрал `/.well-known/acme-challenge/` → challenge вынесен в отдельное
IIS-приложение (пул «No Managed Code») + патч шаблона `C:\win-acme\Web_Config.xml`.
- Артефакты: `scripts/iis-migration-to-ruvds/03-ruvds-winacme.ps1` + `winacme-Web_Config.xml`;
recipe в `.wiki/concepts/winacme-iis-owin-catchall-http01.md`.
- Доступ к RUVDS: SSH `~/.ssh/ruvds-iis-migration``Administrator@80.64.31.36` (elevated сессия).
## Open треки
| Трек | Готовность | Entry-point |
|---|---|---|
| `decommission-windows-recovery-host` | ✅ done, кроме vhdx-compact | `.tasks/decommission-windows-recovery-host.md` |
| docker-vhdx compact (135 ГБ заперты в `docker_data.vhdx`) | ⏸ отложено user'ом («не горит») | требует **полностью закрыть Docker Desktop**`Optimize-VHD`/diskpart; файл уже sparse-флагнут |
| `fix-nl-vds-reality-pq-dest` | 🟡 server-side done | ждёт client-side (user меняет SNI в v2rayN + подтверждает) |
| `harden-books-vds-exposed-ports` | ⚪ ready | не начато |
## Спроси user'а
- **Decommission `snolla` site** на windows-source — ждём soak (~2026-06-12) + drain кэша, или раньше?
Когда решит: elevated PS → `Stop-Website snolla` → архив `C:\sites\snolla` (8.66 ГБ) → kreknin +
cleanup temp SSH-ключей/FW-правил. (win-acme на RUVDS от этого не зависит — он самостоятелен.)
-`maljarka.tandemmebel.ru` 502 — **решено 2026-06-08**. Корень: `dbo.Sites.SettingsData=NULL` у тенанта (нет `httpSecure`) → KeyNotFound в MoreThenCms на HTTPS-ветке. Fix: `UPDATE Sites SET SettingsData='{httpSecure:...}'` + recycle пула snolla; verified 443→200. См. `.wiki/concepts/morethencms-null-settingsdata-https-502.md`. (rimiz — отдельная причина, не трогали.)
- **Push?** 7 коммитов сессии локально, origin не обновлён. Пушить — по явному гранту (Rule 4, не давали).
- **vhdx-compact** 135 ГБ — добивать (с полным гашением Docker Desktop, вырубит lightrag/markitdown до ручного старта) или оставить? User сказал «не горит» — по умолчанию НЕ трогаем.
## Не делать (preemptive guards)
- **Не `--test` в win-acme под SSH** — включает интерактив, виснет. Для staging — `--baseuri <staging>`.
- **Не трогать `acme-challenge` IIS-приложение / пул «No Managed Code» / патченый `Web_Config.xml`** —
на них держится авто-renewal. Detail: `.wiki/concepts/winacme-iis-owin-catchall-http01.md`.
- **Не `Stop-Website snolla` пока хвост кэша течёт / без явного запроса** (warm rollback).
- IIS-правки — elevated shell. **branch ahead от origin** — push без явного grant'а (Rule 4); grant НЕ давали.
- **Не `wsl --shutdown` / vhdx-compact в активной agent-сессии** — гасит markitdown-MCP (через него работаю) + lightrag. Только когда user готов закрыть Docker Desktop.
- `docker_data.vhdx` **уже помечен sparse** (`fsutil sparse setflag`) — перед offline `diskpart compact` возможно нужно снять флаг (давал `0x80070057`). Чистый путь — Quit Docker Desktop → `Optimize-VHD -Mode Full`.
- **localhost-проверки на этой машине идут через системный VPN-прокси (213.176.64.253)** → `Invoke-WebRequest`/`curl` к `localhost` глотаются (вики bug #7). Юзать `curl --noproxy "*"`; прод-проверки — `--resolve host:443:<реальный IP>`. См. [[verify-on-real-client-not-own-curl-tests]].
- `pass show` работает в agent-bash (gpg), но НЕ в PowerShell (`bash` там = WSL без стора). Для VDS-кредов — bash-инструмент.
## Memory updates за сессию
- (нет нового файла; знание — в wiki concept + task decisions log)
## ⚠️ Sensitive (НЕ в git)
- Корневой `C:\sites\snolla\web.config` содержит plaintext-креды (MSSQL/SMTP/Azure/API-ключи). Pre-existing,
не вводилось этой сессией. Если будешь декоммишить/архивировать — не плодить копии в трекаемых местах.
- (нет нового файла — знания в `.wiki/concepts/morethencms-null-settingsdata-https-502.md` + обновлён entity `windows-recovery-host` + task decommission).