feat(gui): add GUI (Test) implementation with documentation and admin support

- Add GUI (Test) module with Fyne-based interface (internal/gui/gui.go, internal/gui/server.go)
- Add CLI monitoring capability (internal/cli/monitor.go)
- Add main_cli.go entry point for CLI-only builds
- Add comprehensive documentation suite covering setup, build, quick start, and changelog
- Add admin manifest (admin.manifest) for Windows UAC elevation support
- Add rsrc.syso.json configuration for resource embedding
- Update .gitignore to exclude build scripts (*.bat, *.sh)
- Update main.go and cli.go to support dual GUI (Test)/CLI modes
- Update README.md with new project information
- Enables users to build and run both GUI (Test)and CLI versions with proper admin privileges on Windows
This commit is contained in:
2026-04-06 18:57:58 +06:00
parent 83fbe7afdd
commit e0a5f0f746
20 changed files with 2471 additions and 32 deletions

197
Markdown/README_BUILD.md Normal file
View File

@@ -0,0 +1,197 @@
# Инструкция по сборке
## ✅ CLI версия (Работает сейчас)
CLI версия собрана и готова к использованию!
### Запуск CLI
```bash
# Windows
vpn-client-cli.exe
# Или используйте старую версию
vpn-client.exe
```
### Сборка CLI (если нужно пересобрать)
```bash
build_cli_only.bat
```
**Преимущества CLI:**
-Не требует GCC
- ✅ Меньший размер (~10 MB)
- ✅ Быстрая сборка
- ✅ Весь функционал VPN клиента
- ✅ Работает на серверах без GUI
---
## 🎨 GUI версия (Требует GCC)
GUI версия требует установки GCC компилятора.
### Шаг 1: Установите GCC
**Вариант A: TDM-GCC (Рекомендуется)**
1. Скачайте: https://jmeubank.github.io/tdm-gcc/download/
2. Установите `tdm64-gcc-10.3.0-2.exe`
3. Отметьте "Add to PATH"
4. Перезапустите терминал
**Вариант B: MSYS2**
1. Установите MSYS2: https://www.msys2.org/
2. Выполните: `pacman -S mingw-w64-x86_64-gcc`
3. Добавьте в PATH: `C:\msys64\mingw64\bin`
**Проверка:**
```bash
gcc --version
```
### Шаг 2: Соберите GUI
```bash
# Инициализация (первый раз)
init_gui.bat
# Сборка
build_gui.bat
# Результат: vpn-client-gui.exe
```
### Запуск GUI
```bash
# GUI режим (по умолчанию)
vpn-client-gui.exe
# CLI режим
vpn-client-gui.exe --cli
```
**Преимущества GUI:**
- 🎨 Современный интерфейс
- 📊 Визуальный статус
- 🧪 Графическое тестирование
- 📈 Статистика в реальном времени
- 🔄 Автообновление статуса
---
## 📦 Что уже работает
### ✅ Собрано и готово:
- `vpn-client-cli.exe` - CLI версия (работает!)
- `vpn-client.exe` - старая CLI версия (работает!)
### 📋 Доступный функционал:
1. **WireGuard**
- Добавление конфигов
- Подключение/отключение
- Статистика трафика
2. **VLESS**
- Добавление конфигов
- Подключение через Xray
- Тестирование серверов (ping)
- SOCKS5 прокси: 127.0.0.1:10808
3. **Подписки**
- Добавление подписок
- Автообновление конфигов
- Массовое тестирование серверов
4. **Логирование**
- Детальные логи в папке `logs/`
- Логи трафика
- Логи ошибок
---
## 🚀 Быстрый старт (CLI)
```bash
# 1. Запустите CLI
vpn-client-cli.exe
# 2. Выберите протокол
# - WireGuard (1)
# - VLESS (2)
# - Подписки (3)
# 3. Добавьте конфиг или подписку
# 4. Подключитесь
# 5. Готово!
```
---
## 📊 Сравнение версий
| Функция | CLI | GUI |
|---------|-----|-----|
| Размер | ~10 MB | ~28 MB |
| Требует GCC | ❌ | ✅ |
| WireGuard | ✅ | ✅ |
| VLESS | ✅ | ✅ |
| Подписки | ✅ | ✅ |
| Тестирование | ✅ | ✅ |
| Визуальный статус | ❌ | ✅ |
| Графики | ❌ | ✅ |
| Работает на сервере | ✅ | ❌ |
| Работает без X11 | ✅ | ❌ |
---
## 🔧 Устранение проблем
### "gcc not found"
- Установите GCC (см. выше)
- Или используйте CLI версию
### "cannot open display"
- Используйте CLI версию
- Или запустите с `--cli` флагом
### Проблемы с подключением
1. Проверьте конфигурацию
2. Используйте тестирование (ping)
3. Проверьте логи в `logs/`
4. Убедитесь что Xray в папке `xray/`
---
## 📚 Документация
- `README.md` - Основная документация
- `GUI_GUIDE.md` - Руководство по GUI
- `QUICK_START_GUI.md` - Быстрый старт GUI
- `INSTALL_GCC_WINDOWS.md` - Установка GCC
- `BUILD_INSTRUCTIONS.md` - Детальные инструкции
- `EXAMPLES.md` - Примеры использования
---
## 💡 Рекомендации
**Для обычного использования:**
- Установите GCC и соберите GUI версию
- Удобный интерфейс и визуальный контроль
**Для серверов/автоматизации:**
- Используйте CLI версию
- Меньше зависимостей, работает везде
**Для разработки:**
- Используйте обе версии
- CLI для тестов, GUI для демонстрации
---
**Успешного использования! 🎉**