3 Commits

Author SHA1 Message Date
9a92ff0b87 chore(vds): mem_limit 512m всему тиражу snolla (5 стеков live + compose-копии + вики-конвенция)
Тираж snolla (labtools.ru/17, emspb/18, labtools.pro/19, tandemmebel/20,
kupimknigi/21) шёл без mem_limit → cgroup-cap = вся память хоста (12.9 GiB),
одна течь могла съесть весь бокс. Выставил 512m (baseline ~100-200M, 2.5-5x запас)
на всех 5 живых стеках через env-preserving Portainer PUT + синхронизировал
source-of-truth compose. Все healthy, limit=536870912 подтверждён, labtools.pro 200.

Конвенция «app-стек обязан нести mem_limit» закреплена в
portainer-stack-management-vds § Convention + step 6 snolla-bump-рецепта.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 14:32:55 +03:00
78f23a6561 cutover(kupimknigi): LIVE на VDS — DNS reg.ru→89.253.255.94, боевой Host в стек 21, LE-серт GREEN
Оператор флипнул DNS, подтверждён на ns1+ns2.reg.ru. Боевой Host(kupimknigi.spb.ru)
в стек 21 (staging-host убран), LE-серт CN=kupimknigi.spb.ru valid Jul5→Oct3.
Live-smoke GREEN: /→200 H1, robots/тема-css 200, callback 301. RUVDS=rollback.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 10:50:35 +03:00
84f4852f7f deploy(kupimknigi): staging стек 21 (новый) → 9608ff6 (snolla 0.42.0) — smoke GREEN, паритет prod
[kupimknigi-deploy-snolla-0-42-0] 🟢 done. Собран на VDS, Portainer-стек 21 создан
(env verbatim из стека 20), контейнер healthy. Staging-smoke с VDS: / 200==prod,
H1 идентичен, тема-ассеты 200, форма+canonical паритет. Cutover=operator-gated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 10:31:33 +03:00