Этот проект представляет собой Telegram-бота, написанного на TypeScript с использованием Bun, для упрощенного управления конфигурациями WireGuard через API wg-easy. Бот позволяет пользователям запрашивать доступ, создавать и управлять своими VPN-конфигурациями, а администратору — управлять пользователями и всеми конфигурациями.
- Управление доступом:
- Система запросов на доступ к боту для новых пользователей.
- Создание и управление конфигурациями:
- Создание новых конфигураций WireGuard с выбором типа устройства.
- Просмотр списка своих и предоставленных вам конфигураций.
- Получение конфигурации в виде
.confфайла или QR-кода. - Временное включение/отключение и полное удаление конфигураций.
- Совместное использование:
- Возможность поделиться конфигурацией с другим пользователем Telegram через одноразовую ссылку.
- Возможность отозвать доступ к ранее поделенной конфигурации.
- Гибкая настройка трафика (Split Tunneling):
- Продвинутая настройка
AllowedIPsперед скачиванием файла конфигурации. - Пользователь может выбрать, какой трафик направлять через VPN (например, только трафик к определенным сервисам или весь трафик, кроме исключений).
- Продвинутая настройка
- Статистика и персонализация:
- Просмотр статистики использования трафика (общий, за последний час, за месяц) в виде графиков.
- Персональная настройка часового пояса для корректного отображения графиков.
- Обратная связь:
- Возможность отправить сообщение напрямую администраторам бота.
- Управление пользователями:
- Одобрение и отклонение запросов на доступ.
- Просмотр списка всех пользователей и их конфигураций.
- Отзыв доступа у пользователей.
- Полный контроль над конфигурациями:
- Просмотр списка всех существующих в системе конфигураций.
- Управление любой конфигурацией (скачивание, QR, вкл/выкл, удаление).
- Управление списками IP (для Split Tunneling):
- Создание и удаление именованных списков IP-адресов или доменов, которые пользователи могут выбирать для настройки
AllowedIPs.
- Создание и удаление именованных списков IP-адресов или доменов, которые пользователи могут выбирать для настройки
- Общая статистика:
- Просмотр графика с топом самых активных конфигураций по общему потреблению трафика.
-
Клонируйте репозиторий:
git clone https://gitlab.com/VMilykov/wireguard-tg.git cd wireguard_tg -
Создайте файл
.envв корневой директории проекта, скопировавenv.example:# IP-адрес или домен вашего сервера, где будет доступен WireGuard WG_HOST=your_server_public_ip_or_domain # Токен вашего Telegram-бота BOT_TOKEN=your_telegram_bot_token # Числовой ID вашего Telegram-аккаунта для прав администратора ADMIN_TELEGRAM_ID=your_admin_telegram_id # URL для доступа к API wg-easy (по дефолту http://wg-easy:51821) WG_EASY_API_URL=http://wg-easy:51821
-
Запустите сервисы с помощью Docker Compose:
docker-compose up --build -d
- Найдите вашего бота в Telegram.
- Отправьте команду
/start. - Если вы не администратор, запросите доступ.
- После одобрения доступа используйте интуитивно понятное меню для управления конфигурациями.
- Администратор получает доступ к "👑 Админ-панели" прямо в главном меню.