diff --git a/README.md b/README.md index 4f008d4..829c213 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,20 @@ -# elmprodvpn +# elmprodvpn (Selective VPN Dashboard) -Devlop app selective vpn \ No newline at end of file +Local Linux toolset (Go API + Qt GUI) to manage selective VPN routing and DNS wildcarding for AdGuard VPN / SmartDNS. + +Key features: +- Selective routes via nftables sets (`agvpn4` / `agvpn_dyn4`) + policy routing table (`agvpn`). +- DNS upstream management (default + meta) and optional SmartDNS wildcard list. +- Traffic modes: Selective (fwmark `0x66`), Full tunnel, Direct. +- Auto-local bypass to keep LAN/docker reachable in Full tunnel. +- Policy overrides: force VPN/Direct by source subnet, UID, or systemd cgroup. +- Runtime per-app routing: launch an app in a `systemd --user` scope and apply a temporary cgroup-based mark. + +Repo layout: +- `selective-vpn-api/` - Go backend API (localhost, default `127.0.0.1:8080`). +- `selective-vpn-gui/` - PySide6 GUI (`vpn_dashboard_qt.py`). + +Requirements (high level): +- Linux with `systemd`, `nftables`, `iproute2`, cgroup v2. +- Python 3 + PySide6 + `requests` (GUI). +- Root privileges for routing/nftables changes (run API as a privileged service).