Files
call-center/docs/runbooks/local-setup.md
T

5.2 KiB
Raw Blame History

Руководство по локальному запуску (Local Setup)

В этом документе описаны шаги для поднятия проекта на рабочей машине разработчика или для проведения презентации (демо). Проект поддерживает как легковесный запуск на SQLite, так и масштабируемый запуск с использованием PostgreSQL и RabbitMQ.

1. Системные требования

  • Python 3.10+ (для микросервисов)
  • Docker и Docker Compose (для запуска PostgreSQL, RabbitMQ и т.д.)
  • PowerShell (основные launch-скрипты написаны на нём)

2. Быстрый старт: Режим ДЕМО (Автоматически)

Самый удобный способ поднять весь стек контакт-центра одной командой. Скрипт запустит сервисы, прогонит смоук-тесты и заполнит базу моковыми данными:

powershell -ExecutionPolicy Bypass -File scripts\prepare_demo.ps1

Что делает prepare_demo.ps1:

  • Поднимает все микросервисы проекта в фоне (логи складываются в папку .local_stack\logs).
  • Создает тестового клиента и историю его взаимодействия.
  • Симулирует звонок с IVR и создает запись в recording-service.
  • Наливает статьи Базы Знаний.
  • Забрасывает метрики для KPI отчетов в reporting-service.

Остановка и очистка:

# Остановить все фоновые процессы сервисов
powershell -ExecutionPolicy Bypass -File scripts\stop_all_local.ps1

# Полностью очистить рабочее пространство сервера (удалить временные БД и артефакты)
powershell -ExecutionPolicy Bypass -File scripts\clean_workspace.ps1

3. Ручной запуск (Local Development)

Если вы разрабатываете конкретный микросервис и вам нужен горячий рестарт (Hot Reload), поднимайте сервисы вручную.

Шаг 3.1: Установка зависимостей

python -m pip install -r requirements.txt

Шаг 3.2: Запуск инфраструктуры (Docker)

Если вы не хотите использовать fallback-режим с SQLite, поднимите PostgreSQL и системные сервисы:

cd deployment
docker compose up -d postgres
cd ..

Шаг 3.3: Миграции Базы Данных

Перед запуском бизнес-логики необходимо проинициализировать схему БД:

python scripts/migrate_core_db.py

Шаг 3.4: Запуск Gateway и Микросервисов

Для маршрутизации запросов обязательно должен работать api-gateway:

uvicorn gateway.app:app --reload --port 8080

Далее в новых консолях вы можете точечно поднимать необходимые вам микросервисы (по умолчанию Gateway проксирует запросы на порты 8001, 8004 и т.д.):

uvicorn services.auth_service.app:app --reload --port 8001
uvicorn services.interaction_service.app:app --reload --port 8004

4. Точки входа (Пользовательские интерфейсы)

Если gateway.app успешно запущен на порту 8080, вы можете попасть в веб-интерфейсы платформы по следующим адресам:

5. Полезные скрипты

В папке scripts/ лежит множество полезных инструментов для разработки:

# Прогон всех автотестов
pytest -q

# Смоук-чек авторизации (проверка выдачи JWT токенов)
python scripts/oidc_smoke.py --base-url http://localhost:8080

# Снятие и распаковка бэкапа (дамп данных лок. среды)
powershell -ExecutionPolicy Bypass -File scripts\backup_data.ps1
powershell -ExecutionPolicy Bypass -File scripts\restore_data.ps1 -BackupZip e:\Zhan\backups\mvp_cc_data_YYMMDD.zip

# Нагрузочное тестирование (позволяет сгенерировать фейковый трафик звонков)
python scripts/load_test.py --base-url http://localhost:8080 --profile baseline_100_100