Skip to content

junioraww/wireguard-tg-fork

Repository files navigation

Telegram-бот для управления WireGuard (через wg-easy)

Этот проект представляет собой Telegram-бота, написанного на TypeScript с использованием Bun, для упрощенного управления конфигурациями WireGuard через API wg-easy. Бот позволяет пользователям запрашивать доступ, создавать и управлять своими VPN-конфигурациями, а администратору — управлять пользователями и всеми конфигурациями.

🌟 Основные возможности

Для пользователей

  • Управление доступом:
    • Система запросов на доступ к боту для новых пользователей.
  • Создание и управление конфигурациями:
    • Создание новых конфигураций WireGuard с выбором типа устройства.
    • Просмотр списка своих и предоставленных вам конфигураций.
    • Получение конфигурации в виде .conf файла или QR-кода.
    • Временное включение/отключение и полное удаление конфигураций.
  • Совместное использование:
    • Возможность поделиться конфигурацией с другим пользователем Telegram через одноразовую ссылку.
    • Возможность отозвать доступ к ранее поделенной конфигурации.
  • Гибкая настройка трафика (Split Tunneling):
    • Продвинутая настройка AllowedIPs перед скачиванием файла конфигурации.
    • Пользователь может выбрать, какой трафик направлять через VPN (например, только трафик к определенным сервисам или весь трафик, кроме исключений).
  • Статистика и персонализация:
    • Просмотр статистики использования трафика (общий, за последний час, за месяц) в виде графиков.
    • Персональная настройка часового пояса для корректного отображения графиков.
  • Обратная связь:
    • Возможность отправить сообщение напрямую администраторам бота.

Для администраторов

  • Управление пользователями:
    • Одобрение и отклонение запросов на доступ.
    • Просмотр списка всех пользователей и их конфигураций.
    • Отзыв доступа у пользователей.
  • Полный контроль над конфигурациями:
    • Просмотр списка всех существующих в системе конфигураций.
    • Управление любой конфигурацией (скачивание, QR, вкл/выкл, удаление).
  • Управление списками IP (для Split Tunneling):
    • Создание и удаление именованных списков IP-адресов или доменов, которые пользователи могут выбирать для настройки AllowedIPs.
  • Общая статистика:
    • Просмотр графика с топом самых активных конфигураций по общему потреблению трафика.

🚀 Настройка и запуск

  1. Клонируйте репозиторий:

    git clone https://gitlab.com/VMilykov/wireguard-tg.git
    cd wireguard_tg
  2. Создайте файл .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
  3. Запустите сервисы с помощью Docker Compose:

    docker-compose up --build -d

🤖 Использование

  • Найдите вашего бота в Telegram.
  • Отправьте команду /start.
  • Если вы не администратор, запросите доступ.
  • После одобрения доступа используйте интуитивно понятное меню для управления конфигурациями.
  • Администратор получает доступ к "👑 Админ-панели" прямо в главном меню.

About

Telegram Bot to manage VPN

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •