# VPN с TOTP-аутентификацией и индикатором в трее ## Запуск 1. Установить зависимости: `pip install pyotp keyring pystray pillow` 2. Узнать имя сетевого адаптера: `bash show_tuns.sh` — вписать имя (выводится до GUID) в `.ovpn`-профиль в строку после `dev tun`. 3. Создать конфиг: скопировать `vpn_config.example.json` → `vpn_config.json` и указать свои значения (`username`, пути `ovpn_config` / `openvpn_bin`, `ping_host` — IP сервера для проверки связи). Если пропустить — файл создастся с дефолтами при первом запуске. 4. Расшифровать QR, вынуть `secret`. 5. Положить секреты в keyring: `bash init.sh `. 6. Запуск: `python launch_vpn_gui.py` (запросит права администратора). ## Индикатор в трее - 🔘 серый — openvpn не запущен; - 🟡 жёлтый — запущен, но пинги до `ping_host` не проходят; - 🟢 зелёный — запущен, связь с сервером есть. Проверку связи можно отключить (`"ping_check_enabled": false`) — тогда только серый/зелёный. ## Настройки (`vpn_config.json`) Правятся вручную или через пункт меню «Открыть настройки»; перечитываются на лету. Секреты (`secret`, `static`) в конфиге не хранятся — они в keyring под именем `keyring_service`. ## Сервис для декодирования https://2fafast.com/tools/qr-decoder/