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. Frontend працює з типізованими 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 / Архітектура системи

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

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

Відкрити інтерактивну схему ↗