Files
aiform_prod/ENVIRONMENTS.md
AI Assistant 2e45786e46 feat: Telegram Mini App integration and UX improvements
- Добавлена полная интеграция с Telegram Mini App (динамическая загрузка SDK)
- Отдельный компактный дизайн для Telegram Mini App
- Добавлен loader при инициализации (предотвращает мелькание SMS-авторизации)
- Улучшена навигация: кнопки "Назад" и "К списку заявок" теперь сохраняют авторизацию
- Telegram Mini App: кнопка "Выход" просто закрывает приложение
- Telegram Mini App: заявки "В работе" скрыты из списка
- Веб-версия: для заявок "В работе" добавлена кнопка "Просмотреть в Telegram" (ссылка на @klientprav_bot)
- Telegram Mini App: кнопки действий в черновиках расположены вертикально
- Веб-версия: убрано отображение номера телефона в приветствии
- Исправлена проблема с возвратом к списку черновиков (не требует повторной SMS-авторизации)
- Заблокировано удаление и редактирование заявок со статусом "В работе"
- Добавлена документация по Telegram Mini App интеграции
2026-01-29 16:12:48 +03:00

265 lines
7.6 KiB
Markdown
Raw Permalink 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.

# 🚀 Руководство по DEV и PROD окружениям
## 📋 Обзор
Проект поддерживает два отдельных окружения:
- **DEV** (Development) — для разработки и тестирования
- **PROD** (Production) — для продакшна
---
## 🏗️ Структура файлов
```
ticket_form/
├─ docker-compose.dev.yml ← Конфигурация для разработки
├─ docker-compose.prod.yml ← Конфигурация для продакшна
├─ .env.dev ← Переменные окружения для DEV
├─ .env.prod ← Переменные окружения для PROD
├─ .env.example ← Шаблон переменных окружения
├─ start-dev.sh ← Скрипт запуска DEV
├─ start-prod.sh ← Скрипт запуска PROD
└─ ENVIRONMENTS.md ← Эта документация
```
---
## 🛠️ Быстрый старт
### 1. Первоначальная настройка
```bash
cd /var/www/fastuser/data/www/crm.clientright.ru/ticket_form
# Создаём .env файлы из шаблона
cp .env.example .env.dev
cp .env.example .env.prod
# Редактируем .env.dev (для разработки)
nano .env.dev
# Установите: APP_ENV=development, DEBUG=true
# Редактируем .env.prod (для продакшна)
nano .env.prod
# Установите: APP_ENV=production, DEBUG=false
# Проверьте все URL и API ключи
```
### 2. Запуск DEV окружения
```bash
# Вариант 1: Используя скрипт (рекомендуется)
./start-dev.sh
# Вариант 2: Вручную
docker-compose -f docker-compose.dev.yml up -d --build
```
**Доступ:**
- Frontend: http://localhost:5175
- Backend: http://localhost:8200
- API Docs: http://localhost:8200/docs
### 3. Запуск PROD окружения
```bash
# Вариант 1: Используя скрипт (рекомендуется)
./start-prod.sh
# Вариант 2: Вручную
docker-compose -f docker-compose.prod.yml up -d --build
```
**Доступ:**
- Frontend: http://localhost:5176
- Backend: http://localhost:8200
- API Docs: http://localhost:8200/docs
---
## 🔍 Различия между DEV и PROD
| Параметр | DEV | PROD |
|----------|-----|------|
| **Порты** | 5175 (frontend), 8200 (backend) | 5176 (frontend), 8200 (backend) |
| **Контейнеры** | `*_dev` | `*_prod` |
| **PostgreSQL** | Локальный контейнер (порт 5433) | Внешний (147.45.189.234:5432) |
| **Redis** | Локальный контейнер (порт 6380) | Системный (localhost:6379) |
| **Debug** | ✅ Включен | ❌ Выключен |
| **Логи** | DEBUG уровень | INFO уровень |
| **Hot Reload** | ✅ Включен | ❌ Выключен |
| **Build** | Dev режим | Production оптимизация |
| **Healthcheck** | ❌ Нет | ✅ Есть |
---
## 📝 Управление окружениями
### Остановка
```bash
# Остановить DEV
docker-compose -f docker-compose.dev.yml down
# Остановить PROD
docker-compose -f docker-compose.prod.yml down
```
### Просмотр логов
```bash
# Логи DEV
docker-compose -f docker-compose.dev.yml logs -f
# Логи PROD
docker-compose -f docker-compose.prod.yml logs -f
# Логи конкретного сервиса
docker-compose -f docker-compose.dev.yml logs -f ticket_form_backend_dev
```
### Перезапуск
```bash
# Перезапуск DEV
docker-compose -f docker-compose.dev.yml restart
# Перезапуск PROD
docker-compose -f docker-compose.prod.yml restart
```
### Пересборка
```bash
# Пересборка DEV
docker-compose -f docker-compose.dev.yml up -d --build
# Пересборка PROD
docker-compose -f docker-compose.prod.yml up -d --build
```
---
## 🔐 Переменные окружения
### Основные переменные
| Переменная | DEV значение | PROD значение |
|------------|--------------|---------------|
| `APP_ENV` | `development` | `production` |
| `DEBUG` | `true` | `false` |
| `LOG_LEVEL` | `DEBUG` | `INFO` |
| `VITE_API_URL` | `http://localhost:8200` | `https://aiform.clientright.ru/api` |
| `NODE_ENV` | `development` | `production` |
### Базы данных
**DEV:**
- PostgreSQL: `ticket_form_postgres_dev` (контейнер, порт 5433)
- Redis: `ticket_form_redis_dev` (контейнер, порт 6380)
**PROD:**
- PostgreSQL: `147.45.189.234:5432` (внешний)
- Redis: `localhost:6379` (системный)
- MySQL: `localhost:3306` (системный)
---
## 🐛 Отладка
### Проверка статуса
```bash
# Статус DEV контейнеров
docker-compose -f docker-compose.dev.yml ps
# Статус PROD контейнеров
docker-compose -f docker-compose.prod.yml ps
# Все контейнеры проекта
docker ps | grep ticket_form
```
### Проверка подключений
```bash
# Проверка backend health
curl http://localhost:8200/health
# Проверка frontend
curl http://localhost:5175
# Проверка PostgreSQL (DEV)
docker exec -it ticket_form_postgres_dev psql -U erv_user -d erv_db_dev
# Проверка Redis (DEV)
docker exec -it ticket_form_redis_dev redis-cli -a redis_dev_pass ping
```
---
## 📦 Git репозитории
### Структура репозиториев
- **`erv-platform`** (origin) — основной репозиторий
- **`aiform_prod`** — production версия
- **`aiform_dev`** — development версия (в папке `aiform_dev/`)
### Работа с Git
```bash
# Push в основной репозиторий
git push origin main
# Push в prod репозиторий
git push aiform_prod main
# Push в оба
git push origin main && git push aiform_prod main
```
---
## ⚠️ Важные замечания
1. **Никогда не коммитьте `.env.dev` и `.env.prod`** — они в `.gitignore`
2. **Всегда проверяйте `.env.prod`** перед деплоем в продакшн
3. **DEV и PROD могут работать одновременно** на разных портах
4. **В PROD используйте внешние БД** — не создавайте локальные контейнеры
5. **Healthcheck в PROD** — проверяйте статус регулярно
---
## 🔄 Миграция с текущей структуры
Если у вас уже запущены контейнеры со старыми именами:
```bash
# Остановите старые контейнеры
docker stop ticket_form_frontend ticket_form_backend ticket_form_frontend_prod
# Удалите старые контейнеры (опционально)
docker rm ticket_form_frontend ticket_form_backend ticket_form_frontend_prod
# Запустите новые через скрипты
./start-dev.sh
./start-prod.sh
```
---
## 📞 Поддержка
При проблемах:
1. Проверьте логи: `docker-compose -f docker-compose.*.yml logs`
2. Проверьте статус: `docker-compose -f docker-compose.*.yml ps`
3. Проверьте `.env` файлы на корректность
4. Убедитесь, что порты не заняты: `netstat -tulpn | grep -E "5175|5176|8200"`
---
**Автор:** AI Assistant + Фёдор
**Дата:** 2 января 2025