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>
This commit is contained in:
45
host-stacks/vds-kzntsv/pilonuxt.compose.yml
Normal file
45
host-stacks/vds-kzntsv/pilonuxt.compose.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user