#!/bin/bash # Скрипт для запуска всех микросервисов на всех интерфейсах для Android-эмулятора echo "🚀 Запускаем все микросервисы для Android-эмулятора..." # Перейти в директорию проекта cd "$(dirname "$0")" || { echo "Не удалось перейти в директорию проекта"; exit 1; } # Активировать виртуальное окружение source .venv/bin/activate || { echo "Не удалось активировать виртуальное окружение"; exit 1; } # Получить текущий IP адрес IP=$(hostname -I | awk '{print $1}') echo "🔗 Локальный IP адрес: $IP" echo "📱 Android эмулятор сможет подключиться по адресу: http://$IP:8000" # Функция для остановки процесса на указанном порту stop_service() { local port=$1 if lsof -ti:$port > /dev/null; then echo "⚠️ Останавливаем процесс на порту $port..." lsof -ti:$port | xargs kill -9 sleep 1 fi } # Останавливаем все сервисы, если они запущены echo "🛑 Останавливаем все сервисы, если они запущены..." stop_service 8000 # API Gateway stop_service 8001 # User Service stop_service 8002 # Emergency Service stop_service 8003 # Location Service stop_service 8004 # Calendar Service stop_service 8005 # Notification Service # Экспортируем PYTHONPATH export PYTHONPATH="${PWD}:${PYTHONPATH}" # Функция для запуска сервиса run_service() { local name=$1 local port=$2 local path=$3 echo "✅ Запускаем $name на порту $port..." cd $path || { echo "Не удалось перейти в директорию $path"; return; } python -m uvicorn main:app --host 0.0.0.0 --port $port --reload & cd $OLDPWD || { echo "Не удалось вернуться в исходную директорию"; return; } sleep 2 } # Запускаем все сервисы echo "🚀 Запускаем все сервисы..." run_service "User Service" 8001 "services/user_service" run_service "Emergency Service" 8002 "services/emergency_service" run_service "Location Service" 8003 "services/location_service" run_service "Calendar Service" 8004 "services/calendar_service" run_service "Notification Service" 8005 "services/notification_service" run_service "API Gateway" 8000 "services/api_gateway" echo "" echo "📋 Сервисы доступны по следующим адресам:" echo " 📡 API Gateway: http://$IP:8000" echo " 👤 User Service: http://$IP:8001" echo " 🚨 Emergency Service: http://$IP:8002" echo " 📍 Location Service: http://$IP:8003" echo " 📅 Calendar Service: http://$IP:8004" echo " 🔔 Notification Service: http://$IP:8005" echo "" echo "📱 Для Android эмулятора используйте адрес: http://$IP:8000" echo "" echo "⚠️ Для остановки всех сервисов выполните: pkill -f uvicorn" echo "" echo "🔍 Мониторинг логов запущен. Нажмите Ctrl+C для выхода (сервисы продолжат работать)" # Мониторим логи tail -f services/*.log