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

118 lines
3.1 KiB
Markdown
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.
# 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://<VPS_IP>` (или домен, если 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/<project>/letters/let.pug`
- запускает `gulp pug --project <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 в контейнер)
Оба каталога остаются на хосте и не теряются при пересоздании контейнеров.