Перейти к содержанию

Локальный запуск и настройка 💻

Этот гайд поможет вам развернуть полную среду разработки Gifty на локальной машине за 5–10 минут.

📋 Требования

Перед началом убедитесь, что у вас установлены:

  • Python 3.11+
  • Docker & Docker Compose
  • Git
  • Make (желательно)

🚀 Быстрый старт

1. Клонирование и окружение

git clone git@github.com:IceDarold/gifty-backend.git
cd gifty-backend

# Создание виртуального окружения
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. Настройка переменных окружения

Скопируйте пример конфига и заполните базовые значения:

cp .env.example .env
Для базового запуска достаточно значений по умолчанию, но для работы OAuth и Telegram нужно будет прописать настоящие токены.

3. Инфраструктура (Docker)

Запустите базу данных, Redis и RabbitMQ:

docker compose up -d
Это поднимет:

  • PostgreSQL (Port 5432) — хранение товаров и пользователей.
  • Redis (Port 6379) — сессии и кеш.
  • RabbitMQ (Port 5672, UI 15672) — очередь задач для парсеров.

4. Инициализация базы данных

Примените миграции, чтобы создать структуру таблиц:

alembic upgrade head

5. Наполнение данными (Seed)

Чтобы в приложении сразу появились товары для тестов, запустите синхронизацию:

python scripts/run_sync.py
Этот скрипт подтянет базовый каталог товаров из внешнего API (если настроен токен) или создаст мок‑данные.


🛠 Запуск сервисов

Проект состоит из нескольких независимых сервисов, которые нужно запустить:

Core API (Основной бэкенд)

uvicorn app.main:app --reload
Доступен по адресу: http://localhost:8000. Документация Swagger: http://localhost:8000/docs.

Scraper Worker (Парсер)

python -m services.run_worker
Слушает RabbitMQ и ждет задач на парсинг.

Telegram Bot

python -m services.telegram_bot.app.main

✅ Проверка работоспособности

Чтобы убедиться, что всё настроено верно, проверьте следующие эндпоинты:

  1. Heartbeat: GET http://localhost:8000/health — должен вернуть {"status": "ok"}.
  2. RabbitMQ UI: http://localhost:15672 (guest/guest) — проверьте, что воркер подключился и создал очередь.
  3. Internal Stats: GET http://localhost:8000/internal/stats (требует X-Internal-Token) — проверка связи Core API с БД и парсерами.

💡 Полезные команды

  • docker compose logs -f — просмотр логов базы и очередей.
  • pip install -e . — установка проекта в редактируемом режиме для корректного импорта модулей.
  • pytest — запуск тестов (убедитесь, что поднята тестовая БД).