chore(.tasks): iis-on-host-migration Phase 1-3 done, paused

10/11 main domains now served by native host IIS via traefik
(C:\sites\MoreThenCms.Web on *:80). rimiz.ru -> 404 (CMS-side),
stostayer/stostayer.old technically deployed but timeout locally,
traefik for stayer kept on VM. Phase 4-5 open.

- STATUS: ready -> paused with detailed where-I-stopped
- iis-on-host-migration: completed steps + decisions log + status block
- NEXT-SESSION-PROMPT: rewritten with current state + 4 next-task options

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-19 12:51:48 +03:00
parent 1f4a581ea0
commit 3d6a3e8c15
3 changed files with 50 additions and 33 deletions

View File

@@ -4,29 +4,31 @@
---
Привет! Продолжаем после recovery. **Контекст уже зафиксирован в** `.wiki/` (читай `overview.md` для навигации) **и в** `.tasks/STATUS.md`.
Привет! Продолжаем после **успешной миграции основного CMS на нативный IIS хоста** (см. `.wiki/sources/iis-host-migration-2026-05-19.md` и обновлённый `.wiki/concepts/recovery-architecture-snapshot.md`).
**Кратко где мы сейчас:**
- Клиентские сайты живы и доступны из публичного интернета через цепочку: client → OpenWRT NAT → traefik 4443/8000 (на этом Windows-PC) → VirtualBox VM `snolla-recovery` → IIS + .NET 4.8 CMS.
- 5 баз восстановлены в MSSQL контейнере на хосте. MinIO/Elasticsearch/imgproxy тоже работают в Docker.
- 40 LE-сертификатов валидны, traefik на file-provider routing.
- 10 главных клиентских доменов (snolla.com + 9 остальных) идут client → OpenWRT → traefik **нативный IIS хоста** → MSSQL container. VM из prod-пути выведена для этих 10 доменов.
- `MoreThenCms.Web` на хосте: `C:\sites\MoreThenCms.Web`, AppPool `MoreThenCms.Web` (.NET v4.0 Integrated, ApplicationPoolIdentity), bind `*:80`.
- traefik backend для 11 yml пропатчен на `host.docker.internal:80` (backup `*.yml.bak-phase3-2026-05-19`).
- VM продолжает крутить только stostayer (`:18180`) и stostayer.old (`:18181`) — их traefik backend на VM не трогали.
**Задача этой сессии:** запустить активную задачу `nas-recovery``iis-on-host-migration`. Цель — перенести IIS-сайты из VM на нативный IIS Windows-хоста, чтобы избавиться от VBox как слоя нестабильности. Все материалы есть: backup сайтов в `C:\nas-recovery\vm-sites\` (11 GB), исходники в `projects/MoreThenCms\`, контейнеры с БД и сервисами уже работают на этом хосте.
**Старт-команда:**
1. Прочитай `.tasks/iis-on-host-migration.md` целиком.
2. Прочитай `.wiki/entities/snolla-recovery-vm.md` и `.wiki/entities/windows-recovery-host.md` — что мы переносим и куда.
3. Прочитай `.wiki/concepts/cms-config-rewrite-pattern.md` — про UTF-8 BOM ловушку.
4. Спроси меня про **открытые вопросы** из `.tasks/iis-on-host-migration.md` (CMS abs paths, IIS app pool identity, .NET update, MinIO/Azure adapter).
5. После того как откроемся в вопросах — предложи план Phase 1+2 (анализ + импорт сайтов) одной аргументированной рекомендацией, не меню. Согласую — поедем.
**Открытые задачи (выбрать одну):**
1. **stostayer / stostayer.old** — сайты `:8090/:8091` на хосте созданы, но локальный `Invoke-WebRequest` даёт timeout. Разобраться: cold-start ASP.NET? Web.config conn-string на 89.253.219.2 не отвечает? AppPool краш? Глянуть Event Viewer + W3SVC logs. После фикса — переключить traefik (`stostayer.yml`, `oldstostayer.yml`).
2. **rimiz.ru → 404** — host header не маппится на CMS-сайт (на host-IIS и, вероятно, до миграции тоже). Найти в БД таблицу mapping host→site, проверить запись для rimiz.ru.
3. **Phase 5** — URL Rewrite + ARR MSI (фикс `:4443` в CMS-редиректах), Application Initialization (warm-start), log rotation `C:\inetpub\logs\`.
4. **Cleanup VM** — только после (1). `VBoxManage controlvm "snolla-recovery" poweroff`, удалить port forwards 18080/18180/18181/18189 в OpenWRT, опционально `unregistervm --delete` (освобождает 92 GB).
**Не делай без моего "да":**
- Менять traefik backends (это переключит prod-трафик).
- Останавливать VM до полной отладки нативного IIS.
- Удалять backup-копии (vm-sites/, snolla.ova).
- Любой push в git (gitea пока недоступен — он был на мёртвой синке, восстанавливать = отдельная задача).
- Любые traefik patches (это меняет prod-трафик).
- Любые destructive операции на `C:\sites\`, `C:\stayer\`, `C:\nas-recovery\vm-sites\`.
- Глушить VM.
- Push в git (gitea пока на мёртвой синке).
**Открытое:** МinIO/Azure-адаптер в CMS — я обещал пояснить, "не так все" как считалось. Готов рассказать когда дойдёт.
**Контекстные пароли** (в Web.config / .env, не в чате):
- MSSQL SA: `C:\Users\vitya\projects\docker\diskstation\mssql\.env`
- Production MSSQL для CMS: user `snolla`, password в `C:\sites\MoreThenCms.Web\Web.config` (`fXkH4@8O%3pc`)
- VM SSH: `~/.ssh/id_ed25519_snolla_vm``vitya@127.0.0.1:8022` (NAT-forward!)
- Если ключ не подойдёт — пароль admin vitya в VM: `Pryakhin9`
Поехали.
@@ -35,15 +37,12 @@
## Что почитать AI-агенту перед началом (для самопроверки контекста)
- `.wiki/overview.md` — точки входа
- `.wiki/sources/nas-recovery-session-2026-05-18.md` — что было
- `.wiki/concepts/recovery-architecture-snapshot.md` — текущее состояние, request flow
- `.wiki/concepts/future-resilient-architecture-goals.md` — куда движемся в долгую
- `.tasks/STATUS.md` — закрытая задача `nas-recovery` (status: done)
- `.tasks/iis-on-host-migration.md` — активная задача, открытые вопросы
- `.wiki/sources/iis-host-migration-2026-05-19.md` — что было сделано в прошлой сессии (актуальный source)
- `.wiki/sources/nas-recovery-session-2026-05-18.md` — почему вообще на этом хосте всё
- `.wiki/concepts/recovery-architecture-snapshot.md`**обновлённая** chain после миграции
- `.wiki/entities/snolla-recovery-vm.md` — VM в статусе demoted
- `.wiki/entities/windows-recovery-host.md` — добавлены native IIS sites
- `.wiki/concepts/cms-config-rewrite-pattern.md` — UTF-8 BOM ловушка
- `.tasks/STATUS.md` — paused задача `iis-on-host-migration`
- `.tasks/iis-on-host-migration.md` — детальный план + completed steps + решения
- Это сообщение
## Полезные пароли/ключи (хранятся в Web.config / .env, не в чате)
- MSSQL SA: см. `C:\Users\vitya\projects\docker\diskstation\mssql\.env`
- Production MSSQL для CMS: user `snolla` (production password в Web.config-ах в VM и в `production-data/docker-compose.yml`)
- MinIO access/secret keys: `C:\Users\vitya\projects\docker\diskstation\minio\docker-compose.yml`
- SSH-ключи на хосте: `~/.ssh/id_ed25519_kreknin`, `~/.ssh/id_ed25519_openwrt`, `~/.ssh/id_ed25519_snolla_vm`