Port :8089/:4443 утечка в admin URLs закрыта. URL Rewrite 2.1 + apphost
allowedServerVariables (HTTPS/SERVER_PORT/SERVER_PORT_SECURE) + Web.config rule
на X-Forwarded-Proto=https → set SERVER_PORT=443/SERVER_PORT_SECURE=1/HTTPS=on
ДО того как ASP.NET читает их в Url.SiteRoot(). Лечит все 11 cms (общий site
snolla). Path B (traefik http entrypoint :80→:8090) abandoned — Docker Desktop
WSL2 NAT quirk на host.docker.internal:80 возвращает 17-byte 301 plain text
независимо от traefik internals. Quirk не reproducible на Linux Docker (synology).
Side regression: pre-existing customErrors mode="off" lowercase в Web.config
пробудился после ASP.NET full-reload (мой rewrite-block edit) — fixed (Off).
Outside scope, open: emspb.snolla.com /admin/assets/<guid>/getList → 500 NullRef
в AssetsJsonViewModelBuilder.cs:22 (model null от GetFolderByPath). User
подтвердил «только этот site». Зафиксировано в snapshot open issue #8.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Port :8089/:4443 утечка в admin URLs закрыта. URL Rewrite 2.1 + apphost
allowedServerVariables (HTTPS/SERVER_PORT/SERVER_PORT_SECURE) + Web.config rule
на X-Forwarded-Proto=https → set SERVER_PORT=443/SERVER_PORT_SECURE=1/HTTPS=on
ДО того как ASP.NET читает их в Url.SiteRoot(). Лечит все 11 cms (общий site
snolla). Path B (traefik http entrypoint :80→:8090) abandoned — Docker Desktop
WSL2 NAT quirk на host.docker.internal:80 возвращает 17-byte 301 plain text
независимо от traefik internals. Quirk не reproducible на Linux Docker (synology).
Side regression: pre-existing customErrors mode="off" lowercase в Web.config
пробудился после ASP.NET full-reload (мой rewrite-block edit) — fixed (Off).
Outside scope, open: emspb.snolla.com /admin/assets/<guid>/getList → 500 NullRef
в AssetsJsonViewModelBuilder.cs:22 (model null от GetFolderByPath). User
подтвердил «только этот site». Зафиксировано в snapshot open issue #8.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Rusonyx 160 NVMe заказан 2026-05-19 (6 vCPU / 8GB RAM / 160GB NVMe / Ubuntu 24.04, без ispmanager/CMS/VPS Backup, 1 IPv4). Ждём выделение IP.
OS resolved: Ubuntu 24.04 LTS (поддержка до апреля 2029, docker official APT flow, mainstream community для docker workload). Debian 12 отвергнут — не даёт material выгоды при 8GB RAM.
160 SSD → 160 NVMe — Rusonyx апгрейд storage по той же цене, IOPS выше.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
After NAS incident 2026-05-18 — план вынести инфраструктурные сервисы (gitea/verdaccio/seafile/registry/hermes) с kreknin Synology на облачный VDS Rusonyx 160 SSD (2500 ₽/мес, 6 vCPU / 8GB RAM / 160GB SSD).
Размеры с kreknin /volume1/docker/*: gitea 2.6G, verdaccio 8.5G (prune до ~3G), owncloud → replace with seafile ~30-40G, registry 99G (GC до ~5-15G), hermes 10G (Nous Research agent self-host, LLM external).
Tier-decision history записана в Decisions log: 160 → 80+addon → 160 final (user choice: operational simplicity over 6k₽/год экономии).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Status: done (false) -> paused (true). Миграция была сделана,
сломала prod (Docker port-loop), откатили. Артефакты на хосте
остались inert для следующей попытки.
- STATUS: 🟢 done -> 🟡 paused с детальным where-I-stopped
- iis-on-host-migration: Phase 9 rollback задокументирован, что
НЕ делать в следующей попытке (cross-ref на post-mortem)
- NEXT-SESSION-PROMPT: переписан для retry-сценария — обязательное
чтение post-mortem перед началом, recipe из 5 пунктов
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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>
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>
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>
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>
New source page documenting migration of MoreThenCms.Web from
snolla-recovery VM to native host IIS. Updates:
- recovery-architecture-snapshot: new chain (traefik -> host:80) +
secondary chain for stostayer still on VM
- snolla-recovery-vm: demoted, IdentityManager port fix (8089 not 80),
sub-apps detailed
- windows-recovery-host: 3 native IIS sites + C:\sites\, C:\stayer\
- log.md: ingest + decision entries
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New source page documenting migration of MoreThenCms.Web from
snolla-recovery VM to native host IIS. Updates:
- recovery-architecture-snapshot: new chain (traefik -> host:80) +
secondary chain for stostayer still on VM
- snolla-recovery-vm: demoted, IdentityManager port fix (8089 not 80),
sub-apps detailed
- windows-recovery-host: 3 native IIS sites + C:\sites\, C:\stayer\
- log.md: ingest + decision entries
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New source page documenting migration of MoreThenCms.Web from
snolla-recovery VM to native host IIS. Updates:
- recovery-architecture-snapshot: new chain (traefik -> host:80) +
secondary chain for stostayer still on VM
- snolla-recovery-vm: demoted, IdentityManager port fix (8089 not 80),
sub-apps detailed
- windows-recovery-host: 3 native IIS sites + C:\sites\, C:\stayer\
- log.md: ingest + decision entries
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes nas-recovery (status done in STATUS.md), opens
iis-on-host-migration as the next active task: migrate IIS sites
from VirtualBox VM to native Windows host IIS to eliminate VBox
as a stability layer.
NEXT-SESSION-PROMPT.md is the kickoff brief for the next
conversation — context, what to read, guardrails.
Note: no push possible until gitea recovery (it was on the
dead synology; backup of /docker/gitea/ exists on kreknin
synology but not yet restored).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bootstrapped via project-bootstrap@1.11.0:
- .wiki/ (Karpathy LLM Wiki canon) via setup-wiki@1.0.0
- .tasks/ (canonical board) via setup-tasks@1.0.0
- CLAUDE.md with skill triggers
- README.md starter
- .gitignore: meta-isolation block for AI обвеска
Bootstrapped via project-bootstrap@1.11.0:
- .wiki/ (Karpathy LLM Wiki canon) via setup-wiki@1.0.0
- .tasks/ (canonical board) via setup-tasks@1.0.0
- CLAUDE.md with skill triggers
- README.md starter
- .gitignore: meta-isolation block for AI обвеска
Bootstrapped via project-bootstrap@1.11.0:
- .wiki/ (Karpathy LLM Wiki canon) via setup-wiki@1.0.0
- .tasks/ (canonical board) via setup-tasks@1.0.0
- CLAUDE.md with skill triggers
- README.md starter
- .gitignore: meta-isolation block for AI обвеска