Files
Go-VPN-Client/Markdown/CHANGELOG_GUI.md
arkonsadter e0a5f0f746 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
2026-04-06 18:57:58 +06:00

186 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog - GUI Version
## [2.0.0] - 2026-04-05
### Добавлено
- ✨ Современный графический интерфейс (GUI) на базе Fyne
- 🎨 Material Design стиль интерфейса
- 📊 Панель статуса в реальном времени с индикатором подключения
- ⏱️ Отображение времени подключения
- 📈 Статистика трафика для WireGuard (прием/передача)
- 🔄 Автоматическое обновление статуса каждые 2 секунды
- 🎯 Три вкладки: WireGuard, VLESS, Подписки
- 🧪 Тестирование серверов с визуальным прогрессом
- 📋 Просмотр конфигураций из подписок
- 🔍 Массовое тестирование серверов из подписки
- 💾 Добавление WireGuard конфигов из файла
- 🎨 Кастомная цветовая тема
- ⚡ Асинхронные операции с индикаторами прогресса
- 🔔 Диалоговые окна для подтверждения действий
- 📱 Адаптивный интерфейс
### Изменено
- 🔧 main.go теперь поддерживает два режима: GUI (по умолчанию) и CLI (--cli флаг)
- 📦 Обновлены зависимости в go.mod (добавлен Fyne v2.4.5)
- 📝 Обновлен README.md с инструкциями по GUI
- 🛠️ Новые скрипты сборки: build_gui.bat, build_gui.sh
- 🔧 Новые скрипты инициализации: init_gui.bat, init_gui.sh
### Сохранено
- ✅ Весь функционал CLI версии
- ✅ Поддержка WireGuard
- ✅ Поддержка VLESS через Xray
- ✅ Управление подписками
- ✅ Тестирование серверов
- ✅ Детальное логирование
- ✅ Кроссплатформенность
### Технические детали
#### Новые файлы
- `internal/gui/gui.go` - основной модуль GUI (1000+ строк)
- `build_gui.bat` - скрипт сборки для Windows
- `build_gui.sh` - скрипт сборки для Linux/macOS
- `init_gui.bat` - инициализация зависимостей для Windows
- `init_gui.sh` - инициализация зависимостей для Linux/macOS
- `GUI_GUIDE.md` - подробное руководство пользователя GUI
#### Архитектура GUI
**Структура интерфейса:**
```
MainWindow
├── Header (Title + Status)
│ ├── StatusIcon (Circle indicator)
│ ├── StatusLabel
│ └── ConnectionInfo
├── Tabs
│ ├── WireGuard Tab
│ │ ├── Config List
│ │ └── Action Buttons
│ ├── VLESS Tab
│ │ ├── Config List
│ │ └── Action Buttons
│ └── Subscriptions Tab
│ ├── Subscription List
│ └── Action Buttons
└── Footer
└── Disconnect Button
```
**Основные компоненты:**
1. **GUI struct**
- app: fyne.App
- window: fyne.Window
- statusLabel: динамический статус
- statusIcon: индикатор подключения
- connectionInfo: детальная информация
- statusTimer: таймер обновления
2. **Функции WireGuard**
- connectWireGuard()
- addWireGuardManual()
- addWireGuardFromFile()
- deleteWireGuard()
3. **Функции VLESS**
- connectVLESS()
- addVLESS()
- testVLESS()
- deleteVLESS()
4. **Функции подписок**
- addSubscription()
- updateSubscription()
- showSubscriptionConfigs()
- testSubscriptionConfigs()
- deleteSubscription()
5. **Утилиты**
- updateStatus() - обновление статуса
- disconnect() - отключение VPN
- makeCard() - создание карточек UI
- customTheme - кастомная тема
#### Особенности реализации
**Асинхронность:**
- Все длительные операции выполняются в горутинах
- Используются dialog.NewProgressInfinite для индикации
- UI остается отзывчивым во время операций
**Обновление статуса:**
- Автоматическое обновление каждые 2 секунды
- Изменение цвета индикатора (серый/зеленый)
- Отображение времени подключения в формате HH:MM:SS
- Статистика трафика для WireGuard
**Тестирование серверов:**
- Визуальный прогресс-бар
- Отображение текущего тестируемого сервера
- Сортировка результатов по пингу
- Топ-10 лучших серверов
**Диалоги:**
- Подтверждение удаления
- Формы ввода данных
- Информационные сообщения
- Ошибки с детальным описанием
#### Зависимости
**Новые:**
- fyne.io/fyne/v2 v2.4.5 - GUI фреймворк
- Множество транзитивных зависимостей Fyne
**Существующие:**
- github.com/fatih/color v1.16.0 - для CLI
- golang.org/x/sys v0.16.0 - системные вызовы
#### Сборка
**Windows:**
```bash
go build -ldflags="-s -w -H windowsgui" -o vpn-client-gui.exe main.go
```
- `-s -w` - уменьшение размера
- `-H windowsgui` - скрытие консоли
**Linux/macOS:**
```bash
go build -ldflags="-s -w" -o vpn-client-gui main.go
```
#### Размер приложения
- Исполняемый файл: ~25-30 MB (с GUI)
- CLI версия: ~10-15 MB
- Потребление RAM: 50-100 MB (GUI), 20-30 MB (CLI)
### Совместимость
- ✅ Windows 10/11
- ✅ Linux (Ubuntu, Debian, Fedora, Arch и др.)
- ✅ macOS 10.13+
- ✅ Обратная совместимость с CLI режимом
### Известные ограничения
- GUI требует графическую среду (X11/Wayland/Windows)
- Для серверов рекомендуется использовать CLI режим
- WireGuard на Windows требует установки официального клиента
### Планы на будущее
- [ ] Темная тема
- [ ] Системный трей
- [ ] Автозапуск при старте системы
- [ ] Экспорт/импорт конфигураций
- [ ] Графики статистики трафика
- [ ] Уведомления о событиях
- [ ] Мультиязычность
- [ ] Автоматическая настройка системного прокси
- [ ] Профили подключений
- [ ] История подключений