Files
admin/windows-recovery-host.md
vitya f3ded74674 docs(.wiki): iis-migration rollback + post-mortem + xml-escape concept
Phase 9 — rollback миграции на host-IIS из-за Docker port-loop
(host.docker.internal:80 от traefik container резолвится обратно
в сам traefik через NAT, https.yml http-catchall middleware
отдавал 301 -> TOO_MANY_REDIRECTS). Prod снова через VM.

- iis-migration-2026-05-19-postmortem: 10 ошибок миграции +
  recipe для следующей попытки (backend port НЕ :80, smoke с
  MaximumRedirection 0, тест из НЕ-LAN, parallel VM x N часов,
  atomic revert plan)
- webconfig-password-xml-escape: новая gotcha — & в conn-string
  пароле требует & в Web.config (XML reserved char)
- iis-host-migration-2026-05-19: Phase 9 rollback chronology +
  что осталось на хосте inert
- snolla-recovery-vm: статус -> active prod (обратно)
- windows-recovery-host: host IIS sites -> inert artifacts
- recovery-architecture-snapshot: chain снова через VM,
  traefik backends восстановлены из .bak-phase3

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 15:08:07 +03:00

5.6 KiB
Raw Blame History

title, type, tags, sources, updated
title type tags sources updated
Windows Recovery Host (рабочий PC пользователя) entity
hardware
windows
docker
virtualbox
iis
recovery
../sources/nas-recovery-session-2026-05-18.md
2026-05-19

Windows Recovery Host

Личный Windows-PC пользователя, который во время recovery стал production-сервером для всех клиентских сайтов.

Hardware / OS

  • Hostname: DESKTOP-NSEF0UK
  • OS: Windows 11 Pro (предположительно — поддерживает Hyper-V, IIS, .NET Framework)
  • LAN-MAC: 88:66:5A:2F:AA:68 (Broadcom 802.11ac WiFi)
  • LAN-IP: 192.168.1.143 (DHCP-резервация на openwrt-router)
  • Диск C: ~700 GB total, на старте recovery ~352 GB free, после — ~150 GB free.
  • Юзер: vitya (admin)

Установленный стек

  • .NET Framework: 4.8.1
  • IIS (W3SVC, на 80, мы планировали остановить — но не остановили, traefik на 8000/4443 не конфликтует)
  • Docker Engine 29.3.1 (Docker Desktop с WSL2 backend)
  • VirtualBox 7.2.8 (установлен в сессии 2026-05-18, через winget)
  • OpenSSH client (для ssh/scp к kreknin и VM)
  • FileZilla client (для пользовательских SFTP-перетаскиваний)

Сетевое положение

  • За OpenWRT 23.05.4 openwrt-router
  • Соединение с интернетом через WiFi (Broadcom 802.11ac, 288 Mbps)
  • За VLESS-клиентом v2rayN (роутер default-route шёл через VPN, пришлось настроить Bypass LAN правило с geoip:private → direct, иначе входящие 80/443 терялись через asymmetric routing)

Что хостит сейчас (после revert 2026-05-19 — см. iis-migration-2026-05-19-postmortem)

Active prod:

Что Где Порт (host) Прим.
VirtualBox snolla-recovery VM C:\Users\vitya\VirtualBox VMs\snolla-recovery\ VRDE 13389, NAT-RDP 23389, NAT-SSH 8022, NAT-HTTP 18080/18180/18181/18189 active prod, обслуживает 11 главных доменов + stayer'ы через traefik
traefik 2.6.6 Docker, network proxy 8000 (http), 4443 (https), 8080 (dashboard) 11 main routes + 2 stayer routes → all на VM (host.docker.internal:18080/18180/18181) + 3 infra routes
MSSQL 2019 Docker, named volume mssql_mssql_data 1433 5 production DB
MinIO Docker, bind-mount ./data 9000
Elasticsearch 7.10.1 Docker, bind-mount ./data 9200 books-стек, не CMS
imgproxy Docker 8787
imgproxy-nginx Docker 8788

Inert (готовы для следующей попытки миграции, не на prod-пути):

Что Где Порт (host) Прим.
Native IIS — snolla C:\sites\snolla (pool snolla, .NET v4.0 Integrated, ApplicationPoolIdentity) 80, 8088 сайт + binding'и live, не получает трафика (traefik снова на VM)
Native IIS — stostayer C:\sites\stostayer (pool stostayer) 8090 conn на www.stostayer.ru,1433 (patched), inert
Native IIS — stostayer.old C:\sites\stostayer.old (pool stostayer.old) 8091 conn → наш localhost MSSQL (patched), inert
C:\sites\snolla-identity-manager\ папка без IIS-сайта deploy-артефакт, не активен

Default Web Site всё ещё stopped (autoStart=false) — даже не нужен. URL Rewrite + ARR не установлены.

Ключевые папки

  • C:\Users\vitya\projects\docker\diskstation\ — compose'ы и данные docker-стеков
    • mssql/, minio/, elasticsearch/, imgproxy/, traefik/
    • traefik/data/custom/*.yml — file-provider routes для всех 13 client доменов + ES/MinIO/imgproxy
  • C:\Users\vitya\VirtualBox VMs\snolla-recovery\ — VM home, active prod (running)
  • C:\nas-recovery\backup\snolla\snolla.ova — оригинал OVA (45.6 GB, для повторного импорта если что)
  • C:\nas-recovery\vm-sites\wwwroot\, C:\nas-recovery\vm-sites\stayer\ — резервная копия IIS-сайтов из VM (использована для миграции на хост; пока хранится как safety net)
  • C:\sites\inert, готов для следующей попытки миграции (см. iis-migration-2026-05-19-postmortem):
    • snolla\ — Web.config patched (sitePath + conn → localhost)
    • stostayer\ — Web.config patched (conn → www.stostayer.ru,1433 с XML-escape &amp;)
    • stostayer.old\ — Web.config patched (conn → localhost)
    • snolla-identity-manager\ — deploy-артефакт, IIS-сайта нет
  • C:\Users\vitya\projects\MoreThenCms\ — git-репо с исходниками CMS

SSH-ключи на этой машине

Что должно случиться, если этот PC погаснет