Локальный запуск и настройка 💻
Этот гайд поможет вам развернуть полную среду разработки 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. Настройка переменных окружения
Скопируйте пример конфига и заполните базовые значения:
Для базового запуска достаточно значений по умолчанию, но для работы OAuth и Telegram нужно будет прописать настоящие токены.3. Инфраструктура (Docker)
Запустите базу данных, Redis и RabbitMQ:
Это поднимет:- PostgreSQL (Port 5432) — хранение товаров и пользователей.
- Redis (Port 6379) — сессии и кеш.
- RabbitMQ (Port 5672, UI 15672) — очередь задач для парсеров.
4. Инициализация базы данных
Примените миграции, чтобы создать структуру таблиц:
5. Наполнение данными (Seed)
Чтобы в приложении сразу появились товары для тестов, запустите синхронизацию:
Этот скрипт подтянет базовый каталог товаров из внешнего API (если настроен токен) или создаст мок‑данные.🛠 Запуск сервисов
Проект состоит из нескольких независимых сервисов, которые нужно запустить:
Core API (Основной бэкенд)
Доступен по адресу:http://localhost:8000.
Документация Swagger: http://localhost:8000/docs.
Scraper Worker (Парсер)
Слушает RabbitMQ и ждет задач на парсинг.Telegram Bot
✅ Проверка работоспособности
Чтобы убедиться, что всё настроено верно, проверьте следующие эндпоинты:
- Heartbeat:
GET http://localhost:8000/health— должен вернуть{"status": "ok"}. - RabbitMQ UI:
http://localhost:15672(guest/guest) — проверьте, что воркер подключился и создал очередь. - Internal Stats:
GET http://localhost:8000/internal/stats(требуетX-Internal-Token) — проверка связи Core API с БД и парсерами.
💡 Полезные команды
docker compose logs -f— просмотр логов базы и очередей.pip install -e .— установка проекта в редактируемом режиме для корректного импорта модулей.pytest— запуск тестов (убедитесь, что поднята тестовая БД).