Все приложения проекта используют единый файл `.env` в корне проекта.
## Быстрый старт
1. Скопируйте файл `.env.example` в `.env`:
```bash
cp .env.example .env
```
2. Отредактируйте `.env` и укажите свои значения:
```bash
nano .env
# или
vim .env
```
3.**ВАЖНО**: Файл `.env` уже добавлен в `.gitignore` и не будет попадать в git.
## Структура переменных окружения
### Database Configuration
-`DB_HOST` - хост базы данных (по умолчанию: localhost)
-`DB_PORT` - порт базы данных (по умолчанию: 5432)
-`DB_USER` - пользователь БД (по умолчанию: playeng)
-`DB_PASSWORD` - пароль БД (по умолчанию: playeng)
-`DB_NAME` - имя БД (по умолчанию: playeng)
### Backend Server Configuration
-`PORT` - порт бэкенд сервера (по умолчанию: 8080)
-В production всегда используется порт 8080 внутри контейнера
- Nginx автоматически проксирует запросы к `http://backend:8080`
### Frontend Configuration (play-life-web)
-`VITE_PORT` - порт для dev-сервера Vite (по умолчанию: 3000)
-`WEB_PORT` - порт для production контейнера (по умолчанию: 3001)
**Примечание:** API запросы автоматически проксируются к бэкенду. В development режиме Vite проксирует запросы к `http://localhost:8080`. В production nginx проксирует запросы к бэкенд контейнеру. Не требуется настройка `VITE_API_BASE_URL`.
-`WEBHOOK_BASE_URL` - базовый URL для автоматической настройки webhook. Webhook будет настроен автоматически при сохранении bot token через UI на `<WEBHOOK_BASE_URL>/webhook/telegram`.
- Bot Token и Chat ID настраиваются через UI приложения в разделе "Интеграции" -> "Telegram"
- Production с HTTPS: `https://your-domain.com` (порт не нужен для стандартных 80/443)
- Локальная разработка с ngrok: `https://abc123.ngrok.io` (порт не нужен)
- Прямой доступ на нестандартном порту: `http://your-server:8080` (порт обязателен)
### Todoist Webhook Configuration (опционально)
-`TODOIST_WEBHOOK_SECRET` - секрет для проверки подлинности webhook от Todoist (если задан, все запросы должны содержать заголовок `X-Todoist-Webhook-Secret`с этим значением)
## Настройка интеграции с Todoist
Интеграция с Todoist позволяет автоматически обрабатывать закрытые задачи и добавлять их в базу данных play-life.
### Как это работает
1. При закрытии задачи в Todoist отправляется webhook на ваш сервер
2. Сервер извлекает `title` (content) и `description` из закрытой задачи
3. Склеивает их в один текст: `title + "\n" + description`
4. Обрабатывает текст через существующую логику `processMessage`, которая:
- Парсит ноды в формате `**[Project][+/-][Score]**`
- Сохраняет данные в базу данных
- Отправляет уведомление в Telegram (если настроено)