# Инструкция по сборке

## ✅ 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 для демонстрации

---

**Успешного использования! 🎉**
