Drain Proxy — собственная VPN/proxy-платформа с кастомным протоколом и клиентскими приложениями
Самостоятельно разработал и запустил коммерческий VPN/proxy-сервис с собственной сетевой логикой, кастомным протоколом подключения и собственными клиентскими приложениями для пользователей.
Проект включает полный цикл разработки: от проектирования протокола и backend-архитектуры до серверной инфраструктуры, управления нодами, подписками, конфигурациями, балансировкой и пользовательским интерфейсом.
В сервисе реализованы мульти-региональные серверы, быстрый выбор ноды, переключение между локациями, fallback при недоступности сервера, проверка latency, управление пользовательскими доступами и выдача конфигураций. Помимо совместимости с Hiddify/sing-box, были разработаны собственные приложения/клиентская оболочка с интерфейсом подключения, списком серверов, быстрым переключением, отображением статуса, ping, трафика и активной сессии.
Отдельно занимался backend, сетевой частью, инфраструктурой, Linux-серверами, деплоем, мониторингом, Telegram-каналом проекта и поддержкой пользователей.
Проект: https://t.me/DrainerProxy
Во время разработки Drain Proxy я отвечал за backend-архитектуру и ключевые технические решения сервиса: от проектирования API и логики подписок до управления нодами, пользовательскими конфигурациями и собственным протоколом drain://.
Что было на мне
➤ Спроектировал backend-архитектуру сервиса: пользователи, подписки, доступы, тарифы, лимиты, конфигурации и серверные ноды.
➤ Разработал логику собственного протокола drain:// для передачи параметров подключения между backend, клиентским приложением и серверной инфраструктурой.
➤ Спроектировал API для клиентских приложений: авторизация, получение списка серверов, активная подписка, статус подключения, ping, лимиты и конфигурации.
➤ Реализовал систему управления VPN/proxy-нодами: регионы, протоколы, статусы, доступность, приоритеты, ручное и автоматическое отключение проблемных серверов.
➤ Продумал механику балансировки между серверами: round-robin, выбор по минимальной задержке, fallback при недоступности ноды, резервные маршруты.
➤ Реализовал генерацию и выдачу пользовательских конфигураций для подключения через собственное приложение, Hiddify/sing-box и сторонние клиенты.
➤ Спроектировал структуру базы данных под пользователей, подписки, платежи, access-токены, сервера, конфиги, лимиты, статусы и историю операций.
➤ Настроил backend-логику жизненного цикла пользователя: регистрация, активация доступа, продление подписки, истечение тарифа, блокировка, повторная активация.
➤ Реализовал административную часть для управления пользователями, подписками, серверами, тарифами и конфигурациями без ручного редактирования серверов.
➤ Добавил фоновые задачи и автоматизацию: проверка доступности нод, обновление статусов, пересчёт лимитов, отключение истёкших подписок, сервисные уведомления.
➤ Продумал security-логику: токены доступа, защита внутренних API, разграничение пользовательских и административных действий, минимизация ручного доступа к инфраструктуре.
➤ Настроил логирование и мониторинг backend-событий: ошибки подключения, недоступность серверов, проблемы генерации конфигов, пользовательские действия и системные события.
➤ Реализовал интеграцию с Telegram-каналом/ботом для уведомлений, поддержки пользователей и операционного управления сервисом.
➤ Подготовил production-деплой: Docker, Linux-серверы, Nginx, TLS, переменные окружения, systemd/cron-задачи и базовую отказоустойчивость.
➤ Принимал решения по стеку и инфраструктуре: где использовать Python/FastAPI, где Go-утилиты, как хранить данные, как масштабировать сервис и как упростить поддержку.
В результате был разработан и запущен Drain Proxy — коммерческий VPN/proxy-сервис с собственной backend-архитектурой, протоколом drain://, клиентскими приложениями и распределённой серверной инфраструктурой.
Проект применяется как готовый пользовательский сервис для стабильного подключения через разные серверные ноды и протоколы. Пользователь получает доступ к сервису, выбирает подходящий сервер/локацию, подключается через приложение или совместимые клиенты, а backend автоматически управляет подпиской, доступами, конфигурациями и состоянием серверов.
На практике система решает несколько задач:
➤ позволяет пользователям быстро получать рабочую конфигурацию без ручной настройки;
➤ автоматически управляет доступами, подписками, лимитами и сроками действия;
➤ выбирает доступные серверные ноды и переключается на резервные при сбоях;
➤ упрощает администрирование сервиса через backend-логику и автоматизацию;
➤ снижает количество ручной поддержки за счёт автоматической выдачи конфигов и проверок доступности;
➤ даёт возможность масштабировать сервис: добавлять новые сервера, регионы, тарифы и протоколы без переработки всей системы.
Отдельным результатом стало внедрение собственного формата подключения drain://, который используется для передачи параметров между backend, клиентскими приложениями и серверной инфраструктурой. Это упростило управление подключениями и позволило сделать сервис более цельным: пользователь работает не с разрозненными конфигами, а с единой платформой.
Также были реализованы механизмы мониторинга, health-check серверов, fallback-логика, генерация пользовательских конфигураций, Telegram-интеграция и базовая админ-логика для управления пользователями и подписками.
Сервис может применяться как самостоятельный коммерческий продукт, как внутренняя инфраструктура для команды или как основа для white-label VPN/proxy-решений.