A single-file Flask application that provides a WiFi network dashboard and browser-based speed test for Raspberry Pi.
- WiFi network scanner showing SSID, signal strength, channel, and frequency
- System metrics (temperature, RAM usage)
- In-browser download/upload speed test
- Auto-refreshing dashboard (15s interval)
- Optimized for low-resource devices (Pi Zero W)
- Python 3.9+
- Raspberry Pi (or Linux with
iw,iwgetid,free) sudoprivileges for WiFi scanning
uv syncpython speedtest.pyOpen http://localhost:5000 in your browser.
| Route | Description |
|---|---|
/ |
WiFi dashboard with system stats |
/speedtest |
Speed test UI |
/speedtest/size |
Returns random test size (JSON) |
/speedtest/download/<size_mb> |
Download test endpoint |
/speedtest/upload |
Upload test endpoint (POST) |
Edit speedtest.py to change:
IFACE- Wireless interface (default:wlan0)CACHE_DURATION- Scan cache TTL in seconds (default:10)