feat(tandemmebel): cutover LIVE on VDS — last snolla site migrated
DNS reg.ru flipped, traefik Host-rule staging->prod, LE cert issued. Live-smoke GREEN: all pages 200, sitemap 184 locs, sharp media OK. Gotham-Pro.css latent prod bug fixed by cutover (0B->4436B). Snolla 0.42.x tirazh now fully alive (5/5 stacks on VDS).
This commit is contained in:
@@ -1,54 +1,48 @@
|
||||
---
|
||||
_last_updated_: 2026-07-05T11:45:00Z
|
||||
session_id: 2026-07-05-snolla-tirazh-mem-limits
|
||||
_last_updated_: 2026-07-12T00:00:00Z
|
||||
session_id: 2026-07-12-tandemmebel-cutover-live
|
||||
---
|
||||
|
||||
# Next session handoff
|
||||
|
||||
## Итог сессии: метрики тиража snolla + mem_limit 512m всем 5 стекам
|
||||
## Итог сессии: tandemmebel.ru cutover → LIVE на VDS (тираж snolla 0.42.x закрыт полностью)
|
||||
|
||||
Начали со съёма health-метрик тиража (user: «не распухает ли память, не жрут ли ЦПУ»). Вывод: все snolla-сайты здоровы — CPU ~0.5% одного ядра в среднем, RAM 100–206 MB, нет reclaim-трэша / OOM-давления. На машину (13 GiB, 6 vCPU) влияние в пределах шума; главный едок RAM на боксе — `mssql` (2.1 GB).
|
||||
Финальный сайт тиража. Владелец флипанул DNS reg.ru → собрал контекст по вики/борду/рунбуку → cutover. Порядок из `snolla-live-prod-inplace-image-bump` / `[tandemmebel-web-vds-deploy]` соблюдён строго (LE-критичность):
|
||||
|
||||
**Нашёл дыру:** ни один snolla-стек не нёс `mem_limit` → cgroup-cap = вся память хоста (12.9 GiB). Течь в любом контейнере могла съесть весь бокс. По просьбе user'а выставил **`mem_limit: 512m`** всем пяти (env-preserving Portainer PUT, секреты вернул verbatim) + синхронизировал source-of-truth compose в репо.
|
||||
1. **Verify авторит.NS** — `nslookup tandemmebel.ru ns1/ns2.reg.ru` = оба `89.253.255.94` (apex + www), не только резолвер.
|
||||
2. **GET стек 20** — образ `tandemmebel:ed96b18` (0.42.0), env 8/8, rule staging `Host(tandemmebel.vds.kzntsv.site)`.
|
||||
3. **PUT стек 20** — `Host(tandemmebel.ru) || Host(www.tandemmebel.ru)`, env-preserving (name+value), `prune:false`, `pullImage:false`. Python urllib UTF-8 (НЕ PS Invoke-RestMethod — gotcha кириллицы). → 200.
|
||||
4. **Poll** — контейнер `healthy`, LE-серт issued on first hit: CN=tandemmebel.ru, SAN оба, issuer YR2, until 2026-10-10.
|
||||
5. **Live-smoke С VDS** — GREEN (см. STATUS top-line).
|
||||
6. Compose source-of-truth + борд обновлены.
|
||||
|
||||
| Стек | Id | limit | статус |
|
||||
|---|---|---|---|
|
||||
| labtools.ru | 17 | 512 MiB ✓ | healthy |
|
||||
| emspb | 18 | 512 MiB ✓ | healthy |
|
||||
| labtools.pro | 19 | 512 MiB ✓ | healthy (200 внешним smoke) |
|
||||
| tandemmebel | 20 | 512 MiB ✓ | healthy (ещё staging-хост) |
|
||||
| kupimknigi | 21 | 512 MiB ✓ | healthy |
|
||||
**Решение оператора:** бамп до 0.42.1 НЕ делаем — катим 0.42.0 как есть, без пересборки (образ уже стоял). Версии тиража разъехались: kupimknigi (21) + tandemmebel (20) на 0.42.0, три остальных на 0.42.1 (order-фикс) — принято.
|
||||
|
||||
Проверено: `ops.docker.stats` → `limit`=536870912 на всех. Пересоздание = секунды простоя, теги не поехали (`pullImage:false`).
|
||||
**Латентный прод-баг починен cutover'ом:** `Gotham-Pro.css` был 0B на RUVDS → теперь 200/4436B.
|
||||
|
||||
**Durable-правило закреплено** (user: «дальше не забывать выставлять лимиты»):
|
||||
- вики-канон [`portainer-stack-management-vds § Convention`](../.wiki/concepts/portainer-stack-management-vds.md) — app-стек обязан нести mem_limit;
|
||||
- [`snolla-live-prod-inplace-image-bump`](../.wiki/concepts/snolla-live-prod-inplace-image-bump.md) step 6 — пункт чеклиста;
|
||||
- авто-память `vds-app-stacks-need-mem-limit`.
|
||||
|
||||
## Recent commits
|
||||
- `9a92ff0b` chore(vds): mem_limit 512m всему тиражу snolla (5 стеков + compose + вики)
|
||||
- `3bc99923` meta(handoff): тираж 0.42.1 закрыт
|
||||
- `8e3e5b43` wiki(snolla-0.42.1): рецепт + 3 рунбука
|
||||
Rollback = revert DNS → 80.64.31.36 (RUVDS IIS жив, не тронут) ИЛИ PUT стека 20 назад на staging-host.
|
||||
|
||||
## Open треки
|
||||
| Трек | Готовность | Entry-point |
|
||||
|---|---|---|
|
||||
| **tandemmebel.ru cutover** (последний из тиража) | staging GREEN, стек 20 `tandemmebel:ed96b18` (0.42.0), mem_limit стоит, ждёт DNS | Триггер = **владелец флипает reg.ru `tandemmebel.ru`+www→89.253.255.94**. Порядок в STATUS.md-блоке `[tandemmebel-web-vds-deploy]`: verify авторит.NS → ТОЛЬКО ПОТОМ боевой `Host()` в стек 20 (LE-порядок критичен) → live-smoke (gallery-DoD 12/12). Если origin уехал — пересобрать HEAD, ре-DoD. К cutover можно сразу бампнуть до 0.42.1. |
|
||||
| **tandemmebel.ru cutover** | 🟢 **DONE 2026-07-12** — LIVE на VDS, см. итог сессии выше | — (закрыт) |
|
||||
| **0.42.1-бамп kupimknigi+tandemmebel** | ⚪ решено: НЕ делаем (оператор) — катим 0.42.0 | — (закрыт) |
|
||||
| morethencms-s3-filestorage-provider | 🟡 ждёт `.dll` от прога MoreThenCms | STATUS.md-блок |
|
||||
| fix-nl-vds-reality-pq-dest | 🟡 ждёт client-side (user меняет SNI) | STATUS.md-блок |
|
||||
| harden-books-vds-exposed-ports / kreknin-self-backup | ⚪ backlog | STATUS.md-блоки |
|
||||
|
||||
## Спроси user'а
|
||||
- **Версии тиража разъехались:** kupimknigi (21) + tandemmebel (20) на **0.42.0**, три остальных на **0.42.1** (order-фикс). Добампить оба до 0.42.1 для единого пина, или оставить? tandemmebel всё равно пересобирать к cutover — там сразу 0.42.1.
|
||||
- Опционально: поставить периодический снапшот RAM трёх свежих (17/18/19) на пару суток, чтобы поймать дрейф во времени (одним снимком течь за дни не доказать). Не просили — предложение висит.
|
||||
- Опционально: периодический снапшот RAM трёх свежих (17/18/19) на пару суток, чтобы поймать дрейф во времени (одним снимком течь за дни не доказать). Не просили — предложение висит.
|
||||
|
||||
## Не делать (preemptive guards)
|
||||
- **tandemmebel:** НЕ трогать стек 20 / НЕ вставлять боевой Host ДО подтверждённого DNS-флипа на **обоих** авторит.NS (иначе LE HTTP-01 упадёт на RUVDS → сожжём rate-limit). Флип делает владелец.
|
||||
- **RUVDS IIS 80.64.31.36** — НЕ декоммишн (rollback всех мигрированных). Биндинги labtools.ru/pro оставлены как rollback.
|
||||
- **RUVDS IIS 80.64.31.36** — НЕ декоммишн (rollback всех мигрированных). Биндинги оставлены как rollback, в т.ч. tandemmebel/labtools.ru/pro.
|
||||
- Новые app-стеки / правки существующих — **всегда с `mem_limit`** (см. вики-конвенцию), синхронно в Portainer И compose-копию.
|
||||
- Смоук snolla-доменов гнать **С VDS** (воркстейшн ловит LAN-DNS-перехват прод-доменов).
|
||||
|
||||
## Recent commits
|
||||
- _(этот коммит)_ feat(tandemmebel): cutover LIVE — traefik Host-rule staging→boevoy + compose/board/wiki
|
||||
- `9a92ff0b` chore(vds): mem_limit 512m всему тиражу snolla (5 стеков + compose + вики)
|
||||
- `3adbe839` meta(handoff): mem_limit 512m тираж snolla + durable-конвенция
|
||||
|
||||
## Memory updates за сессию
|
||||
- Новая: `vds-app-stacks-need-mem-limit` (durable-правило про лимиты).
|
||||
- Подтвердились: `ps51-iso8859-corrupts-portainer-stackfile` (обошёл PS-грабли, PUT слал UTF-8-байтами), `workstation-lan-dns-serves-local-cms-copy` (smoke через `--resolve`).
|
||||
- Подтвердились: `ps51-iso8859-corrupts-portainer-stackfile` (обошёл PS-грабли, PUT слал UTF-8-байтами через python urllib), `workstation-lan-dns-serves-local-cms-copy` (smoke гнал С VDS по SSH), `vds-app-stacks-need-mem-limit` (стек 20 уже нёс 512m, не трогал).
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Admin Task Board
|
||||
_Updated: 2026-07-12 — 🟢 **[tandemmebel-web-vds-deploy] CUTOVER COMPLETE — LIVE на VDS.** Владелец флипанул DNS reg.ru `tandemmebel.ru`+`www`→89.253.255.94 (verify авторит. ns1/ns2.reg.ru = оба 89.253.255.94, не только резолвер). LE-порядок соблюдён: DNS first → traefik `Host()`-rule staging→боевой на стеке 20 (env 8/8 preserve, `prune:false`, `pullImage:false` — образ `ed96b18`/0.42.0 не менялся, без пересборки по решению оператора). LE-серт issued on first hit: CN=tandemmebel.ru, SAN оба, issuer YR2, until 2026-10-10. Live-smoke С VDS GREEN: `/`+`/projects`+3×gallery (office/bedrooms/kids)→200, `/articles`→404 (parity benign#3, так и на RUVDS), sitemap **184 page-locs** (было 172 — рост от blog-archive фичей 0.42.0, benign), self-consistency 30/30 sample (только /articles 404 = тот же parity), sharp media `image/webp 200 35KB`, robots из БД (ADR-0009). **Латентный прод-баг починен cutover'ом:** Gotham-Pro.css был 0B на RUVDS → теперь 200/4436B (шрифт заголовков живой). Rollback = revert DNS→80.64.31.36 (RUVDS IIS жив, не тронут) ИЛИ PUT стека 20 назад на `tandemmebel.vds.kzntsv.site`. Compose source-of-truth обновлён. Тираж snolla 0.42.x теперь **полностью живой** (5/5 стеков на VDS)._
|
||||
_Updated: 2026-07-04 (8) — 🟢 **[tandemmebel-web-vds-deploy] gallery-дефект ЗАКРЫТ на staging — GREEN.** Workshop прислал коррекцию sha → ребилд на `b02ca18` (core 0.16.2, SlugFeedPage-fix). Собрал `tandemmebel:b02ca18` (digest f8672218), передеплой стека 20 (env 8/8, healthy). DoD-чек **12/12 GREEN**: gallery-грид staging == prod ТОЧНО на всех роутах (bedrooms 80/80, kids 138/138, office 26/26 и т.д.). Крошки наполнены (`Главная/Мебель/Галерея идей`, были пустые), title полный (`Фото Офисная мебель…`), байты 28508≈прод 28253. Я флагал сомнение (мой DB-дамп показал: `/gallery` — конвенционный саб-роут, а не feed; SlugFeedPage-fix мог промахнуться) — но жёсткий рендер-чек показал GREEN, фикс сработал. **Cutover ОТЛОЖЕН оператором (не забыть!) — триггер запуска = владелец сайта меняет DNS reg.ru→89.253.255.94**, тогда verify авторит.NS→боевой Host в стек 20→live-smoke (порядок в [[NEXT_SESSION.md]]). Прогеру после разноса от оператора отправлен рабочий green-хендофф на свип 188 URL. RUVDS=rollback._
|
||||
_Updated: 2026-07-04 (7) — 🔵 **[tandemmebel-web-vds-deploy] дефект идентифицирован = gallery FeedPages-VM.** Workshop прислал ops-таск: ребилд стека 20 на `a173401` (FeedPages page-type портирован, чинит gallery 404→200). Гейт green (origin HEAD=a173401 ⊇ a173401+22bd8f2), собрал `tandemmebel:a173401` (snolla 0.35.0/core 0.16.0/data 0.13.0, digest 6962bd97), передеплоил стек 20 (Portainer API, env 8/8, healthy). Роутинг чинится: 12/12 furniture gallery-роутов 404→200. **НО рендер-чек RED — grid ПУСТОЙ на всех роутах** (staging `/galleries/*/images` = 0 vs prod 24/80/62) + **breadcrumb-подписи пустые** (`itemprop=name` без текста). Оба симптома = один корень: FeedPage-VM не прокидывает `item` в шаблон. Оператор дефект подтвердил независимо. Мой деплой чист; фикс на прогере (tandemmebel.ru). Пропинговал прогера с уликами (empty-grid + breadcrumb addendum) → ждёт новый sha, прогоню тот же DoD (staging_imgs==prod_imgs + непустые крошки). Cutover HELD. См. [[NEXT_SESSION.md]]._
|
||||
_Updated: 2026-07-04 (6) — 🔵 **[tandemmebel-web-vds-deploy] BLOCKED на новом дефекте.** Дал оператору staging-URL (https://tandemmebel.vds.kzntsv.site) на визуальную проверку sharp-сборки → оператор нашёл НОВЫЙ дефект (иной, чем прошлые глиф/imgproxy), специфику не назвал, «чиним в новой сессии». Cutover HELD. Мои автоматические гейты по sharp-staging были green (media/watermark/variant-cache/parity) — значит дефект визуальный, не пойманный curl-смоком. Sharp-staging жив на стеке 20 для разбора в новой сессии. См. [[NEXT_SESSION.md]]._
|
||||
@@ -1180,7 +1181,7 @@ curl -sI 'https://imgproxy.kzntsv.site/nlXN7RMrer11Fe9XPQaXmq4H0ufzPpo2fOzBWtaL0
|
||||
|
||||
---
|
||||
|
||||
## 🟡 [tandemmebel-web-vds-deploy] — STAGING GREEN, ждёт cutover (DNS gated оператором). **⚠️ ОБРАЗ К ФЛИПУ ОБНОВЛЁН → `tandemmebel:ed96b18` (snolla 0.42.0/core 0.24.0/data 0.14.1, digest `ca4da79`), СУПЕРСИДИТ b02ca18/0facb35** — раскатан на стек 20 задачей [tandemmebel-deploy-snolla-0-42-0] (2026-07-04, DoD 172/172 sitemap + 12/12 gallery-grid GREEN). Cutover = тот же DNS-gated шаг: владелец флипает reg.ru `tandemmebel.ru`+`www`→89.253.255.94 → verify авторит.NS (`Resolve-DnsName -Server ns1.reg.ru`) → ТОЛЬКО ПОТОМ боевой `Host()` в стек 20 (порядок критичен: LE HTTP-01) → live-smoke. RUVDS 80.64.31.36 = rollback (revert DNS), не тронут. Sharp media in-process (imgproxy из tandem-пути убран — прошлые imgproxy-заметки ниже historical). Историческая спека (0facb35/imgproxy-watermark) ниже — HISTORICAL, не актуальна. Smoke с VDS: status-parity 10/10, sitemap staging⊇prod (prod-only=0, +12 /projects/categories/* benign#3), trailing 301/301, blog-post 200 (+3.5KB=benign#2 imgproxy vs /galleries/), 2012-посты 31/31, theme 21/22 MD5-OK. Находка (не блокер): prod Gotham-Pro.css=0B (пустой), staging=4436B корректный → cutover чинит латентный прод-баг шрифта. Следующее: отмашка оператора на DNS → verify авторит.NS → боевой Host-rule в стек 20.
|
||||
## 🟢 [tandemmebel-web-vds-deploy] — **CLOSED 2026-07-12 — CUTOVER LIVE на VDS.** Владелец флипанул DNS reg.ru `tandemmebel.ru`+`www`→89.253.255.94 (verify ns1/ns2.reg.ru оба 89.253.255.94). LE-порядок соблюдён: DNS first → traefik `Host()` staging→боевой на стеке 20 (env 8/8 preserve, `prune:false`, `pullImage:false` — образ `ed96b18`/0.42.0 не менялся, без пересборки по решению оператора). LE-серт issued on first hit: CN=tandemmebel.ru, SAN оба, until 2026-10-10. Live-smoke С VDS GREEN: `/`+`/projects`+3×gallery→200, `/articles`→404 (parity benign#3), sitemap **184 page-locs** (рост от blog-archive 0.42.0, benign), self-consistency 30/30 sample, sharp media webp 200, robots из БД (ADR-0009). **Gotham-Pro.css 0B→200/4436B** — латентный прод-баг починен cutover'ом. Rollback = revert DNS→80.64.31.36 (RUVDS жив) ИЛИ PUT стека назад на staging-host. Compose/board/wiki обновлены. **Тираж snolla 0.42.x теперь полностью живой (5/5 стеков на VDS).**
|
||||
|
||||
<!-- HISTORICAL spec preserved below -->
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ updated: 2026-06-11
|
||||
- 🗑️ `emspb.ru` / `www.emspb.ru` — **декоммишн 2026-07-02**: миграция на [[../entities/vds-kzntsv]] подтверждена оператором (off-LAN проверка с IIS-хоста: оба → 89.253.255.94 HTTP 200), SNI-биндинги сняты. Backup конфига `pre-emspb-decommission-2026-07-02`. `emspb.snolla.com` **оставлен** (НЕ мигрирован, DNS всё ещё → IIS). Rollback = re-add 2 биндингов (cert в store) или `Restore-WebConfiguration`.
|
||||
- ✅ `kupimknigi.spb.ru` — DNS flipped 2026-05-24 ~00:00 (pilot)
|
||||
- ⏳ 22 more in queue (`pilorama98.ru`/www, `labtools.ru`/www, `labtools.pro`/www, 12× `*.snolla.com`, `rimiz.ru`/www, `maljarka.tandemmebel.ru`, etc.) — pending DNS TTL drop в reg.ru (TTL=86400 пока)
|
||||
- ⛔ `tandemmebel.ru` / `www.tandemmebel.ru` — scope-narrowed 2026-05-24, остаются на windows-IIS на неопределённый срок
|
||||
- 🗑️ `tandemmebel.ru` / `www.tandemmebel.ru` — **cutover VDS 2026-07-12**: DNS reg.ru → 89.253.255.94, traefik Host-rule flipped, LE-серт issued. RUVDS IIS биндинги оставлены как rollback (не декоммишн).
|
||||
|
||||
**Degraded (CMS-side, не migration defect):** `rimiz.ru`/www, `rimiz.snolla.com` — возвращают 502/404 (pre-existing dead-routes от [[../sources/iis-host-migration-2026-05-19]] cleanup; на source IIS:8089 тоже не работают).
|
||||
- ✅ `maljarka.tandemmebel.ru` — **пофикшен 2026-06-08**: 502-на-HTTPS был из-за `Sites.SettingsData=NULL` (нет блока `httpSecure`) → `KeyNotFoundException` в MoreThenCms. Корень + fix: [[../concepts/morethencms-null-settingsdata-https-502]]. rimiz — **другая** причина (его `SettingsData` заполнен).
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
Append-only log of wiki operations (ingests, promotions, lints, migrations).
|
||||
|
||||
## [2026-07-12] deploy | tandemmebel.ru cutover LIVE — последний из тиража snolla 0.42.x. DNS reg.ru `tandemmebel.ru`+`www`→89.253.255.94 (verify ns1/ns2.reg.ru оба), traefik Host-rule staging→боевой на стеке 20 (env 8/8 preserve, prune:false, pullImage:false — образ `ed96b18`/0.42.0 не менялся, без пересборки по решению оператора). LE-серт issued on first hit: CN=tandemmebel.ru, SAN оба, until 2026-10-10. Live-smoke С VDS GREEN: key pages 200, sitemap 184 page-locs, sharp media webp 200, robots из БД. Gotham-Pro.css 0B→4436B (латентный прод-баг починен). Rollback = revert DNS→80.64.31.36 ИЛИ PUT staging-host. UPDATE entities/ruvds-iis-host (tandemmebel→🗑️ cutover VDS, биндинги оставлены как rollback) + host-stacks/vds-kzntsv/tandemmebel.compose.yml (rule боевой, заголовок live). **Тираж snolla 0.42.x полностью живой (5/5 стеков на VDS).**
|
||||
|
||||
## [2026-07-03] ingest | NEW concepts/snolla-admin-appdata-acl-500-after-scp-migration — разведка «почему `/admin/assets/<owner>/delete` → 500» на RUVDS IIS. Корень: app pool `IIS AppPool\snolla` (ApplicationPoolIdentity) имел на `C:\sites\snolla\App_Data` только `(RX)` после scp-миграции 23.05 → `File.Delete` в `AssetsService.DeleteAsset` кидает UnauthorizedAccessException → необработанное 500 (event log пуст, IIS substatus 0/win32 0). NRE-версии исключены проверкой строк в БД (Folders root + Files). Fix: `icacls App_Data /grant "IIS AppPool\snolla:(OI)(CI)(M)" /T` (44293 файла, verified `(I)(M)` на таргете). Класс шире delete — все Local-записи из админки (upload/кэши/галереи). Также: заменён `labtools-price.pdf` (owner d375c419) в ОБА хранилища (MinIO `assets/…` ETag→6426ddd0 + локалка IIS, MD5 сверены). Split-brain админка(Local)↔боевой app(MinIO) — cross-ref [[concepts/galleries-storage-class-local-not-s3]].
|
||||
|
||||
## [2026-06-29] deploy | pilonuxt `cf2bba2` LIVE (стек 16) — ADR-0010: формы переехали с monolith `@snollajs/snolla` на `@snollajs/forms-api`, snolla **дропнут целиком**, core@0.1.1 (Buffer вместо btoa). Тот же build-пайплайн (форс-регенерация клиента + save|ssh load + push с VDS). **Новый обязательный шаг — tree-check `.output/server/node_modules` ПЕРЕД перекатом** (вся сага content-api↔snolla про dual-instance, dev маскирует unmet-deps): `docker run --rm --entrypoint sh <img> -c 'find /app/.output/server/node_modules ...'` → подтвердил 0× snolla, 0× btoa, ровно 1× data@0.9.1, core 0.1.1 + content-api 0.14 + forms-api 0.1.0. Smoke: SSR `/`+`/catalog`→200 (= btoa/snolla-дроп бандл не сломал), robots/yandex из БД (ADR-0009 не регресс), форма `POST /snolla-forms/forms?path=/checkout` пустой→422 JSON (valid НЕ слал — реальное письмо менеджеру), `/nope`→404. **Гоча smoke-харнеса:** forms-api отдаёт 422 только при `Accept: application/json` (иначе `prefersJson(req)` false → ветка `res.status(result.status||404).end()` даёт 404 — это не баг приложения, а отсутствие Accept в curl). Источник: наряд [deploy-pilonuxt-forms-api-drop-snolla]. См. [[concepts/portainer-stack-management-vds]] § Stack redeploy.
|
||||
|
||||
@@ -13,10 +13,12 @@
|
||||
# Образ собирается АДМИНОМ на VDS из victor/tandemmebel.ru/deploy/Dockerfile (build-arg VERDACCIO_TOKEN,
|
||||
# @snollajs/* из verdaccio.kzntsv.site). Тег = git-sha монорепы tandemmebel.ru (ed96b18).
|
||||
#
|
||||
# Домен: STAGING — tandemmebel.vds.kzntsv.site (под wildcard *.vds.kzntsv.site, cert LE HTTP-01 авто).
|
||||
# Cutover live tandemmebel.ru/www.tandemmebel.ru — ОТДЕЛЬНЫЙ gated шаг: бой живой на RUVDS IIS, НЕ выводить.
|
||||
# DNS переключает ОПЕРАТОР. План отката = revert DNS → 80.64.31.36.
|
||||
# ⚠️ Host-правило боевых хостов добавлять ТОЛЬКО ПОСЛЕ flip DNS (иначе LE HTTP-01 упадёт на RUVDS → rate-limit).
|
||||
# Домен: LIVE — tandemmebel.ru / www.tandemmebel.ru (cert LE HTTP-01, SAN оба, issued 2026-07-12).
|
||||
# Cutover завершён 2026-07-12: DNS reg.ru → 89.253.255.94 подтверждён на ns1/ns2.reg.ru →
|
||||
# traefik Host-rule staging→боевой (LE-порядок соблюдён), LE-серт issued on first hit.
|
||||
# Предыстория: жил на RUVDS IIS (80.64.31.36) до 2026-07-12.
|
||||
# План отката = revert DNS → 80.64.31.36 (RUVDS IIS жив, не тронут) ИЛИ PUT стека назад на
|
||||
# Host(`tandemmebel.vds.kzntsv.site`). Образ ed96b18 в registry + b02ca18 (rollback-тег) тоже.
|
||||
#
|
||||
# Runtime egress (наружу из proxy-сети): mssql.kzntsv.site:1433, minio.kzntsv.site:443
|
||||
# (оригиналы + запись вариантов в bucket variant-cache), smtp.yandex.ru:465. imgproxy НЕ нужен (sharp in-process).
|
||||
@@ -50,9 +52,8 @@ services:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.tandemmebel.entrypoints: websecure
|
||||
# STAGING-RULE. Cutover: после flip DNS сменить на Host(`tandemmebel.ru`) || Host(`www.tandemmebel.ru`)
|
||||
# и убрать staging-хост. RUVDS IIS 80.64.31.36 — rollback, не тронут.
|
||||
traefik.http.routers.tandemmebel.rule: Host(`tandemmebel.vds.kzntsv.site`)
|
||||
# LIVE (cutover 2026-07-12). Rollback = Host(`tandemmebel.vds.kzntsv.site`) + revert DNS → 80.64.31.36.
|
||||
traefik.http.routers.tandemmebel.rule: Host(`tandemmebel.ru`) || Host(`www.tandemmebel.ru`)
|
||||
traefik.http.routers.tandemmebel.tls.certresolver: letsEncrypt
|
||||
traefik.http.services.tandemmebel.loadbalancer.server.port: "5000"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user