tasks(minio): clarify VDS imgproxy permanent home = imgproxy.vds.kzntsv.site

User confirmed imgproxy.kzntsv.site занят другим сервисом на другом сервере
(не наш scope). VDS imgproxy уже на imgproxy.vds.kzntsv.site (live).

CMS audit 2026-05-22 не нашёл refs на imgproxy/kzntsv/minio в:
- snolla source code (recursive grep)
- Admin/ templates
- bin/MoreThenCms.Modules.Imgproxy.dll strings (только namespace literal)
- MoreThenCms DB SiteSettings + ModuleProperties
- Public HTML rendering (всё relative /images/ + /themes/)

DLL deployed но не wired в active flow — vestigial или invoked через
Azure storage SDK (AccountName=snolla;AccountKey=... connection string
в snolla/Web.config — Azure-compat доступ к MinIO с неустановленным
endpoint). Identification реального consumer'а — отдельная audit-задача
перед source decommission.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-22 10:07:43 +03:00
parent e17e8eb1c3
commit 8a30696a45
2 changed files with 20 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
# Admin Task Board
_Updated: 2026-05-22 (MSSQL+MinIO миграция выполнена за одну сессию: MSSQL Express 2022 live на `mssql.kzntsv.site:1433` с 5 restored DBs, IIS snolla site cutover ✓ — 8 prod hosts 200 OK; MinIO stack live на VDS, 3 GiB / 19324 obj mirrored с upgrade 2020→2025 ✓ — ждёт DNS swap `imgproxy.kzntsv.site` от user. 3 wiki concepts ingested. 48ч soak до decommission source containers 2026-05-24.)_
_Updated: 2026-05-22 (MSSQL+MinIO миграция за одну сессию: MSSQL Express 2022 live на `mssql.kzntsv.site:1433` с 5 restored DBs, IIS snolla site cutover ✓ — 8 prod hosts 200 OK; MinIO stack live на VDS, 3 GiB / 19324 obj mirrored с upgrade 2020→2025 ✓; VDS imgproxy постоянно на `imgproxy.vds.kzntsv.site``imgproxy.kzntsv.site` занят другим сервисом на другом сервере, не наш scope. CMS audit показал 0 refs на imgproxy/kzntsv/minio в snolla source/templates/DLL/DB — wiring CMS→VDS imgproxy = отдельная задача после идентификации actual consumer. 3 wiki concepts ingested. 48ч soak до decommission source MSSQL 2026-05-24.)_
<!--
Status legend:
@@ -559,7 +559,7 @@ Original umbrella `.tasks/mssql-minio-migration-to-vds.md` сохранён дл
---
## 🟡 [minio-imgproxy-vds-migration] — Data layer DONE 2026-05-22 (3 GiB / 19324 obj mirrored, upgrade 2020→2025 ✓). **DNS swap `imgproxy.kzntsv.site` → VDS IP pending** (user action).
## 🟡 [minio-imgproxy-vds-migration] — Data layer DONE 2026-05-22 (3 GiB / 19324 obj mirrored, upgrade 2020→2025 ✓). **VDS stack permanently on `imgproxy.vds.kzntsv.site`** — `imgproxy.kzntsv.site` занят другим сервисом на другом сервере, не наш scope. Wiring CMS↔VDS imgproxy pending audit (CMS не нашли refs в текущем коде/DB).
**Where I stopped:** Stack live на VDS (`minio.vds.kzntsv.site` + `minio-console.vds.kzntsv.site` + `imgproxy.vds.kzntsv.site` traefik routes ✓). Все buckets mirrored с format compat 2020→2025 verified (mc mirror through S3 API, не сырое filesystem). CMS image URLs пока рендерятся через windows-host imgproxy (DNS `imgproxy.kzntsv.site` всё ещё на windows IP).
@@ -576,11 +576,10 @@ Original umbrella `.tasks/mssql-minio-migration-to-vds.md` сохранён дл
**Findings закреплены в** [`minio-imgproxy-on-vds`](../.wiki/concepts/minio-imgproxy-on-vds.md) §Gotchas: (1) MinIO upgrade 5y gap works via mc mirror (S3 API), не bind-swap (xl.meta format), (2) mc 2025 НЕ auto-creates buckets, (3) silent skip non-ASCII filename + slow uplink → verify по count, (4) IMGPROXY_KEY/SALT preserve обязательно (HMAC signed URLs), (5) MINIO_ROOT_USER/PASSWORD replace deprecated MINIO_ACCESS_KEY/SECRET — reuse same values.
**Next action для completion:**
1. User: REGRU DNS A-record `imgproxy.kzntsv.site` → 89.253.255.94 (TTL 300s)
2. После propagate: добавить router rule `imgproxy.kzntsv.site` в `/opt/stacks/storage/minio-imgproxy/docker-compose.yml` (label imgproxy-nginx сервиса) + `docker compose up -d`
3. LE cert auto-issued
4. Smoke: открыть любую CMS-страницу с картинками → должна рендерится через VDS imgproxy
5. 48ч soak → decommission windows-host containers
1. **Audit CMS image pipeline (NEW finding 2026-05-22):** грепы snolla source / Admin / DLL / DB SiteSettings + ModuleProperties не нашли НИ ОДНОЙ ссылки на `imgproxy.*` / `kzntsv` / `minio` / `localhost:9000`. Public HTML рендерится через relative `/images/` + `/themes/` (locally served IIS). `MoreThenCms.Modules.Imgproxy.dll` deployed но не wired в active flow — либо vestigial либо invoked dynamically через `Azure storage` connection string `AccountName=snolla;AccountKey=...` (Azure-style SDK против MinIO). **Кто реально читает source MinIO/imgproxy — не идентифицировано.** Перед decommission'ом source containers — нужно подтвердить через monitoring (logs windows-host MinIO в течение 24-48ч) что нет live тенанта.
2. Если есть live consumer (Azure SDK pattern): найти где `AccountName=snolla` connection string'и реально потребляются, переписать endpoint на VDS MinIO (`https://minio.vds.kzntsv.site`).
3. Backup pipeline integration в `/opt/stacks/backup/scripts/run.sh` (`minio_mirror` daily — rsync `/opt/stacks/storage/minio-imgproxy/data` → kreknin).
4. 48ч soak → decommission windows-host containers (см. iis-cutover decommission section).
**Backup pipeline TODO:** `minio_mirror` daily в `/opt/stacks/backup/scripts/run.sh` — rsync `/opt/stacks/storage/minio-imgproxy/data` → kreknin.
@@ -589,7 +588,7 @@ Original umbrella `.tasks/mssql-minio-migration-to-vds.md` сохранён дл
---
## 🟡 [iis-cutover-to-vds-services] — MSSQL cutover DONE 2026-05-22 (8 hosts 200 OK ✓). MinIO image-pipeline cutover ждёт DNS swap `imgproxy.kzntsv.site` (см. `minio-imgproxy-vds-migration`).
## 🟡 [iis-cutover-to-vds-services] — MSSQL cutover DONE 2026-05-22 (8 hosts 200 OK ✓). MinIO image-pipeline — нет обнаруженных CMS refs (см. audit в `minio-imgproxy-vds-migration` Next action); VDS imgproxy постоянный home = `imgproxy.vds.kzntsv.site`.
**MSSQL phase complete:**
- Audit: `C:\sites\snolla\Web.config` обслуживает 11 CMS hosts (snolla catch-all `*:8089`). Только 1 conn-string на MoreThenCms DB, login `snolla` (не sa).
@@ -600,10 +599,12 @@ Original umbrella `.tasks/mssql-minio-migration-to-vds.md` сохранён дл
- IIS auto-recycle на web.config touch (без iisreset).
- Smoke 8 priority hosts: emspb/snolla.com→on.snolla/pilorama98/labtools.ru/labtools.pro/www.tandemmebel/kupimknigi — **все 200 OK**, latency 0.3-3.1s (tandemmebel самый медленный — большая страница).
**MinIO image-pipeline phase (ждёт DNS swap):**
- В `web.config`'ах **нет** прямых refs `localhost:9000` / `localhost:8788` (URLs идут через `imgproxy.kzntsv.site` domain, не localhost).
- → Cutover image rendering = DNS A-record swap `imgproxy.kzntsv.site` → 89.253.255.94 (user action, см. [[minio-imgproxy-vds-migration]] Next action).
- Никакого web.config edit для MinIO/imgproxy не требуется — IMGPROXY_KEY/SALT preserved → existing CMS image URLs валидны на новом stack'е.
**MinIO image-pipeline phase (audit revealed нет обнаруженных refs):**
- В `web.config`'ах **нет** refs `localhost:9000` / `localhost:8788` / `imgproxy` / `kzntsv` / `minio`.
- В snolla source / Admin templates / DLL strings / DB SiteSettings + ModuleProperties — тоже 0 refs.
- Public HTML рендерится через relative `/images/` + `/themes/` (locally served IIS).
- **Возможный invocation path**: Azure storage SDK через `AccountName=snolla;AccountKey=...` connection string в snolla/Web.config — Azure-compat доступ к MinIO. Endpoint неизвестен (нужен grep кода Azure storage usage).
- **Decision:** VDS imgproxy остаётся постоянно на `imgproxy.vds.kzntsv.site` (`imgproxy.kzntsv.site` занят другим сервисом на другом сервере). При необходимости wiring CMS → VDS imgproxy будет отдельной задачей после идентификации actual consumer.
**48ч soak:** monitor через ntfy `vds-ops` + manual smoke 24h/48h marks. Source windows-host MSSQL container оставить running до 2026-05-24 для rollback.

