Files
admin/host-stacks/vds-kzntsv/pilonuxt.compose.yml
vitya 38e84ce20b feat(deploy): add pilonuxt VDS Portainer stack compose; block on pilonuxt Dockerfile fix
pilonuxt deploy на vds-kzntsv за Traefik. Compose готов (proxy net,
websecure, certresolver letsEncrypt, Host pilonuxt.vds.kzntsv.site, :3000,
GTM погашен на smoke-поддомене). Домен согласован с vitya: temp-поддомен
для smoke, cutover www.pilorama98.ru — отдельным шагом.

Сборка диагностирована, образ НЕ собран — Dockerfile pilonuxt падает в
чистом контейнере (локально замаскировано глоб. yarnrc + сетью):
  1. .yarnrc.yml без npmAlwaysAuth:true → YN0041 anonymous (whoami=vitya).
  2. Dockerfile не копирует scripts/+src/generated до yarn install →
     postinstall Cannot find module scripts/ensure-schema.mjs (YN0009).
По решению vitya сборка отдана pilonuxt (их репо/фикс), за admin — Portainer.
Inbox victor/pilonuxt отправлен с разбором. Задача 🔵 blocked до образа.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 22:01:48 +03:00

46 lines
2.3 KiB
YAML
Raw 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.
# pilonuxt — prod-фронт ПИЛОРАМА98 (Nuxt 4 / Nitro node-server) на vds-kzntsv (89.253.255.94).
#
# Деплой: Portainer-стек за Traefik. Source-of-truth этого compose — admin-репо;
# применяется через Portainer API/UI (VDS-rule: стеки через Portainer, не ssh+compose).
#
# Образ собирается на workstation (build secret VERDACCIO_TOKEN, живой JWT) и
# пушится в registry.kzntsv.site. Тег = git-sha pilonuxt master.
#
# Домен: на smoke-фазе — временный поддомен pilonuxt.vds.kzntsv.site (под wildcard
# *.vds.kzntsv.site, cert LE HTTP-01 авто). Cutover www.pilorama98.ru — отдельным
# шагом после зелёного smoke (правка rule + DNS reg.ru).
#
# Runtime egress (наружу из proxy-сети, по умолчанию открыт):
# mssql.kzntsv.site:1433 (живые CMS-запросы, cacheTimeout=0) — обязателен;
# smtp.yandex.ru:465 (письма форм contacts/checkout);
# собственный origin https://pilonuxt.vds.kzntsv.site (SSR self-call на /snolla).
#
# Секреты (MSSQL/SMTP/imgproxy key+salt/siteId) ЗАПЕЧЕНЫ в config/default.json образа
# (решение vitya — образ только в приватном registry). Env-override не настраивали.
services:
pilonuxt:
container_name: pilonuxt
image: registry.kzntsv.site/pilonuxt:238a820
restart: unless-stopped
environment:
NODE_ENV: production
TZ: Europe/Moscow
NITRO_HOST: 0.0.0.0
NITRO_PORT: "3000"
# Smoke на временном поддомене — гасим боевую аналитику, чтобы не лить
# тестовый трафик в GTM-MNNXFJ6. На cutover вернуть дефолт (убрать строку).
NUXT_PUBLIC_GTM_ID: ""
networks:
- proxy
labels:
traefik.enable: "true"
traefik.http.routers.pilonuxt.entrypoints: websecure
traefik.http.routers.pilonuxt.rule: Host(`pilonuxt.vds.kzntsv.site`)
traefik.http.routers.pilonuxt.tls.certresolver: letsEncrypt
traefik.http.services.pilonuxt.loadbalancer.server.port: "3000"
networks:
proxy:
external: true