XrayPulse/
├── monitor.py # Main monitoring application
├── web_interface.py # Web interface
├── convert.py # Config converter (from existing project)
├── configs/ # Stores converted configs (auto-created)
├── ping_results.json # Test results (auto-created)
├── monitor.log # Application logs (auto-created)
└── core/ # Xray binaries
├── win/
│ └── xray.exe
├── linux/
│ └── xray
└── macos/
└── xray
pip install -r requirements.txtEnsure you have Xray binary installed in:
- Windows:
./core/win/xray.exe - Linux:
./core/linux/xray - macOS:
./core/macos/xray
git clone https://github.com/wikm360/XrayPulse.git
cd XrayPulse- Run the main monitor:
python monitor.py-
Enter your subscription URL when prompted
- The URL will be saved for future use
- Configs will be fetched and converted automatically
-
Access the web dashboard:
- Open browser:
http://127.0.0.1:7070 - Dashboard updates automatically every 10 seconds
- Open browser:
- ✅ Fetches configs from subscription URL
- ✅ Converts vmess/vless to Xray JSON format
- ✅ Tests each config every 5 minutes (configurable)
- ✅ Saves results to
ping_results.json - ✅ Runs continuously with error handling
- ✅ Modern, responsive design
- ✅ Real-time statistics
- ✅ Grid, Chart, and Table views
- ✅ Search and sort functionality
- ✅ Dark/Light theme toggle
- ✅ Auto-refresh every 10 seconds
- ✅ Color-coded status indicators
In monitor.py, modify the interval (in seconds):
# Default is 300 seconds (5 minutes)
self.tester.start(interval=300)In monitor.py, modify the web server port:
self.web_server = subprocess.Popen(
["flet", "run", "-w", "-p", "7070", "web_interface.py"]
) # Change 7070 to desired port
)-
Xray binary not found
- Ensure Xray is in the correct path under
./core/ - Or install Xray system-wide
- Ensure Xray is in the correct path under
-
Permission denied (Linux/macOS)
chmod +x ./core/linux/xray chmod +x ./core/macos/xray
-
Port already in use
- Change the web server port in
monitor.py - Or kill the process using the port
- Change the web server port in
-
Configs not converting
- Ensure
convert.pyis in the same directory - Check that the subscription returns valid vmess/vless configs
- Ensure
Check monitor.log for detailed error messages and debugging information.
- Excellent: < 100ms (Green)
- Good: 100-300ms (Blue)
- Fair: 300-500ms (Orange)
- Poor: > 500ms (Yellow)
- Offline: No response (Red)
{
"last_update": "2024-01-01T12:00:00",
"total_configs": 10,
"results": {
"Config Name": {
"delay": 150.5,
"timestamp": "2024-01-01T12:00:00",
"status": "online"
}
}
}Press Ctrl+C in the terminal to gracefully stop all components.
This project uses components from the original Xray Client project. Ensure you comply with all relevant licenses.
For issues or questions:
- Check the logs in
monitor.log - Ensure all dependencies are installed
- Verify Xray binary compatibility with your system