diff --git a/.gitignore b/.gitignore index 86462d1..62bfee6 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,12 @@ Thumbs.db *~ .vscode/ .idea/ + +# Secret material — должны жить в `pass`, не в repo (даже untracked). +.secrets/ +*.env +!*.env.example + +# Transient operational drops — findings captured в .tasks/, не в repo root. +*-log.txt +*-size.txt diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index c80baf6..ea153a2 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1,5 +1,5 @@ # Admin Task Board -_Updated: 2026-05-22 (Сессия: MSSQL Express 2022 live (`mssql.kzntsv.site:1433`, 5 DBs, 8 prod hosts 200 OK). MinIO/imgproxy VDS stack live as standby (CMS остаётся на windows из-за hardcoded URL в closed-source DLL). board-viewer-vds-deploy ✓ (board.kzntsv.site + basicauth). **+ Portainer-migration sweep**: 12 ad-hoc stacks → Portainer-managed (canonical rule добавлен в CLAUDE.md + `portainer-stack-management-vds` concept). Skipped traefik+portainer (management plane). Decommission window-host MSSQL после 48ч soak 2026-05-24.)_ +_Updated: 2026-05-23 (Session-recovery: temp admin начал `[iis-migration-to-ruvds]` 2026-05-23 (09:37 creds в `.secrets/` plaintext, 18:01 size probe, 18:08 robocopy upal exit 16 «сетевой путь не найден»), drop'нул tree dirty. Восстановлено: creds → `pass show ruvds-iis/full-env`, `.secrets/` removed + gitignored, root-cause SMB-445 closed на fresh Win Server 2025 Core зафиксирован в [`windows-server-2025-core-bootstrap`](../.wiki/concepts/windows-server-2025-core-bootstrap.md), task ⚪ → 🟡 paused с concrete next-step. Previous session (2026-05-22): MSSQL Express 2022 live (`mssql.kzntsv.site:1433`, 5 DBs, 8 prod hosts 200 OK). MinIO/imgproxy VDS stack live as standby (CMS остаётся на windows из-за hardcoded URL в closed-source DLL). board-viewer-vds-deploy ✓ (board.kzntsv.site + basicauth). Portainer-migration sweep: 12 ad-hoc stacks → Portainer-managed.)_ + --- diff --git a/.tasks/iis-migration-to-ruvds.md b/.tasks/iis-migration-to-ruvds.md index 8547e7c..cc29d5b 100644 --- a/.tasks/iis-migration-to-ruvds.md +++ b/.tasks/iis-migration-to-ruvds.md @@ -7,74 +7,87 @@ Migrate 11 IIS sites from [[../entities/windows-recovery-host]] (DESKTOP-NSEF0UK **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) +- RDP ready (creds — `pass show ruvds-iis/full-env`, public IP `80.64.31.36`) -## Target sites (11) +## Key files -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) +- `C:\sites\snolla\` — 8.66 GB source (samples sites), измерено 2026-05-23 +- `C:\sites\<11 sites>` — полный inetpub root (по `recovery-architecture-snapshot`) +- `C:\Windows\System32\inetsrv\config\applicationHost.config` — source IIS state +- `[[../.wiki/concepts/windows-server-2025-core-bootstrap]]` — bootstrap-чеклист + transfer-методов матрица (ingested 2026-05-23 после failed-robocopy) +- `pass show ruvds-iis/full-env` — RDP creds ## 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) +1. **RDP-first setup** (RUVDS) — см. `concepts/windows-server-2025-core-bootstrap.md` §Bootstrap-чеклист: + - Install IIS (`Install-WindowsFeature Web-Server -IncludeAllSubFeature -IncludeManagementTools`) + - Verify .NET Framework 4.8 (Release ≥ 528040) + - Install URL Rewrite 2.1 + - Open FW 80/443 + - Test external MSSQL connection to VDS (`mssql.kzntsv.site:1433`) + - Test external MinIO connection (если CMS pipeline переезжает — см. caveat §MinIO ниже) -2. **Backup source** (windows-recovery-host): - - Export IIS configuration: `%systemroot%\system32\inetsrv\appcmd.exe list site -config > sites-backup.txt` +2. **Open SMB inbound на время migration** (см. transfer-методов матрица — это recommended choice): + - `Set-NetFirewallRule -DisplayGroup "File and Printer Sharing" -Enabled True` + - `New-NetFirewallRule -DisplayName "SMB-from-source" -Direction Inbound -Protocol TCP -LocalPort 445 -RemoteAddress -Action Allow` + - `New-Item -ItemType Directory -Path C:\sites -Force` + - `New-SmbShare -Name sites -Path C:\sites -FullAccess Administrator` + +3. **Backup source** (windows-recovery-host): + - Export IIS configuration: `appcmd list site -config > sites-backup.txt` - Export applicationHost.config: `C:\Windows\System32\inetsrv\config\applicationHost.config` - - Backup inetpub\wwwroot\ (11 sites, ~100MB-1GB each) + - Backup inetpub\wwwroot\ (11 sites, ~8.66 GB на snolla одной, итого предположительно ~30-50 GB total) - 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. **Deploy to target** (RUVDS) — через SMB robocopy: + - `net use \\\sites /user:Administrator ` + - `robocopy C:\sites\ \\\sites\ *.* /S /E /DCOPY:DA /COPY:DAT /Z /MT:8 /R:2 /W:5` per site + - Recreate sites через `appcmd add site` или `New-IISSite`, копировать bindings + - Update Web.config connection strings → `Data Source=mssql.kzntsv.site,1433;TrustServerCertificate=True` (matches `[mssql-vds-migration]` pattern) + - Import SSL certificates (traefik LE certs) или setup new LE через `win-acme` (wacs.exe) -4. **Pilot on kupimknigi.spb.ru**: - - DNS pointing test (local hosts file or temporary DNS) +5. **Pilot on kupimknigi.spb.ru** (low-traffic): + - DNS pointing test (local hosts file или temporary DNS) - Smoke test: homepage + admin + database connectivity - - 24h soak — monitor stability - - If OK → proceed with remaining 10 sites + - 24h soak — monitor stability (включая memory pressure — 2GB tight) + - Если OK → proceed с 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 +6. **DNS swap cutover**: + - Update DNS A records → RUVDS IP (`80.64.31.36`) + - Monitor traefik logs на windows-recovery-host (должно увидеть 0 traffic) + - Keep windows-recovery-host warm для 1 week rollback window + - **Cleanup на RUVDS:** `Remove-SmbShare -Name sites` + `Remove-NetFirewallRule -DisplayName "SMB-from-source"` -## Acceptance criteria +## Decisions log -- [ ] 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 +- **2026-05-23 09:37 (admin attempt):** RDP creds сохранены в `.secrets/ruvds-iis.env` (plaintext, в repo tree → нарушение etap-2 secrets-discipline, ретроспективно зафикшено в текущей сессии: → `pass show ruvds-iis/full-env`). +- **2026-05-23 18:01 (admin attempt):** замерен размер `C:\sites\snolla\` = 8871 MB ≈ 8.66 GB. Источник для capacity planning (snolla alone 8.66 GB → 11 sites суммарно может быть 30-50 GB → 30 GB HDD на RUVDS **tight**, потенциальный capacity blocker, см. Open questions). +- **2026-05-23 18:08 (admin attempt):** robocopy `C:\sites\snolla\` → `\\80.64.31.36\sites\snolla\` упал exit 16 «сетевой путь не найден». Root cause (post-mortem из текущей сессии): TCP/445 closed по дефолту на Win Server 2025 Core + SMB share `sites` не создан. UNC robocopy как первый transfer-метод **не работает** на fresh Core без подготовки RUVDS-стороны. +- **2026-05-23 (current session) recommendation:** SMB inbound с source-IP whitelist — самый быстрый transfer для 11 sites × ~1 GB, native robocopy /Z поддерживает interrupt-resume, FW rule убирается после cutover. Полная матрица альтернатив (RDP-redirect / WinRM / SFTP) в `concepts/windows-server-2025-core-bootstrap.md` §Transfer-методов. +- **MinIO pipeline caveat (из `[iis-cutover-to-vds-services]` 2026-05-22):** CMS image pipeline остаётся целиком на windows-recovery-host из-за hardcoded URL в `MoreThenCms.Modules.Imgproxy.dll`. RUVDS-IIS будет coupled к windows-host imgproxy через DNS `imgproxy.kzntsv.site` — то есть RUVDS IIS вызывает server-side GET на windows-host'овский imgproxy. Это **не убирает SPOF домашней машины** для image-rendering pipeline. Если windows-host умрёт, image-URLs broken. Open question для post-migration phase: decompile DLL или Option B (local nginx-relay). ## 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? +- [ ] **RUVDS disk capacity** — 30 GB HDD vs estimated 30-50 GB total sites. Нужен audit `Get-ChildItem C:\sites -Directory | %{[PSCustomObject]@{Name=$_.Name; SizeGB=(Get-ChildItem $_.FullName -Recurse | Measure-Object -Property Length -Sum).Sum / 1GB}}` на source перед transfer'ом. Если >25 GB — нужен upgrade RUVDS plan (или selective transfer без cache/logs/temp dirs). +- [ ] **SSL strategy** — use existing traefik LE certs (export?) или setup new LE на IIS via `win-acme`? Recommendation: `win-acme` — standalone-friendly на Core, не зависит от traefik export-ритуала. +- [ ] **Traefik на RUVDS?** — IIS-only (port 80/443 direct) или traefik reverse proxy again? Recommendation: IIS-only для 11 sites, traefik overkill; ставить traefik только если будут не-IIS workloads на RUVDS. +- [ ] **Backup strategy для RUVDS IIS** — расширить `vds-backup-rsync-kreknin` cron на RUVDS как третий source? VDS snapshot? IIS native backup (`Backup-WebConfiguration`)? Решение откладывается до после успешного cutover. +- [ ] **Image-pipeline SPOF (post-cutover):** windows-host imgproxy остаётся single-point — Option B/D из `[iis-cutover-to-vds-services]` MinIO-phase. Решение откладывается до после успешного cutover. + +## Completed steps + +- [x] **2026-05-22:** vendor research (`windows-hosting-vendor-research` 🟢) — RUVDS selected. +- [x] **2026-05-23 09:37:** RUVDS purchased + RDP creds saved. **Note:** creds сначала жили в `.secrets/ruvds-iis.env` plaintext (нарушение etap-2 discipline); ретроспективно вынесены в `pass show ruvds-iis/full-env` 2026-05-23 в session-recovery. +- [x] **2026-05-23 18:01:** source size probe — `C:\sites\snolla\` = 8.66 GB. +- [x] **2026-05-23 18:08:** failed-robocopy attempt → root-cause analysis → finding закреплён в `[[../.wiki/concepts/windows-server-2025-core-bootstrap]]`. ## 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. +- **Windows Server 2025 Core** = GUI-less, PowerShell-only management. No Server Manager desktop. Drag-n-drop в RDP не работает без `mstsc /admin` Local Drives redirect. +- **2GB RAM constraint** — IIS + 11 sites = tight. Monitor memory после pilot. Возможно нужен per-pool `RecyclingPeriodicRestartMemory 200MB`. +- **Migration is transitional** — long-term snolla-on-node makes IIS obsolete. Don't over-engineer (не ставить Prometheus, не writing custom monitoring). +- **Image-pipeline caveat:** даже после RUVDS cutover, windows-host остаётся SPOF для image-rendering (см. Decisions log §MinIO caveat). + + diff --git a/.wiki/concepts/windows-server-2025-core-bootstrap.md b/.wiki/concepts/windows-server-2025-core-bootstrap.md new file mode 100644 index 0000000..ef1ba12 --- /dev/null +++ b/.wiki/concepts/windows-server-2025-core-bootstrap.md @@ -0,0 +1,104 @@ +--- +title: Windows Server 2025 Core — bootstrap для IIS-хоста (RUVDS-сценарий) +status: live +tags: [windows, iis, ruvds, bootstrap, smb, ops] +related: [[iis-migration-2026-05-19-postmortem]], [[recovery-architecture-snapshot]], [[future-resilient-architecture-goals]] +--- + +# Windows Server 2025 Core — bootstrap для IIS-хоста + +Из коробки на RUVDS (2GB RAM, 30GB HDD, Win Server 2025 Core, RDP-only) машина **не готова** ни принимать файлы по SMB, ни хостить IIS — стандартный сценарий «купил, RDP'нулся, robocopy'нул» не работает. Документ фиксирует дефолтное состояние, default-blockers, и матрицу transfer-методов для переноса content'а с windows-recovery-host. + +## Дефолтное состояние fresh Win Server 2025 Core + +| Компонент | Дефолт | Нужно для IIS-host'инга | +|---|---|---| +| GUI / Server Manager desktop | нет (Core SKU) | PowerShell-only management | +| IIS (Web-Server feature) | не установлен | `Install-WindowsFeature Web-Server -IncludeAllSubFeature -IncludeManagementTools` | +| .NET Framework 4.8 | varies (бывает pre-bundled, бывает нет) | `Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\'` — Release ≥ 528040 | +| URL Rewrite Module 2.1 | нет | download + `msiexec /i rewrite_amd64_en-US.msi /quiet` | +| Defender Firewall inbound 80/443 | closed | `New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow` (+443) | +| **SMB inbound 445** | **closed** | для UNC robocopy — открывать profile-specific rule | +| **File and Printer Sharing service / share** | **off, no share** | для UNC robocopy — `Set-NetFirewallRule -DisplayGroup "File and Printer Sharing" -Enabled True -Profile Any` + `New-SmbShare` | +| WinRM / PSRemoting | enabled (домен / private) | для PSSession-based transfer — verify `Enable-PSRemoting -SkipNetworkProfileCheck` | +| RDP 3389 | open | работает из коробки | + +## Гочa: UNC robocopy на fresh Core → exit 16 + +**Симптом:** `robocopy C:\sites\snolla\ \\\sites\snolla\ *.* /S /E /DCOPY:DA /COPY:DAT /Z /MT:8 /R:2 /W:5` → `2026/05/23 18:08:29 ERROR 53 (0x00000035) Создание папки назначения … Не найден сетевой путь.` + +**Root cause:** на RUVDS: +1. TCP/445 закрыт в Defender Firewall (public profile по дефолту). +2. SMB share `sites$` не создан (`Get-SmbShare` показывает только админскую `C$`, доступную только Administrator). +3. Authentication через UNC требует Windows credentials — `net use \\\C$ /user:Administrator ` сначала. + +Проверка с source (windows-recovery-host): +```powershell +Test-NetConnection -ComputerName -Port 445 +# TcpTestSucceeded : False ← вот корень +``` + +## Матрица transfer-методов (source → RUVDS) + +| Метод | Setup на RUVDS | Pros | Cons | +|---|---|---|---| +| **RDP local-drive redirection** | nothing — mstsc `/admin` → Local Resources → Drives → C: | zero-config, через 3389 (уже открыт) | drag-n-drop вручную, не batch; explorer-через-RDP slow для >1 GB; не подходит для 8 GB+ snolla | +| **SMB inbound (recommended для batch)** | open FW 445 + `New-SmbShare -Name sites -Path C:\sites -FullAccess Administrator` + `net use` с source | robocopy native, /MT:8 параллелизм, resume через `/Z` | exposed SMB — должен быть либо в private network, либо VPN, либо source-IP firewall whitelist | +| **WinRM PSSession + Copy-Item** | `Enable-PSRemoting`, добавить source IP в `TrustedHosts`, FW 5985/5986 | encrypted, не нужен SMB, скрипт-friendly | медленнее SMB на больших файлах; HTTP-default; HTTPS требует cert setup | +| **SFTP** (OpenSSH server feature) | `Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0` + start sshd + FW 22 | works с любого Linux/Mac source; ключи безопасно | extra service surface; sshd default config иногда permissive | +| **HTTP PUT через временный traefik+webdav** | overkill для bootstrap | reusable для последующих deploy'ев | сначала нужен IIS/nginx running — но IIS ещё не deployed → chicken-and-egg | + +**Recommendation для IIS migration:** SMB inbound с source-IP whitelist. Самый быстрый для 11 sites × ~1 GB; native robocopy /Z поддерживает interrupt-resume; FW rule убирается после migration cutover. + +```powershell +# На RUVDS (RDP-сессия, PowerShell): +Set-NetFirewallRule -DisplayGroup "File and Printer Sharing" -Enabled True +New-NetFirewallRule -DisplayName "SMB-from-source" -Direction Inbound ` + -Protocol TCP -LocalPort 445 -RemoteAddress -Action Allow +New-Item -ItemType Directory -Path C:\sites -Force +New-SmbShare -Name sites -Path C:\sites -FullAccess Administrator +``` + +Source-side (windows-recovery-host): +```powershell +net use \\\sites /user:Administrator +robocopy C:\sites\snolla \\\sites\snolla *.* /S /E /DCOPY:DA /COPY:DAT /Z /MT:8 /R:2 /W:5 +net use \\\sites /delete +``` + +После cutover — `Remove-SmbShare -Name sites` + удалить FW rule. + +## Bootstrap-чеклист (порядок) + +1. RDP в RUVDS (3389 уже открыт, creds в `pass show ruvds-iis/full-env`). +2. `Install-WindowsFeature Web-Server -IncludeAllSubFeature -IncludeManagementTools` — установить IIS. +3. Verify .NET 4.8: `(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\').Release` ≥ 528040. Если нет — установить через RUVDS Server Manager (web) или offline-installer + RDP-drop. +4. Install URL Rewrite 2.1: download `https://download.microsoft.com/.../rewrite_amd64_en-US.msi`, `msiexec /i ... /quiet`. +5. Open FW 80/443: `New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80,443 -Action Allow`. +6. Open SMB rule (см. блок выше) — **только на время migration**. +7. Verify external connectivity: + - MSSQL: `Test-NetConnection mssql.kzntsv.site -Port 1433` + - MinIO: `Test-NetConnection minio.kzntsv.site -Port 443` (если CMS pipeline остаётся на windows-host — не нужно; см. [[iis-cutover-to-vds-services]] §MinIO phase) +8. Backup source IIS state с windows-recovery-host: + ```powershell + & "$env:SystemRoot\system32\inetsrv\appcmd.exe" list site -config > C:\Users\vitya\sites-backup.txt + Copy-Item C:\Windows\System32\inetsrv\config\applicationHost.config C:\Users\vitya\applicationHost.config.bak + ``` +9. Transfer 11 sites через robocopy/SMB (см. метод выше). +10. Recreate sites через `appcmd add site` или `New-IISSite`, копировать bindings. +11. Update Web.config conn-strings → `mssql.kzntsv.site,1433;TrustServerCertificate=True` (как в `[mssql-vds-migration]`). +12. Pilot на kupimknigi.spb.ru через hosts-file DNS override, 24h soak, потом DNS A swap. + +## Gotcha-fineprint + +- **2GB RAM tight:** IIS + 11 worker pools = легко уйдёт в paging. Рекомендую установить `IIS:\AppPools\ -RecyclingPeriodicRestartMemory 200MB` per-pool + monitor через `Get-Counter '\Process(w3wp*)\Working Set'`. +- **Windows Server 2025 Core нет explorer.exe:** drag-n-drop не работает в RDP без redirect drives — закладывай SMB или SFTP заранее. +- **LE certs:** если IIS будет terminate'ить TLS напрямую — `win-acme` (wacs.exe) standalone-friendly на Core. Альтернатива — traefik-on-RUVDS перед IIS, но это лишняя layer для 11 sites. +- **Backup strategy для RUVDS:** unsolved — RUVDS native snapshots = VDS-snapshot-level, не file-level. Daily rsync sites+IIS config → kreknin (расширить `vds-backup-rsync-kreknin` на источник RUVDS) — отдельная chore-task после успешного cutover. + +## Cross-refs + +- Driver для миграции: [[future-resilient-architecture-goals]] §Workshop pass 1 → IIS-track «вынести IIS с windows-recovery-host чтобы убрать SPOF домашней машины». +- Vendor selection: `.tasks/windows-hosting-vendor-research.md` (🟢 closed 2026-05-22 — RUVDS выбран). +- Mid-impl task: `.tasks/iis-migration-to-ruvds.md` (🟡 paused 2026-05-23 — этот концепт зафиксирован после failed-robocopy инцидента). +- Source-host postmortem: [[iis-migration-2026-05-19-postmortem]] — что было при первой миграции снолла-recovery → нативный IIS. diff --git a/.wiki/index.md b/.wiki/index.md index 0ed0230..68d8842 100644 --- a/.wiki/index.md +++ b/.wiki/index.md @@ -39,6 +39,7 @@ Catalog of all wiki pages. One line per page, organized by type. Updated on ever - [vbox-windows-stability-tuning](concepts/vbox-windows-stability-tuning.md) — VirtualBox + Windows-гость — нюансы стабильности cross-hypervisor миграции - [verdaccio-prune-semantics](concepts/verdaccio-prune-semantics.md) — Verdaccio prune semantics — proxied vs locally-published - [wd40efax-smr-cascade](concepts/wd40efax-smr-cascade.md) — WD40EFAX SMR Cascade — root cause NAS failure 2026-05-18 +- [windows-server-2025-core-bootstrap](concepts/windows-server-2025-core-bootstrap.md) — Win Server 2025 Core (RUVDS) — bootstrap для IIS-хоста: default-blockers + transfer-методов матрица ## Packages diff --git a/.wiki/log.md b/.wiki/log.md index c6c9ec0..4161e7e 100644 --- a/.wiki/log.md +++ b/.wiki/log.md @@ -17,3 +17,5 @@ Append-only log of wiki operations (ingests, promotions, lints, migrations). ## [2026-05-21] ingest | concepts/ocis-on-vds-deploy-recipe — oCIS deploy recipe + gotchas (UID mismatch, PROXY_TLS, PROXY_ENABLE_BASIC_AUTH, LibreGraph user-create); updated entities/vds-kzntsv (added owncloud row to stack/hostnames/file-layout); source: .tasks/owncloud-vds-deploy.md ## [2026-05-22] update | concepts/ocis-on-vds-deploy-recipe — Gotcha 5: 60s HTTP timeout caps slow-uplink uploads at ~200MB on 3 MiB/s link; traefik buffering NOT the fix (500 from oxy buffer); workaround = VDS-side curl PUT loopback via throwaway sftp key. Source: .tasks/owncloud-vds-deploy.md close-note. + +## [2026-05-23] ingest | concepts/windows-server-2025-core-bootstrap — default-blockers (SMB closed, IIS/URL-Rewrite/.NET unverified) + transfer-методов матрица (RDP-redirect / SMB / WinRM / SFTP); recommendation = SMB inbound с source-IP whitelist на время migration. Source: failed-robocopy инцидент 2026-05-23 18:08 (.tasks/iis-migration-to-ruvds.md Decisions log).