Files
chat/run_microservices.sh
Andrew K. Choi 91c7e04474
All checks were successful
continuous-integration/drone/push Build is passing
API refactor
2025-10-07 16:25:52 +09:00

86 lines
3.0 KiB
Bash
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.

#!/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