- Добавлена полная интеграция с 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 интеграции
7.6 KiB
7.6 KiB
🚀 Руководство по 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. Первоначальная настройка
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 окружения
# Вариант 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 окружения
# Вариант 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 | ❌ Нет | ✅ Есть |
📝 Управление окружениями
Остановка
# Остановить DEV
docker-compose -f docker-compose.dev.yml down
# Остановить PROD
docker-compose -f docker-compose.prod.yml down
Просмотр логов
# Логи 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
Перезапуск
# Перезапуск DEV
docker-compose -f docker-compose.dev.yml restart
# Перезапуск PROD
docker-compose -f docker-compose.prod.yml restart
Пересборка
# Пересборка 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(системный)
🐛 Отладка
Проверка статуса
# Статус DEV контейнеров
docker-compose -f docker-compose.dev.yml ps
# Статус PROD контейнеров
docker-compose -f docker-compose.prod.yml ps
# Все контейнеры проекта
docker ps | grep ticket_form
Проверка подключений
# Проверка 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
# Push в основной репозиторий
git push origin main
# Push в prod репозиторий
git push aiform_prod main
# Push в оба
git push origin main && git push aiform_prod main
⚠️ Важные замечания
- Никогда не коммитьте
.env.devи.env.prod— они в.gitignore - Всегда проверяйте
.env.prodперед деплоем в продакшн - DEV и PROD могут работать одновременно на разных портах
- В PROD используйте внешние БД — не создавайте локальные контейнеры
- Healthcheck в PROD — проверяйте статус регулярно
🔄 Миграция с текущей структуры
Если у вас уже запущены контейнеры со старыми именами:
# Остановите старые контейнеры
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
📞 Поддержка
При проблемах:
- Проверьте логи:
docker-compose -f docker-compose.*.yml logs - Проверьте статус:
docker-compose -f docker-compose.*.yml ps - Проверьте
.envфайлы на корректность - Убедитесь, что порты не заняты:
netstat -tulpn | grep -E "5175|5176|8200"
Автор: AI Assistant + Фёдор
Дата: 2 января 2025