m.moddie / dev
← Все проекты
Проект / 03

RYFT VPN

VPN-сервис с подписками, платежами, учётом устройств и автоматической выдачей доступа.

Python · VPN · Product platform
RYFT VPN

Mini App → Billing → Provisioning → VPN access

FastAPI / PostgreSQL / ARQ / Marzban / Xray
Роль

Backend Engineer

Период / формат

05.2025 — 09.2025

Статус

Коммерческий проект

Личный вклад

  • Спроектировал и реализовал серверную часть VPN-сервиса: биллинг, жизненный цикл подписок, учет клиентских устройств и ограничения сессий.
  • Реализовал интеграцию с узлами Marzban и Xray-core для автоматической генерации профилей доступа, динамического отзыва ключей и сбора сетевой статистики.
  • Настроил очереди ARQ для синхронизации состояний конфигураций с автоматическим разрешением сетевых таймаутов.

Python, FastAPI, PostgreSQL, Redis, ARQ, Marzban API, Xray-core, Docker

01 / О проекте

О проекте

VPN-сервис с подписками, платежами, учётом устройств и автоматической выдачей доступа.

02 / Product surfaces

Три продуктовые поверхности

Клиентский Mini App, операционная админка и backend control plane образуют один продукт.

Telegram Mini App

4 мобильных экрана · 430 × 932

Операционная панель

4 desktop-экрана · 1920 × 1080

Снято с реальных собранных Vue-приложений на репрезентативных локальных mock-данных. Core, PostgreSQL, Redis, Marzban и Xray не запускались.

03 / Case study

Полная платформа VPN-подписок

RYFT объединяет клиентский Telegram Mini App, отдельную админку и Python control plane, который управляет billing, entitlement и provisioning ключей.

Product scope

01

Telegram- и web-аутентификация со связанными identity

02

Тарифы, промокоды, Platega checkout и webhook fulfillment

03

Подписки с лимитом устройств и независимо отзываемые VPN-ключи

04

Provisioning в Marzban и публичные subscription URL под контролем Core

05

Админ-операции, support, партнёры, уведомления и audit

06

Production routing, метрики, логи, alerts и зашифрованные backup

Engineering decisions

01

Core владеет продуктовой истиной

PostgreSQL хранит пользователей, платежи, подписки, device keys и provisioning operations. Фронтенды работают с типизированными API-контрактами.

02

Provisioning восстанавливаемый

ARQ workers выполняют expiry, reconciliation и replay. Долговечные идемпотентные операции переживают сбои провайдера.

03

Control plane отделён от data plane

Core определяет доступ. Marzban управляет credentials и hosts, Xray обслуживает VLESS TCP REALITY traffic.

04

Три deployable репозитория

Core, Mini App и Admin собираются отдельно за одним Traefik edge, оставаясь одним продуктом.

Repository structure

Three repositories with explicit ownership boundaries.

RYFT / 3 REPOSITORIES
RYFT / PLATFORM
core/backend, workers and production infrastructure
apps/backend/src/core/config · database · security · Dishka
apps/backend/src/modules/users/auth · identities · admin access
apps/backend/src/modules/billing/plans · payments · subscriptions · promos
apps/backend/src/modules/devices/device limits · VPN keys · subscription URLs
apps/backend/src/modules/provisioning/Marzban operations · reconciliation
apps/backend/src/modules/support/tickets · messages · attachments
apps/backend/src/modules/partners/referrals · commissions · payouts
apps/backend/src/presentation/TMA API · admin API · webhooks · health
infra/Traefik · Marzban/Xray · monitoring · backups
tma-frontend/customer Vue application
src/pages/home · devices · subscription · servers · profile
src/api/ + src/stores/typed clients and product state
admin-frontend/operations Vue application
src/pages/dashboard · users · payments · servers · ops
src/api/admin endpoints and WebSocket client
06 / Архитектура системы

Архитектура системы

Оригинальная документация проекта на русском

Открыть интерактивную схему ↗