docs: expand README with project overview

This commit is contained in:
beckline
2026-02-15 01:48:18 +03:00
parent c1e8c8f23e
commit f6a7cfa85a

View File

@@ -1,3 +1,20 @@
# elmprodvpn
# elmprodvpn (Selective VPN Dashboard)
Devlop app selective vpn
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).