# Продакшен развертывание с nginx

## Новые команды

### `make build-prod`
**Расширенная сборка для продакшена с автоматической настройкой nginx**

Команда выполняет:
1. **Сборка Docker образов** для продакшена
2. **Проверка и установка nginx** (если не установлен)
3. **Проверка и установка certbot** (если не установлен)
4. **Создание конфигурации nginx** для проксирования:
   - `http://80` → `https://443` (редирект)
   - `https://links.shareon.kr/` → `http://localhost:3000` (Next.js frontend)
   - `https://links.shareon.kr/api/` → `http://localhost:8000` (Django API)
   - `https://links.shareon.kr/admin/` → `http://localhost:8000` (Django admin)
5. **Активация конфигурации** и перезапуск nginx

### `make ssl-cert`
**Автоматическое получение SSL сертификата от Let's Encrypt**

Использует certbot для получения сертификата для доменов:
- `links.shareon.kr`
- `sharon.kr`

### `make deploy-full`
**Полное развертывание в продакшен с SSL**

Выполняет полный цикл развертывания:
1. `make build-prod` - сборка и настройка nginx
2. `make up-prod` - запуск контейнеров
3. `make migrate` - выполнение миграций БД
4. `make ssl-cert` - получение SSL сертификата

## Схема проксирования

```
Internet → nginx:443 (SSL) → localhost:3000 (Frontend)
                          → localhost:8000 (API/Admin)
```

### Маршрутизация

| URL                                    | Назначение           | Порт  |
|---------------------------------------|---------------------|-------|
| `https://links.shareon.kr/`           | Next.js Frontend    | 3000  |
| `https://links.shareon.kr/api/`       | Django REST API     | 8000  |
| `https://links.shareon.kr/admin/`     | Django Admin        | 8000  |
| `https://links.shareon.kr/static/`    | Django Static files | 8000  |
| `https://links.shareon.kr/media/`     | Django Media files  | 8000  |

## Использование

### Первичное развертывание
```bash
make deploy-full
```

### Обновление кода
```bash
git pull
make build-prod
make up-prod
make migrate
```

### Только обновление SSL сертификата
```bash
make ssl-cert
```

## Безопасность

Nginx конфигурация включает:
- Автоматический редирект HTTP → HTTPS
- HSTS заголовки
- Защитные заголовки (X-Frame-Options, X-Content-Type-Options, X-XSS-Protection)
- Современные SSL протоколы (TLS 1.2, TLS 1.3)

## Требования

- Ubuntu/Debian сервер
- sudo доступ для установки nginx/certbot
- Настроенные DNS записи для доменов
- Открытые порты 80 и 443