View File

@@ -1,6 +1,6 @@
---
title: MinIO + imgproxy stack on vds-kzntsv
status: live (data-layer); DNS swap pending для imgproxy.kzntsv.site
status: live (data-layer); VDS imgproxy postoянно на imgproxy.vds.kzntsv.site (imgproxy.kzntsv.site занят другим сервисом, не наш scope)
tags: [vds, minio, imgproxy, migration, ops]
related: [[vds-kzntsv]], [[recovery-architecture-snapshot]], [[mssql-on-vds]]
---
@@ -78,14 +78,13 @@ done
4. **IMGPROXY_KEY + IMGPROXY_SALT preserve обязательно** — это HMAC signing для URLs. Если поменять, все pre-existing CMS image URLs (signed ссылки в шаблонах + кешированные в admin) ломаются. Reuse same values из source.
5. **MinIO root creds vs AWS-style**: source использует MINIO_ACCESS_KEY/MINIO_SECRET_KEY (deprecated env vars), новый MinIO — MINIO_ROOT_USER/MINIO_ROOT_PASSWORD. Reuse same values (no rotation в этой миграции) → CMS+imgproxy credentials не меняются. Rotation — отдельная hardening-таска.
## DNS swap (pending — user action)
## Domain decision
`imgproxy.kzntsv.site` сейчас A-record на windows-host IP. Чтобы переключить картинки на VDS:
1. REGRU: `imgproxy.kzntsv.site` A → 89.253.255.94 (TTL 300s).
2. Дождаться propagate (`Resolve-DnsName imgproxy.kzntsv.site`).
3. В `/opt/stacks/storage/minio-imgproxy/docker-compose.yml` для service `imgproxy-nginx` добавить router rule `imgproxy.kzntsv.site` рядом с existing `imgproxy.vds.kzntsv.site`.
4. `docker compose up -d` (apply labels).
5. LE cert auto-issued.
`imgproxy.kzntsv.site` **занят другим сервисом на другом сервере** (не наш scope, user confirmed 2026-05-22). VDS imgproxy постоянный home = `imgproxy.vds.kzntsv.site`.
CMS audit 2026-05-22 показал: snolla source / Admin templates / DLL strings / DB SiteSettings + ModuleProperties — НИ ОДНОЙ ссылки на imgproxy/kzntsv/minio/localhost:9000. Public HTML — relative `/images/` + `/themes/` (locally served IIS). `MoreThenCms.Modules.Imgproxy.dll` deployed but не wired в active flow (vestigial), либо invoked dynamically через Azure storage SDK (`AccountName=snolla;AccountKey=...` в snolla/Web.config — Azure-compat доступ).
Если в будущем CMS будет wired к VDS imgproxy — endpoint = `https://imgproxy.vds.kzntsv.site` (плюс update `IMGPROXY_S3_ENDPOINT` если нужно, но он уже internal через docker DNS = `http://minio:9000`).
## Rollback