docs(runbook): stostayer prod-config mount = truth for prod; node18 ipv4first gotcha; content-api incident
This commit is contained in:
@@ -89,6 +89,15 @@ grep -c "<expected-text>" /tmp/v.html
|
||||
```
|
||||
**Гоча verify-URL:** bare `/remont-kondicionerov` 301-редиректит на `/remont/remont-kondicionerov` (DB-driven `oldPageRedirect`/unit-slug mapping) — это CMS-контент-страница БЕЗ nuxt-компонента. Компоненты `pages/<dir>/*.vue` реально live на своих nuxt-маршрутах (напр. `/remont-kondicionerov/{zapravka,diagnostika}-kondicionera`) — верифицируй по ним, не по bare-URL.
|
||||
|
||||
**Прод-дрейф mount-конфига (2026-08-16, инцидент content-api):** хост монтирует
|
||||
`/var/docker/stostayer-web/config` → `/usr/src/app/packages/web/config` — это **источник истины
|
||||
для прод-конфига**. node-config читает из cwd (`packages/web/config`), т.е. репо-правки
|
||||
`packages/*/config/default.json` (напр. c43d168: `s3.region local → us-west-1`) на прод **не
|
||||
влияют** — образ подхватывает mount. После деплоя, меняющего конфиг: синхронизировать
|
||||
хост-конфиг (или осознанно задокументировать mount как truth). Нюанс node18: `localhost` →
|
||||
`::1` (IPv6-first) — в образе `NODE_OPTIONS=--dns-result-order=ipv4first` (MariaDB/MSSQL на
|
||||
хосте IPv4-only).
|
||||
|
||||
**Гоча локального smoke-контейнера:** `packages/web/config/default.json` содержит **прод-БД** (`www.stostayer.ru:3306` MariaDB + `:1433` MSSQL), и `www.stostayer.ru` резолвится в публичный IP хоста → smoke-контейнер без env-overrides **подключается к prod-БД клиента по интернету** (read-only SSR, без writes, но всё равно нежелательно). Для чистого локального smoke — переопределяй `data.sequelize.*.host` env'ом на localhost/заглушку, либо глуши контейнер сразу после `Server Listening`.
|
||||
|
||||
### Откат
|
||||
|
||||
Reference in New Issue
Block a user