Сайт потерян при decomm RUVDS 2026-07-21 (.NET MoreThenCms tenant, не был в v3 тираже). Восстановлен как Node snolla-app 0.43.2 на VDS: victor/maljarka.tandemmebel.ru @7f03d67, layout.liquid byte-identical рендеру локального .NET-admin (43730B, sha256 match), siteId A2476738, Reversal тема из MinIO. LE issued. Live smoke GREEN. - host-stacks/vds-kzntsv/maljarka.compose.yml (source-of-truth, stack 23) - .wiki/concepts/maljarka-vds-deploy-runbook.md (калька on-snolla runbook) - .tasks/STATUS.md + .wiki/index.md updated - тираж snolla теперь 7/7: labtools(17)/emspb(18)/labtools-pro(19)/tandemmebel(20)/kupimknigi(21)/on-snolla(22)/maljarka(23) Co-Authored-By: Claude <noreply@anthropic.com>
59 lines
4.0 KiB
YAML
59 lines
4.0 KiB
YAML
# maljarka — прод-лендинг maljarka.tandemmebel.ru (snolla-app, server-side Liquid, node) на vds-kzntsv (89.253.255.94).
|
||
#
|
||
# 7-й сайт тиража snolla на VDS. Source-of-truth этого compose — admin-репо; применяется через
|
||
# Portainer API/UI (VDS-rule: стеки через Portainer, не ssh+compose).
|
||
#
|
||
# Модель: монолит @snollajs/snolla (0.43.2) / aws-sdk v3 — читает БД-контент MoreThenCms
|
||
# (mssql.kzntsv.site) для siteId A2476738 + server-side Liquid render (Reversal тема 4881fc7f).
|
||
# Ассеты темы из MinIO (minio.vds.kzntsv.site) bucket `themes`. Лендинг: 1 published Page `/`
|
||
# (content пуст — вёрстка baked в layout.liquid, byte-identical рендеру .NET-admin) + 4 StaticPages.
|
||
#
|
||
# Образ собирается АДМИНОМ на VDS из victor/maljarka.tandemmebel.ru/deploy/Dockerfile (build-arg
|
||
# VERDACCIO_TOKEN, @snollajs/* из verdaccio.kzntsv.site). Тег = git-sha монорепы (текущий 7f03d67).
|
||
#
|
||
# Домен: LIVE — maljarka.tandemmebel.ru (cert LE HTTP-01, issued on first hit 2026-07-31).
|
||
# DNS = CNAME → tandemmebel.ru → 89.253.255.94 (на VDS с decomm RUVDS 2026-07-21).
|
||
# Сайт потерян при декоммишне RUVDS IIS (единственный публичный хост maljarka), восстановлен
|
||
# тиражом как Node snolla-app. RUVDS более не rollback-target (погашен у провайдера).
|
||
# Предыстория: жил на RUVDS IIS catch-all (80.64.31.36), 502-на-HTTPS пофикшен 2026-06-08
|
||
# (SettingsData httpSecure блок, [[morethencms-null-settingsdata-https-502]]).
|
||
#
|
||
# Runtime egress (наружу из proxy-сети): mssql.kzntsv.site:1433, minio.vds.kzntsv.site:443,
|
||
# smtp.yandex.ru:465. imgproxy НЕ нужен (in-process sharp serve-bytes).
|
||
#
|
||
# Секреты — env на VDS (Portainer stack env), НЕ в образ, НЕ в git. Значения ${...} инжектит
|
||
# Portainer из stack-переменных (переиспользованы verbatim из tandemmebel стека 20 — общая snolla-инфра). Контракт:
|
||
# DB_USER DB_PASSWORD IMGPROXY_KEY IMGPROXY_SALT S3_ACCESS_KEY_ID S3_SECRET_ACCESS_KEY SMTP_USER SMTP_PASSWORD
|
||
# siteId=A2476738-E26C-49D5-95AD-958F42DCCDD0 — non-secret, в production.json (не env). Culture ru-RU. siteUrl=https://maljarka.tandemmebel.ru
|
||
|
||
services:
|
||
maljarka:
|
||
container_name: maljarka
|
||
image: registry.kzntsv.site/maljarka:7f03d67 # git-sha victor/maljarka.tandemmebel.ru master 7f03d67 (snolla 0.43.2 / aws-sdk v3 — первый deploy 2026-07-31, 7-й сайт тиража; реконструкция Reversal-лендинга из MoreThenCms DB). rollback-теги: ведутся с этого deploy.
|
||
restart: unless-stopped
|
||
mem_limit: 512m # guardrail от runaway: snolla baseline ~100-200M; OOM в контейнере → restart:unless-stopped поднимет. standalone-compose → mem_limit (НЕ deploy.resources — то swarm-only).
|
||
environment:
|
||
NODE_ENV: production
|
||
TZ: Europe/Moscow
|
||
# PORT не переопределяем — образ дефолтит 5000 (EXPOSE 5000, healthcheck на $PORT)
|
||
# --- runtime-секреты (значения из Portainer stack env; НЕ хранить тут) ---
|
||
DB_USER: ${DB_USER}
|
||
DB_PASSWORD: ${DB_PASSWORD}
|
||
IMGPROXY_KEY: ${IMGPROXY_KEY}
|
||
IMGPROXY_SALT: ${IMGPROXY_SALT}
|
||
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID}
|
||
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY}
|
||
SMTP_USER: ${SMTP_USER}
|
||
SMTP_PASSWORD: ${SMTP_PASSWORD}
|
||
networks:
|
||
- proxy
|
||
labels:
|
||
traefik.enable: "true"
|
||
traefik.http.routers.maljarka.entrypoints: websecure
|
||
traefik.http.routers.maljarka.rule: Host(`maljarka.tandemmebel.ru`)
|
||
traefik.http.routers.maljarka.tls.certresolver: letsEncrypt
|
||
traefik.http.services.maljarka.loadbalancer.server.port: "5000"
|
||
|
||
networks:
|
||
proxy:
|
||
external: true |