Files
admin/host-stacks/vds-kzntsv/maljarka.compose.yml

59 lines
4.0 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:4aaa175 # 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