Goat VPN
Назад к проектам

Goat VPN

Goat VPN — Автоматизированная платформа управления VPN

Goat VPN

О проекте

VPN Control Panel — это полнофункциональная система для автоматизации продажи и управления VPN-доступом через Telegram бот, построенная на современном технологическом стеке.

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

Backend:

  • Django 5.1 — основной веб-фреймворк

  • Aiogram 3.19 — асинхронная библиотека для Telegram Bot API

  • PostgreSQL — реляционная база данных

  • Redis — кэширование и брокер сообщений

  • Celery — обработка асинхронных задач и периодических операций

DevOps:

  • Docker & Docker Compose — контейнеризация приложения

  • Nginx — reverse proxy и обслуживание статических файлов

  • GitHub CI/CD — автоматизация развертывания

Основной функционал

Для пользователей (через Telegram бот):

  • Выбор и подключение к VPN-серверам

  • Автоматическое создание конфигураций WireGuard и AmneziaWG

  • Управление конфигурациями: блокировка, разблокировка, удаление, повторная загрузка

  • Просмотр активных подписок и тарифов

  • Оплата подписок через YooKassa и Telegram Stars

  • Автоматические уведомления об истечении подписки

Система подписок:

  • Гибкая настройка тарифных планов (цена, количество конфигураций, длительность)

  • Автоматическое ограничение скорости для пользователей без подписки (максимум 3 конфигурации с ограничениями)

  • Автоматическое снятие ограничений при оплате подписки

  • Отмена подписки с немедленным возвратом к ограниченному доступу

Управление серверами:

  • Мониторинг статуса серверов (online/offline)

  • Поддержка нескольких VPN-протоколов на одном сервере

  • Централизованное управление через Django Admin

  • Автоматическая синхронизация конфигураций между базой данных и серверами

Автоматизация (Celery Tasks):

  • Периодическая проверка статуса серверов

  • Автоматическое ограничение конфигураций при истечении подписки

  • Автоматическое снятие ограничений при активации подписки

  • Отправка уведомлений об истечении подписки

  • Синхронизация состояния конфигураций с VPN-серверами

Архитектура

Проект реализован с использованием микросервисной архитектуры на базе Docker Compose:

  • vpn-control-panel-server — Django веб-сервер с админ-панелью

  • vpn-control-panel-bot — Telegram бот для пользователей

  • vpn-control-panel-celery-worker — обработчик асинхронных задач

  • vpn-control-panel-celery-beat — планировщик периодических задач

  • vpn-control-panel-db — PostgreSQL база данных

  • vpn-control-panel-redis — Redis для кэширования и очередей

  • vpn-control-panel-proxy — Nginx reverse proxy

Все сервисы связаны через Docker network и автоматически разворачиваются с помощью docker-compose.

Особенности реализации

Адаптеры для VPN-клиентов:

Система использует паттерн Factory для работы с различными VPN-протоколами, что позволяет легко добавлять поддержку новых протоколов без изменения основной логики.

Асинхронная обработка:

Все взаимодействие с Telegram API и VPN-серверами выполняется асинхронно для максимальной производительности.

Безопасность:

  • Аутентификация пользователей через Telegram

  • Безопасное хранение учетных данных серверов

  • Изоляция компонентов в Docker-контейнерах

Админ-панель:

Кастомизированная админ-панель на базе Django Jazzmin для управления:

  • Пользователями и их конфигурациями

  • VPN-серверами и их статусом

  • Тарифными планами и подписками

  • Настройками системы через django-constance

Технологии

PythonDjangoAiogramCeleryPostgreSQLRedisDockerGitGitLab CI/CDLinuxNginx