--- title: Windows Recovery Host (рабочий PC пользователя) type: entity tags: [hardware, windows, docker, virtualbox, iis, recovery] sources: [../sources/nas-recovery-session-2026-05-18.md] updated: 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) ## Что хостит сейчас (после attempt 2 успешной миграции на host-IIS, 2026-05-19 вечер) **Active prod:** | Что | Где | Порт (host) | Прим. | |---|---|---|---| | **Native IIS — site `snolla`** | `C:\sites\snolla` (pool `snolla`, .NET v4.0 Integrated, `ApplicationPoolIdentity`) | `*:80`, `*:8089` | **active prod** — catch-all для 11 cms hosts; traefik backend `host.docker.internal:8089` | | **Native IIS — site `stostayer`** | `C:\sites\stostayer` (pool `stostayer`) | `*:8090` | local-only, traefik route `.yml.disabled` (user: «внутренний, наружу не светить») | | **Native IIS — site `stostayer.old`** | `C:\sites\stostayer.old` (pool `stostayer.old`) | `*:8091` | local-only, traefik route `.yml.disabled` | | **traefik 2.6.6** | Docker, network `proxy` | 8000 (http), 4443 (https), 8080 (dashboard) | 11 cms routes → host IIS:8089; 2 stayer routes DISABLED; 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 | | **Parallel fallback (running, без traffic):** | Что | Где | Порт (host) | Прим. | |---|---|---|---| | **VirtualBox `snolla-recovery` VM** | `C:\Users\vitya\VirtualBox VMs\snolla-recovery\` | NAT 13389/23389/8022/18080/18180/18181/18189 | parallel fallback на 24-48h soak; затем savestate; см. [[snolla-recovery-vm]] | **Прочие inert:** | Что | Где | Прим. | |---|---|---| | **`C:\sites\snolla-identity-manager\`** | папка без IIS-сайта | deploy-артефакт, не активен | | **traefik backups** | `data/custom/*.yml.bak-*-2026-05-19` (5 серий) | atomic-revert artefacts; `.bak-pre-attempt2-2026-05-19` — baseline текущей prod conf | `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 `&`) - `stostayer.old\` — Web.config patched (conn → localhost) - `snolla-identity-manager\` — deploy-артефакт, IIS-сайта нет - `C:\Users\vitya\projects\MoreThenCms\` — git-репо с исходниками CMS ## SSH-ключи на этой машине - `~/.ssh/id_ed25519_kreknin` — для [[kreknin-synology]] (vitya@195.19.90.188) - `~/.ssh/id_ed25519_openwrt` — для [[openwrt-router]] (root@192.168.1.1) - `~/.ssh/id_ed25519_snolla_vm` — для [[snolla-recovery-vm]] (vitya@127.0.0.1:8022, в admin-keys VM) ## Что должно случиться, если этот PC погаснет - **Всё** — все сайты лягут. **Single point of failure** — главное замечание для [[future-resilient-architecture-goals]].