mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-02-26 12:16:02 -05:00
- Added details for NATIVE_SPEEDTEST_PATH to the README under 'Usage'. - Explained default behavior and included examples for overriding the binary location. - Added a verbose log to print the binary path when the plugin starts up.
53 lines
2.1 KiB
Markdown
Executable File
53 lines
2.1 KiB
Markdown
Executable File
## Overview
|
|
|
|
A plugin allowing for executing regular internet speed tests.
|
|
|
|
### Usage
|
|
|
|
This plugin supports two engines:
|
|
1. **Baseline Engine**: Uses the Python `speedtest-cli` library (default).
|
|
2. **Native Engine (Optimized)**: Uses the official native Ookla Speedtest binary.
|
|
|
|
#### Native Speedtest Path
|
|
The plugin looks for the Speedtest binary at `/usr/bin/speedtest` by default. If the binary is located elsewhere, you can configure the path using the `NATIVE_SPEEDTEST_PATH` environment variable:
|
|
|
|
Example:
|
|
```env
|
|
NATIVE_SPEEDTEST_PATH=/custom/path/to/speedtest
|
|
```
|
|
|
|
If this variable is left unset, the plugin assumes `/usr/bin/speedtest`.
|
|
|
|
#### Opt-in for Native Engine
|
|
To use the native engine, you must provide the official binary to the container. The native binary is **strongly recommended** for internet connections > 100 Mbps to ensure CPU bottlenecks don't affect your results.
|
|
|
|
**Setup Instructions:**
|
|
1. **Download:** Get the official binary for your architecture from the [Speedtest CLI Homepage](https://www.speedtest.net/apps/cli).
|
|
2. **Place & Prepare:** Place the binary on your host machine (e.g., in `/opt/netalertx/`) and ensure it has executable permissions:
|
|
|
|
```bash
|
|
chmod +x /opt/netalertx/speedtest
|
|
```
|
|
|
|
3. Docker Mapping: Map the host file to exactly `/usr/bin/speedtest` inside the container via your `docker-compose.yml`:
|
|
|
|
```yaml
|
|
services:
|
|
netalertx:
|
|
volumes:
|
|
- /opt/netalertx/speedtest:/usr/bin/speedtest:ro
|
|
```
|
|
|
|
### Why this mapping?
|
|
Inside the container, a Python version of speedtest often exists in the virtual environment (`/opt/venv/bin/speedtest`). Mapping your native binary specifically to `/usr/bin/speedtest` allows the plugin to prioritize the high-performance native engine over the baseline library.
|
|
|
|
### Data Mapping
|
|
|
|
- **Watched_Value1** — Download Speed (Mbps).
|
|
- **Watched_Value2** — Upload Speed (Mbps).
|
|
- **Watched_Value3** — Full JSON payload (useful for n8n or detailed webhooks).
|
|
|
|
### Notes
|
|
|
|
- The native binary is recommended for connections > 100 Mbps.
|
|
- If the native binary is not detected at /usr/bin/speedtest, or if it fails to execute, the plugin will seamlessly fall back to the baseline Python library. |