Запуск и проверка здоровья¶
Локальный запуск¶
docker compose -f docker-compose.services.yml up --build
Ожидание готовности инфраструктуры по healthcheck (Compose v2):
docker compose -f docker-compose.services.yml up -d --build --wait --wait-timeout 300
Перед первым стартом убедитесь, что каталог данных PostgreSQL на хосте доступен пользователю 999:999 (образ postgres:15). Иначе возможны Permission denied на global/pg_filenode.map:
bash scripts/docker/ensure_postgres_data_dir.sh
После того как контейнеры запущены, «умная» проверка (БД/Redis healthy + smoke HTTP + PING):
bash scripts/docker/verify_dev_stack.sh
Базовые проверки API¶
Все Django-сервисы отвечают на GET .../health/ JSON {"service":"<name>","status":"ok"}:
| Сервис | Локальный URL (dev/CI/prod host port) |
|---|---|
| auth | http://127.0.0.1:8001/api/health/ |
| user | http://127.0.0.1:8002/api/health/ |
| product | http://127.0.0.1:8003/api/health/ |
| order | http://127.0.0.1:8004/api/health/ |
| review | http://127.0.0.1:8005/api/health/ |
| admin | http://127.0.0.1:8006/api/admin/ops/health/ |
| chat | http://127.0.0.1:8007/api/chat/health/ |
| analytics (dev/CI) | http://127.0.0.1:8008/api/analytics/health/ |
| analytics (prod) | только из сети compose: docker compose exec analytics_service → /api/analytics/health/ |
Автоматизация: bash scripts/ci/check_internal_health_endpoints.sh (HEALTH_CHECK_PROFILE=ci_smoke или production_local).
Дополнительно (legacy liveness без JSON):
product_service:GET /api/models/order_service:GET /api/cart/(ожидаемо 401/403 без auth)chat_service:GET /api/chat/conversations/(ожидаемо 401/403 без auth)analytics_service:POST /api/analytics/events/batch/с пустым телом (ожидаемо400; сервис жив)
После принятия cookie на фронте: batch с валидным visitor_id → 201. Отчёты: Веб-аналитика.
Проверка зависимостей¶
- PostgreSQL: доступность сокета/порта и корректность миграций.
- Redis:
PINGи соединение worker. - Telegram bot: наличие валидного
TELEGRAM_BOT_TOKEN.
Минимальный smoke runbook¶
- Поднять инфраструктуру (
db,redis). - Поднять сервисы API.
- Выполнить health endpoints.
- Проверить регистрацию/логин и доступ к защищенному endpoint с токеном.
- Проверить создание и checkout тестового заказа.
Master-alignment¶
Единые release и incident правила зафиксированы в Master-документации проекта.
| Требование | Причина | Проверка | Артефакт |
|---|---|---|---|
| Пострелизный smoke обязателен | Раннее обнаружение регрессии | smoke runbook | release report |
| Инцидент требует postmortem action list | Снижение повторяемости сбоев | post-incident review | incident log |
| Документация запуска синхронизирована с фактическим контуром | Предсказуемость онбординга и эксплуатации | docs review + test run | operations docs |