Files
va-aspekter/DOCKER-DEPLOY.md
Sergey Zotov c090bfcf47 Initial commit — Aspekter VA email builder
Full project: Svelte 5 frontend, Vite 7 backend API,
Pug email templates (email-gen), Docker deployment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 01:21:00 +05:00

3.1 KiB
Raw Blame History

Docker deploy: z51-pug-builder + email-gen

Что есть

  • docker-compose.yml — локальный/дев запуск (builder на localhost:5173)
  • docker-compose.prod.yml — прод запуск через nginx

Сервисы:

  • builder — Svelte-конструктор + локальный API (/api/*)
  • email-gen-api — мост к email-gen (рендер PUG -> HTML)
  • nginx (только в prod compose) — входная точка на 80 порту

1) Локальный запуск (dev)

cd /Users/sergeyzotov/Documents/GENERATOR_Z51
docker compose up -d --build
docker compose ps

Открыть: http://localhost:5173

Остановить:

docker compose down

2) Прод запуск (nginx + docker)

  1. Подготовь env:
cd /Users/sergeyzotov/Documents/GENERATOR_Z51
cp .env.prod.example .env
  1. Запусти:
docker compose -f docker-compose.prod.yml up -d --build
  1. Проверка:
docker compose -f docker-compose.prod.yml ps

Открыть: http://<VPS_IP> (или домен, если DNS уже настроен).

Остановить:

docker compose -f docker-compose.prod.yml down

3) Как работает генерация HTML

  1. В конструкторе собирается PUG.
  2. Нажимаешь Превью -> Обновить.
  3. Builder вызывает POST /api/project/:name/render-email.
  4. Запрос уходит в email-gen-api.
  5. email-gen-api:
    • пишет PUG в email-gen/emails/<project>/letters/let.pug
    • запускает gulp pug --project <project>
    • читает email-gen/public/index.html
    • возвращает HTML обратно в конструктор.

Важно: в Настройки -> Текущий проект заполняй поле Папка проекта в email-gen (например numizmat).


4) Обновление email-gen без ручной пересборки всего

Скрипт:

./deploy/scripts/update-email-gen.sh

Или с веткой:

./deploy/scripts/update-email-gen.sh main

Что делает скрипт:

  • git fetch/git pull --ff-only в email-gen
  • пересобирает и перезапускает только email-gen-api контейнер

Это удобно, если email-gen обновляется через git и перезаписывается.


5) Логи

Prod:

docker compose -f docker-compose.prod.yml logs -f nginx
docker compose -f docker-compose.prod.yml logs -f builder
docker compose -f docker-compose.prod.yml logs -f email-gen-api

Dev:

docker compose logs -f builder
docker compose logs -f email-gen-api

6) Данные

  • Данные конструктора: z51-pug-builder/data
  • Репозиторий генератора: email-gen (bind mount в контейнер)

Оба каталога остаются на хосте и не теряются при пересоздании контейнеров.