elmprodvpn (Selective VPN Dashboard)

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).
Description
Devlop app selective vpn
Readme AGPL-3.0 1.9 MiB
Languages
Go 57.4%
Python 38.7%
Shell 2.8%
TypeScript 0.8%
CSS 0.2%