# Развёртывание production сайта

## Архитектура

```
┌─────────────────────────────────────────────────────────┐
│                    HTTPS :443                           │
│              (host nginx + Let's Encrypt)               │
└────────────────────┬────────────────────────────────────┘
                     │
         ┌───────────┴───────────┐
         │                       │
         ▼                       ▼
┌─────────────────┐     ┌─────────────────┐
│   Next.js site  │     │     BFF API     │
│  localhost:3000 │     │  localhost:3001 │
│   (Docker)      │     │   (Docker)      │
└─────────────────┘     └─────────────────┘
```

## 1. SSL сертификат (уже установлен)

Сертификаты находятся в `/etc/letsencrypt/live/uno-click.pip-test.ru/`

## 2. Конфигурация nginx (обновлена)

Хост nginx проксирует запросы:
- `/` → Next.js на `127.0.0.1:3000`
- `/api/` → BFF на `127.0.0.1:3001`
- `/files/` → MinIO на `127.0.0.1:9000`

## 3. Запуск через docker-compose

```bash
cd /opt/uno-click

# Пересоберите образ site
docker compose build site

# Запустите все сервисы
docker compose up -d
```

## 4. Проверка

- Сайт: https://uno-click.pip-test.ru/
- BFF API: https://uno-click.pip-test.ru/api/health

## 5. Логи

```bash
# Все сервисы
docker compose logs -f

# Конкретный сервис
docker compose logs -f site
docker compose logs -f bff
```

## 6. Обновление

```bash
# Пересобрать и перезапустить site
docker compose build site
docker compose up -d site
```

## CSRF защита

Используется автоматическая CSRF защита через:
- **SameSite=Lax** cookie — браузер автоматически блокирует cross-site запросы
- Cookie автоматически отправляются с same-origin запросами
- Не нужно вручную передавать `x-csrf-token` в заголовках
