From 98e582f5b56c08ad28e71a384f09e29bcb3ff189 Mon Sep 17 00:00:00 2001 From: vitya Date: Fri, 22 May 2026 22:24:49 +0300 Subject: [PATCH] tasks: close windows-hosting-vendor-research + add iis-migration-to-ruvds User selected RUVDS (Windows Server 2025 Core, 2GB RAM, 30GB HDD) outside research process. Vendor decision made, migration task created as ready. Co-Authored-By: Claude Opus 4.7 (1M context) --- .tasks/STATUS.md | 16 +++++-- .tasks/iis-migration-to-ruvds.md | 80 ++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 4 deletions(-) create mode 100644 .tasks/iis-migration-to-ruvds.md diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 8b7034f..c80baf6 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -689,14 +689,22 @@ Copy-Item C:\sites\snolla\Web.config.bak-pre-vds-cutover-20260522 C:\sites\snoll --- -## ⚪ [windows-hosting-vendor-research] — Design-таска (1 день). Выбрать вендора managed Windows hosting для будущего переезда IIS с windows-recovery-host (домашней машины). Output: 1-pager с recommended vendor + cost estimate + migration recipe outline. +## 🟢 [windows-hosting-vendor-research] — vendor selected: RUVDS (2026-05-22) -Это **переходный** трек до завершения snolla node-rewrite'а (после которого IIS не нужен вообще). Не файлим impl-таску миграции до этой research'и — vendor выбираем сначала. +**Status:** done +**Selected:** RUVDS Windows Server 2025 Core, 2GB RAM, 30GB HDD, 1IP (RDP ready). DC: Королёв. User selected outside research process. +**Next action:** impl-таска `iis-migration-to-ruvds` (ready). +**Branch:** n/a + +--- + +## ⚪ [iis-migration-to-ruvds] — Migrate 11 IIS sites from DESKTOP-NSEF0UK to RUVDS Windows Server 2025 Core **Status:** ready -**Where I stopped:** (not started) -**Next action:** См. `windows-hosting-vendor-research.md` — constraints + candidates + acceptance. Steps: (1) research 4 candidates (Rusonyx / Selectel / FirstVDS / Beget), (2) fill comparison table по criteria (RDP / .NET 4.8 / IIS 10 / public IP / cost / SLA / reviews), (3) write top-1 recommendation с trade-off justification, (4) cost estimate monthly + one-time, (5) document в `.wiki/concepts/windows-hosting-vendor-comparison-2026.md`. **Не file** follow-up impl-task `iis-migration-to-managed-windows-hosting` — пусть future-agent file'нёт когда vendor выбран. Spawn'd by [resilience-roadmap-design] workshop pass 1 2026-05-21. +**Where I stopped:** (not started — awaiting RUVDS installation complete) +**Next action:** RDP-подключение к RUVDS, verify .NET 4.8 + IIS installed, install URL Rewrite 2.1, plan migration: (1) backup IIS sites+configs from windows-recovery-host, (2) deploy to RUVDS, (3) configure external MSSQL/MinIO connection (already on VDS), (4) DNS swap test on single low-traffic site (kupimknigi.spb.ru). **Branch:** n/a + --- diff --git a/.tasks/iis-migration-to-ruvds.md b/.tasks/iis-migration-to-ruvds.md new file mode 100644 index 0000000..8547e7c --- /dev/null +++ b/.tasks/iis-migration-to-ruvds.md @@ -0,0 +1,80 @@ +# iis-migration-to-ruvds + +## Goal + +Migrate 11 IIS sites from [[../entities/windows-recovery-host]] (DESKTOP-NSEF0UK) to RUVDS Windows Server 2025 Core. Убрать SPOF домашней машины. + +**Pre-requisites done:** +- MSSQL+MinIO уже на [[../entities/vds-kzntsv]] (см [[mssql-minio-migration-to-vds]]) +- RUVDS purchased: Windows Server 2025 Core, 2GB RAM, 30GB HDD, 1IP, DC Королёв +- RDP ready (credentials в secure storage) + +## Target sites (11) + +From [[../.wiki/concepts/recovery-architecture-snapshot]]: +- snolla.com +- pilorama98.ru +- labtools.ru / labtools.pro +- tandemmebel.ru +- emspb.ru +- kupimknigi.spb.ru (low-traffic — pilot candidate) +- on.snolla.com +- maljarka.tandemmebel.ru +- + 3 others (see source) + +## Migration approach + +1. **RDP-first setup** (RUVDS): + - Verify .NET Framework 4.8 installed (`Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\'`) + - Verify IIS 10 installed (`Get-WindowsFeature Web-Server`) + - Install URL Rewrite 2.1 (download + Server Manager cmd) + - Configure firewall: allow 80/443 inbound + - Test external MSSQL connection to VDS (89.253.255.94:1433) + - Test external MinIO connection to VDS (minio.kzntsv.site:443) + +2. **Backup source** (windows-recovery-host): + - Export IIS configuration: `%systemroot%\system32\inetsrv\appcmd.exe list site -config > sites-backup.txt` + - Export applicationHost.config: `C:\Windows\System32\inetsrv\config\applicationHost.config` + - Backup inetpub\wwwroot\ (11 sites, ~100MB-1GB each) + - Document Web.config connection strings (MSSQL/MinIO endpoints) + +3. **Deploy to target** (RUVDS): + - Create IIS sites matching source structure + - Copy site contents (RDP drive mount or WinRM copy) + - Update Web.config connection strings → point to VDS MSSQL/MinIO + - Import SSL certificates (traefik LE certs) or setup new LE on IIS + +4. **Pilot on kupimknigi.spb.ru**: + - DNS pointing test (local hosts file or temporary DNS) + - Smoke test: homepage + admin + database connectivity + - 24h soak — monitor stability + - If OK → proceed with remaining 10 sites + +5. **DNS swap cutover**: + - Update DNS A records → RUVDS IP + - Monitor traefik logs on windows-recovery-host (should see 0 traffic) + - Keep windows-recovery-host warm for 1 week rollback window + +## Acceptance criteria + +- [ ] RUVDS IIS serving all 11 sites +- [ ] All sites functional (no 500 errors, DB connectivity OK) +- [ ] DNS pointed to RUVDS +- [ ] 24h stability soak passed +- [ ] Rollback plan documented (revert DNS to home IP) +- [ ] windows-recovery-host VM shutdown / saved-state + +## Open questions + +- [ ] **RUVDS public IP** — assigned yet? Need for DNS A records. +- [ ] **SSL strategy** — use existing traefik LE certs (export?) or setup new LE on IIS? +- [ ] **Traefik на RUVDS?** — IIS-only (port 80/443 direct) или traefik reverse proxy again? +- [ ] **Backup strategy for RUVDS IIS** — VDS snapshot? IIS native backup? + +## Notes + +- **Windows Server 2025 Core** = GUI-less, PowerShell-only management. No Server Manager desktop. +- **2GB RAM constraint** — IIS + 11 sites = tight. Monitor memory after pilot. +- **Migration is transitional** — long-term snolla-on-node makes IIS obsolete. Don't over-engineer. + +