#!/bin/bash # Скрипт для быстрого запуска всех необходимых микросервисов Women Safety App # Цвета для вывода GREEN="\033[0;32m" YELLOW="\033[0;33m" BLUE="\033[0;34m" RED="\033[0;31m" NC="\033[0m" # No Color echo -e "${BLUE}🚀 Запуск Women Safety App Microservices${NC}" # Переход в директорию проекта cd "$(dirname "$0")" || { echo -e "${RED}❌ Ошибка: Не удалось перейти в директорию проекта${NC}"; exit 1; } # Проверка виртуального окружения if [ ! -d "venv" ]; then echo -e "${YELLOW}⚠️ Виртуальное окружение не найдено. Создаю новое...${NC}" python3 -m venv venv source venv/bin/activate python -m pip install -r requirements.txt else echo -e "${GREEN}✅ Виртуальное окружение найдено${NC}" source venv/bin/activate fi # Установка PYTHONPATH export PYTHONPATH="${PWD}:${PYTHONPATH}" # Функция для запуска сервиса start_service() { local name=$1 local port=$2 echo -e "${YELLOW}🔄 Запуск $name на порту $port...${NC}" # Запускаем в фоновом режиме python -m uvicorn services.${name}.main:app --host 0.0.0.0 --port $port & # Сохраняем PID echo $! > /tmp/${name}.pid # Небольшая задержка для запуска sleep 2 # Проверка запуска if curl -s http://localhost:$port/health > /dev/null; then echo -e "${GREEN}✅ $name успешно запущен на порту $port${NC}" else echo -e "${RED}❌ Ошибка: $name не запущен на порту $port${NC}" fi } # Создание скрипта миграции БД cat > migrate_db.py << 'EOF' import asyncio async def run_migrations(): from shared.database import init_db print("🔄 Выполнение миграций базы данных...") await init_db() print("✅ Миграции успешно выполнены!") if __name__ == "__main__": asyncio.run(run_migrations()) EOF # Запуск миграций echo -e "${YELLOW}🔄 Применение миграций базы данных...${NC}" python migrate_db.py # Запуск всех микросервисов start_service "user_service" 8001 start_service "emergency_service" 8002 start_service "location_service" 8003 start_service "calendar_service" 8004 start_service "notification_service" 8005 # IP для мобильного доступа EXTERNAL_IP=$(hostname -I | awk '{print $1}') echo -e "${BLUE}📱 IP для мобильного приложения: ${EXTERNAL_IP}:8000${NC}" # Запуск API Gateway echo -e "${GREEN}🚪 Запуск API Gateway на порту 8000...${NC}" python -m uvicorn services.api_gateway.main:app --host 0.0.0.0 --port 8000