docs: expand README with project overview
This commit is contained in:
21
README.md
21
README.md
@@ -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).
|
||||||
|
|||||||
Reference in New Issue
Block a user