How gwqlike/gwqproxy works
GWQProxy combines an Android community proxy client with a control-plane backend; the backend manages accounts and configuration but does not carry proxy traffic. The primary workflow is member sign-in, configuration and node retrieval, then Android VPN startup through TUN-to-SOCKS forwarding and Mihomo; the app also reports presence. Admins manage users, invitations, nodes, and versioned YAML through the served admin pages. The backend is represented as a monolith because the tree and sampled source show a single server module. Some feature wiring is documented but unsampled, so uncertain internal links are omitted.
Main entry points: server.mjs Control API · MainActivity.java Client UI · MihomoManager.java Mihomo manager · CommunityVpnService.java VPN service
Components 19
Android client
- Client UI
android/app/src/main/java/dev/communityproxy/MainActivity.java - API client
android/app/src/main/java/dev/communityproxy/data/ApiClient.java - Session settings
android/app/src/main/java/dev/communityproxy/data/SessionStore.java - Local config
android/app/src/main/java/dev/communityproxy/data/ConfigStore.java
VPN runtime
- VPN service
android/app/src/main/java/dev/communityproxy/vpn/CommunityVpnService.java - Mihomo manager
android/app/src/main/java/dev/communityproxy/vpn/MihomoManager.java - TUN forwarding
android/app/src/main/java/dev/communityproxy/vpn/Tun2SocksManager.java - Hev JNI bridge
android/app/src/main/java/hev/sockstun/TProxyService.java - Mihomo core
android/app/src/main/assets/mihomo - Local controller
android/app/src/main/java/dev/communityproxy/vpn/MihomoManager.java - Hev native library
android/app/src/main/java/hev/sockstun/TProxyService.java
Control plane
- Control API
backend/src/server.mjs - SQLite state
backend/src/server.mjs - Avatar files
backend/src/server.mjs
Administration
- Admin pages
backend/public/admin.html - Admin login
backend/public/admin-login.html
Other components
- Community member
- Administrator
- Proxy nodes
Connections 23
- Community member → Client UI: uses
- Client UI → API client: requests
- Client UI → Session settings: reads/writes
- Client UI → Local config: saves config
- API client → Control API: HTTPS API
- Control API → SQLite state: reads/writes
- Control API → Avatar files: stores avatars
- Administrator → Admin login: signs in
- Administrator → Admin pages: manages
- Admin login → Control API: authenticates
- Admin pages → Control API: admin API
- Control API → Admin login: serves page
- Control API → Admin pages: serves page
- Client UI → VPN service: starts/stops
- VPN service → Mihomo manager: starts/selects
- VPN service → TUN forwarding: starts/stops
- Mihomo manager → Local config: reads YAML
- Mihomo manager → Mihomo core: launches
- Mihomo manager → Local controller: controls
- TUN forwarding → Hev JNI bridge: starts/stops
- Hev JNI bridge → Hev native library: invokes
- TUN forwarding → Local controller: forwards to SOCKS
- Local controller → Proxy nodes: routes traffic