# awg-panel

Веб-панель управления VPN-сервером на одном экране: **AmneziaWG**, **XRay (VLESS — TLS или Reality)** и **mtg (MTProto)**. Flask + ванильный JS, без БД — состояние в JSON-файлах.

## Что умеет
- Клиенты AWG / XRay / mtg: добавление, удаление, ссылки и QR, лимиты и расписание трафика
- XRay в режиме TLS и Reality; конфиги для Shadowrocket / Loon / Clash с наборами правил маршрутизации (готовые списки blackmatrix7 + свои)
- Логи подключений (IP, гео, домены), статистика трафика, онлайн-статус
- Глобальные правила маршрутизации, маскировка входа под обычный сайт, бэкапы, авто-проверка зависимостей
- Обновление XRay / mtg и самой панели из интерфейса (версии протоколов, авто-апдейт по манифесту)
- Журнал действий администратора (входы, изменения настроек и клиентов)

## Установка
Пошаговый интерактивный гайд — открой **`install_interactive.html`** в браузере: режимы TLS и Reality, команды генерируются под твои данные.

Готовый архив всего пакета: <https://byfox.dev/data/awg-panel/awg-panel.zip>

## Обновление
Панель сама проверяет версию и обновляет код по `manifest.json` с <https://byfox.dev/data/awg-panel> (кнопка в подвале). Per-server данные (`server.json`, `admin.json`, клиенты, `data/`) обновление не трогает.

## Гео
Базы MaxMind GeoLite2 (City/ASN) панель качает с <https://byfox.dev/data/maxmind>. Локальная версия баз хранится в `manifest.json` (поле `geo_version`) и раз в ~180 дней сверяется с датой на CDN — если устарела, панель предложит обновить.

## Состав `deploy/`
- `app.py` — бэкенд (Flask)
- `static/` — UI (`index.html` + `app.js`) и страницы логов
- `manifest.json` — версия панели + `geo_version`
- `install_interactive.html` — интерактивная инструкция установки
- `data/` — гео-базы и логи; создаётся панелью на сервере, в репозиторий не входит
