Skip to content

aquaracer/Payout_platform_DRF

Repository files navigation

Payout Platform

Python Django DRF Celery RabbitMQ PostgreSQL Docker Ruff pytest uv

Сервис для управления выплатами с API на Django/DRF и фоновой обработкой через Celery.

Технологический стек

  • Python 3.13
  • Django 6.0.1
  • DRF 3.16.1
  • PostgreSQL 18
  • RabbitMQ 4.1
  • Celery 5.3.5
  • pytest 9.0.2
  • Ruff
  • uv
  • Docker + Docker Compose

Структура проекта

.
├── payout_platform/        # Django настройки и URLs
├── payouts/                # Доменные модели, serializers, views, tasks
├── tests/                  # Тесты (pytest)
├── docker-compose.yml      # Docker orchestration
├── Dockerfile              # Сборка образа
├── pyproject.toml          # Зависимости и конфиги
└── Makefile                # Удобные команды

Установка зависимостей

Локально (uv):

uv sync --dev

Через Docker:

docker compose build

Запуск приложения

make up

Запуск миграций

make migrate

Запуск Celery worker

make worker

Запуск тестов

make test

Деплой на продакшн

Описание

Проект разворачивается на VPS или любом сервере с поддержкой Docker. В продакшн окружении используются отдельные сервисы для базы данных, брокера сообщений и кеша.

Необходимые сервисы

  • PostgreSQL — для хранения данных.
  • RabbitMQ — брокер сообщений для Celery.
  • Docker + Docker Compose — для изоляции и управления сервисами.

Запуск Django и Celery

  • Django запускается через Gunicorn/Nginx для продакшн или через uvicorn/uv для dev-среды.
  • Celery Worker запускается как отдельный контейнер, подключенный к RabbitMQ.
  • Настройки проекта (база, broker, secret keys) берутся из переменных окружения.

Минимальные шаги по деплою

# Подключаемся к VPS
ssh user@your-server

# Создаем директорию для проекта
mkdir -p ~/backend && cd ~/backend

# Клонируем репозиторий
git clone https://github.com/<username>/<repo>.git .
git checkout <branch>

# Подтягиваем переменные окружения (например, через .env или GitHub Secrets)
cp /path/to/env.prod .env

# Сборка и запуск всех сервисов
docker compose up --build -d

# Проверяем логи
docker compose logs -f

В продакшне рекомендуется использовать:

  • Gunicorn + Nginx для Django,
  • systemd или Docker Compose override для автозапуска Celery,
  • отдельные volume для базы данных и статических файлов.

Какие сервисы необходимы

  • PostgreSQL (основная БД).
  • RabbitMQ (брокер задач для Celery).
  • Django‑приложение (web).
  • Celery worker (фоновые задачи).

Как бы запускал Django и Celery

  • Django: через WSGI сервер (например, gunicorn) за reverse‑proxy.
  • Celery: отдельный процесс/контейнер celery -A payout_platform worker ....

Минимальные шаги подготовки окружения

  • Настроить переменные окружения (DB_*, RABBITMQ_*, SECRET_KEY).
  • Поднять PostgreSQL и RabbitMQ.
  • Выполнить миграции python manage.py migrate.
  • Запустить web и worker.

About

Финтех сервис: управления выплатами с API на Django/DRF. Стек: Python, Django, DRF, RabbitMQ, Celery, PostgreSQL, UV, Ruff, Pytest, CI/CD

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors