# 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) ```bash cd /Users/sergeyzotov/Documents/GENERATOR_Z51 docker compose up -d --build docker compose ps ``` Открыть: `http://localhost:5173` Остановить: ```bash docker compose down ``` --- ## 2) Прод запуск (nginx + docker) 1. Подготовь env: ```bash cd /Users/sergeyzotov/Documents/GENERATOR_Z51 cp .env.prod.example .env ``` 2. Запусти: ```bash docker compose -f docker-compose.prod.yml up -d --build ``` 3. Проверка: ```bash docker compose -f docker-compose.prod.yml ps ``` Открыть: `http://` (или домен, если DNS уже настроен). Остановить: ```bash 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//letters/let.pug` - запускает `gulp pug --project ` - читает `email-gen/public/index.html` - возвращает HTML обратно в конструктор. Важно: в `Настройки -> Текущий проект` заполняй поле `Папка проекта в email-gen` (например `numizmat`). --- ## 4) Обновление email-gen без ручной пересборки всего Скрипт: ```bash ./deploy/scripts/update-email-gen.sh ``` Или с веткой: ```bash ./deploy/scripts/update-email-gen.sh main ``` Что делает скрипт: - `git fetch`/`git pull --ff-only` в `email-gen` - пересобирает и перезапускает только `email-gen-api` контейнер Это удобно, если `email-gen` обновляется через git и перезаписывается. --- ## 5) Логи Prod: ```bash 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: ```bash docker compose logs -f builder docker compose logs -f email-gen-api ``` --- ## 6) Данные - Данные конструктора: `z51-pug-builder/data` - Репозиторий генератора: `email-gen` (bind mount в контейнер) Оба каталога остаются на хосте и не теряются при пересоздании контейнеров.