How erfan-xray/xraymesh works
XRayMesh is a web panel for configuring a private server mesh, managing peers and port-forwarding tunnels, and running peer-to-peer diagnostics. Users sign in, create or join a mesh, then manage servers and tunnels or run ping and speed tests. The frontend calls a local HTTP API served by the Python backend; README documents EasyTier as the mesh core. The graph preserves major documented capabilities, but backend internals and several UI call paths were not excerpted, so uncertain links are omitted.
Main entry points: App.tsx Dashboard shell · api.ts HTTP API client · SetupFlow.tsx Mesh setup and join · server.py Panel server
Components 19
Web panel
- Dashboard shell
frontend/src/App.tsx - Navigation and preferences
frontend/src/components/Header.tsx - English and Persian
frontend/src/i18n/translations.ts
Mesh management
- Mesh setup and join
frontend/src/components/NodeConfig/SetupFlow.tsx - Connections and invites
frontend/src/components/NodeConfig/ConnectionsPanel.tsx - Invite parsing
frontend/src/utils/meshInvite.ts - Peer management
frontend/src/components/Tabs/PeersTab.tsx - Peer status display
frontend/src/components/Peers/PeerRow.tsx - SafeSync settings
frontend/src/components/Modals/ClusterSyncModal.tsx
Network operations
- Tunnel management
frontend/src/components/Tabs/TunnelsTab.tsx - Tunnel state
frontend/src/hooks/useTunnels.ts - Peer ping
frontend/src/components/Tabs/PingTab.tsx - Peer speed tests
frontend/src/components/Tabs/SpeedtestTab.tsx - Node updates
frontend/src/hooks/useNodeUpdates.ts
Backend and mesh core
- HTTP API client
frontend/src/services/api.ts - Panel server
web/server.py - EasyTier mesh core
- Tunnel engines and HTTPS
Other components
- Administrator
Connections 21
- Administrator → Dashboard shell: uses
README.md - Dashboard shell → Navigation and preferences: renders
frontend/src/App.tsx - Dashboard shell → Tunnel state: loads
frontend/src/App.tsx - Dashboard shell → Tunnel management: offers
README.md - Dashboard shell → Peer ping: offers
README.md - Dashboard shell → Peer speed tests: offers
README.md - Dashboard shell → Mesh setup and join: offers
README.md - Navigation and preferences → English and Persian: imports
frontend/src/components/Header.tsx - Mesh setup and join → HTTP API client: calls
frontend/src/components/NodeConfig/SetupFlow.tsx - Mesh setup and join → Invite parsing: uses
frontend/src/components/NodeConfig/SetupFlow.tsx - Connections and invites → HTTP API client: calls
frontend/src/components/NodeConfig/ConnectionsPanel.tsx - Connections and invites → Invite parsing: uses
frontend/src/components/NodeConfig/ConnectionsPanel.tsx - Peer management → Peer status display: renders
frontend/src/components/Tabs/PeersTab.tsx - Peer management → Node updates: uses
frontend/src/components/Tabs/PeersTab.tsx - SafeSync settings → HTTP API client: calls
frontend/src/components/Modals/ClusterSyncModal.tsx - Tunnel management → Tunnel state: uses
frontend/src/components/Tabs/TunnelsTab.tsx - Tunnel state → HTTP API client: fetches
frontend/src/hooks/useTunnels.ts - Node updates → HTTP API client: calls
frontend/src/hooks/useNodeUpdates.ts - HTTP API client → Panel server: requests
frontend/src/services/api.ts - Panel server → EasyTier mesh core: integrates
README.md - Panel server → Tunnel engines and HTTPS: supports
README.md