|  | 
| 2 | 2 | 
 | 
| 3 | 3 | Simple and effective tool for measuring ISP performance at home. The tool measures several performance metrics including packet loss, latency, jitter, and DNS performance. It also aggregates these metrics into a common score, which you can use to monitor overall health of your internet connection. | 
| 4 | 4 | 
 | 
|  | 5 | +## Support the Project | 
|  | 6 | + | 
|  | 7 | +If you'd like to support the development of this project, feel free to buy me a coffee! | 
|  | 8 | + | 
|  | 9 | +https://buymeacoffee.com/plaintextpm | 
|  | 10 | + | 
|  | 11 | +## Full Tutorial | 
|  | 12 | + | 
|  | 13 | +Visit YouTube for a full tutorial on how to install and use Netprobe: | 
|  | 14 | + | 
|  | 15 | +https://youtu.be/Wn31husi6tc | 
|  | 16 | + | 
|  | 17 | + | 
| 5 | 18 | ## Requirements and Setup | 
| 6 | 19 | 
 | 
| 7 | 20 | To run Netprobe Lite, you'll need a PC running Docker connected directly to your ISP router. Specifically: | 
| @@ -59,24 +72,76 @@ DNS_NAMESERVER_4_IP="8.8.8.8" # Replace this IP with the DNS server you use at h | 
| 59 | 72 | 
 | 
| 60 | 73 | Change 8.8.8.8 to the IP of the DNS server you use, then restart the application (docker compose down / docker compose up) | 
| 61 | 74 | 
 | 
| 62 |  | -### Data storage | 
|  | 75 | +### Data storage - default method | 
| 63 | 76 | 
 | 
| 64 |  | -By default, Docker will store the data collected in a volume, which will persist between restarts. | 
|  | 77 | +By default, Docker will store the data collected in several Docker volumes, which will persist between restarts. | 
| 65 | 78 | 
 | 
| 66 |  | -To clear out old data, you need to first delete the Prometheus container: | 
|  | 79 | +They are: | 
| 67 | 80 | 
 | 
| 68 | 81 | ``` | 
| 69 |  | -docker rm netprobe-prometheus | 
|  | 82 | +netprobe_lite_grafana_data (used to store Grafana user / pw) | 
|  | 83 | +netprobe_lite_prometheus_data (used to store time series data) | 
| 70 | 84 | ``` | 
| 71 | 85 | 
 | 
| 72 |  | -Then prune the docker volumes: | 
|  | 86 | +To clear out old data, you need to stop the app and remove these volumes: | 
| 73 | 87 | 
 | 
| 74 | 88 | ``` | 
| 75 |  | -docker volume prune | 
|  | 89 | +docker compose down | 
|  | 90 | +docker volume rm netprobe_lite_grafana_data | 
|  | 91 | +docker volume rm netprobe_lite_prometheus_data | 
| 76 | 92 | ``` | 
| 77 | 93 | 
 | 
| 78 | 94 | When started again the old data should be wiped out. | 
| 79 | 95 | 
 | 
|  | 96 | +### Data storage - bind mount method | 
|  | 97 | + | 
|  | 98 | +Using the default method, the data is stored within Docker volumes which you cannot easily access from the host itself. If you'd prefer storing data in mapped folders from the host, follow these instructions (thank you @Jeppedy): | 
|  | 99 | + | 
|  | 100 | +1. Clone the repo | 
|  | 101 | + | 
|  | 102 | +2. Inside the folder create two directories: | 
|  | 103 | + | 
|  | 104 | +``` | 
|  | 105 | +mkdir -p data/grafana data/prometheus  | 
|  | 106 | +``` | 
|  | 107 | + | 
|  | 108 | +3. Modify the compose.yml as follows (volume path as well as adding user ID): | 
|  | 109 | + | 
|  | 110 | +``` | 
|  | 111 | +  prometheus: | 
|  | 112 | +    restart: always | 
|  | 113 | +    container_name: netprobe-prometheus | 
|  | 114 | +    image: "prom/prometheus" | 
|  | 115 | +    volumes: | 
|  | 116 | +      - ./config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml | 
|  | 117 | +      - ./data/prometheus:/prometheus # modify this to map to the folder you created | 
|  | 118 | +
 | 
|  | 119 | +    command: | 
|  | 120 | +      - '--config.file=/etc/prometheus/prometheus.yml' | 
|  | 121 | +      - '--storage.tsdb.path=/prometheus' | 
|  | 122 | +    networks: | 
|  | 123 | +      - custom_network  # Attach to the custom network | 
|  | 124 | +    user: "1000" # set this to the desired user with correct permissions to the bind mount | 
|  | 125 | +
 | 
|  | 126 | +  grafana: | 
|  | 127 | +    restart: always | 
|  | 128 | +    image: grafana/grafana-enterprise | 
|  | 129 | +    container_name: netprobe-grafana | 
|  | 130 | +    volumes: | 
|  | 131 | +      - ./config/grafana/datasources/automatic.yml:/etc/grafana/provisioning/datasources/automatic.yml | 
|  | 132 | +      - ./config/grafana/dashboards/main.yml:/etc/grafana/provisioning/dashboards/main.yml | 
|  | 133 | +      - ./config/grafana/dashboards/netprobe.json:/var/lib/grafana/dashboards/netprobe.json | 
|  | 134 | +      - ./data/grafana:/var/lib/grafana  # modify this to map to the folder you created | 
|  | 135 | +    ports: | 
|  | 136 | +      - '3001:3000' | 
|  | 137 | +    networks: | 
|  | 138 | +      - custom_network  # Attach to the custom network | 
|  | 139 | +    user: "1000" # set this to the desired user with correct permissions to the bind mount | 
|  | 140 | +``` | 
|  | 141 | + | 
|  | 142 | +4. Remove the volumes section from compose.yml | 
|  | 143 | + | 
|  | 144 | + | 
| 80 | 145 | ### Run on startup | 
| 81 | 146 | 
 | 
| 82 | 147 | To configure the tool to work as a daemon (run on startup, keep running), edit 'compose.yml' and add the following to each service: | 
|  | 
0 commit comments