Files
NetAlertX/front/plugins/internet_speedtest/README.md
Amir 218c427552 docs: document NATIVE_SPEEDTEST_PATH config option
- 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.
2025-12-29 19:23:31 -03:00

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.