This software provides a simple, unix friendly bandwidth tester. It has been developed to test bandwidth and upload/download rates to the Eclectic Media Website
Client Side Install and Usage
First, clone the repository from git://eclecticmedia.space/public/auto_bandwidth_test.git.
Second, obtain a JWT key from the server administrator, and place it in the base directory at path ./mykey
Finally, execute ./bin/test.sh.
WARNING: The test script will fail if it does not find a JWT key at './mykey'
This script will automatically handle all dependencies (under 1MB of packages), automatically determine the host IP, perform the bandwidth test, and report it back to the server via a secured REST api.
Server Side Install
All project dependencies can be easily installed with pip. Use pip install -r requirements.txt to ensure all dependencies are met.
Once the python dependencies have been installed, install iperf with:
sudo apt-get install iperf
After iperf has finished installing, configure it to run on port 8028 (package default) and daemonize it (typically via cron/supervisord).
Second, generate a JWT key for authorization.
$ python3 # call the interpreter >>> from app import generate_token # import generation function from app.py >>> generate_token() # run the function >>> exit() # exit the interpreter
By default, this will generate a key at ./mykey. The API looks for this file from its current working directory.
NOTE: This is the file you should distribute to end users!
Finally, daemonize the API bound to host 0.0.0.0 and port 8029! Typically, you would use a service or software like supervisord to achieve this.
Commit History @master
- Updated the readme to be more readable Ariana Giroux 10 months ago
- Added remote_address to log Ariana Giroux 1 year, 6 days ago
- Made client side test more verbose Ariana Giroux 1 year, 6 days ago
- Removed unneccessary import Ariana Giroux 1 year, 6 days ago
- Added a license file Ariana Giroux 1 year, 6 days ago
- Added a super simple Readme Ariana Giroux 1 year, 6 days ago
- Added a Flask API to handle reporting of results Ariana Giroux 1 year, 6 days ago
- Added checks for JWT token, submit via curl to API Ariana Giroux 1 year, 6 days ago
- Added test script f/ bandwidth test Ariana Giroux 1 year, 6 days ago