View Categories

Installing MikroSpeed Addon

MikroSpeed Addon: Setup, Multi-Server Architecture & Settings Guide

📌 1. Overview & How MikroSpeed Works #

MikroSpeed is an automated, enterprise-grade bandwidth benchmarking agent engineered for MikroTik RouterOS devices. It bridges MikroWizard with a high-speed Rust implementation (btest-rs) of the MikroTik Bandwidth Test protocol.

Architecture Flow

┌─────────────────────────────────────────────────────────────┐
│                      MikroWizard Core                       │
└──────────────────────────────┬──────────────────────────────┘
                               │ HTTP REST API (Port 8200)
                               │ (Bearer Token Auth)
                               ▼
┌─────────────────────────────────────────────────────────────┐
│                 MikroSpeed Server / POP Agent               │
│                                                             │
│  ┌──────────────────────┐      ┌─────────────────────────┐  │
│  │   FastAPI Manager    │ ───► │  btest-rs Rust Engine   │  │
│  │     (Port 8200)      │      │      (Port 2000)        │  │
│  └──────────────────────┘      └────────────┬────────────┘  │
└─────────────────────────────────────────────┼───────────────┘
                                              │ MikroTik BTest
                                              │ Protocol
                                              ▼
                                 ┌─────────────────────────┐
                                 │   MikroTik RouterOS     │
                                 └─────────────────────────┘

Architecture

Key Technical Highlights: #

  • Modern EC-SRP5 Authentication: Fully compatible with RouterOS v6.43+ and v7.x using Curve25519 Weierstrass SRP authentication.
  • On-Demand Lifecycle: Spawns isolated BTest server sessions dynamically and auto-terminates processes after test completion + safety buffers to conserve server CPU and RAM.
  • Multi-Location Auto-Detection: Supports deploying multiple speed test servers across different data centers or POPs. MikroWizard automatically detects and selects the lowest latency server for each router.
  • Granular Benchmarking: Measures TCP Downlink, TCP Uplink, UDP Downlink, UDP Uplink, Ping latency, and Jitter.

🌐 2. Network & System Requirements #

Before installing MikroSpeed, ensure the target server and network firewalls satisfy the following requirements:

Server Prerequisites #

  • Operating System: Linux (Ubuntu 20.04+, Debian 11+, RHEL 8+).
  • Runtime: Docker installed and active (`docker.service`).
  • Privileges: Root access (`sudo`).

Network Ports & Firewall Rules #

💻 3. Installing MikroSpeed Locally (Same Server as MikroWizard) #

If you are running MikroSpeed on the same physical server or VM as MikroWizard, the automated installer will deploy the Docker container and automatically integrate it into `/opt/mikrowizard/server-conf.json`.

Step 1: Run the 1-Line Installer #

Open a terminal on your MikroWizard server and execute:

Bash
curl -fsSL https://raw.githubusercontent.com/MikroWizard/MikroSpeed/master/install.sh | sudo bash
Bash

Step 2: Interactive Prompt Configuration #

During installation, accept the default values for local installation:

  • BTest Server Listen Port [2000]: Press `Enter` (Default: `2000`).
  • HTTP API Manager Port [8200]: Press `Enter` (Default: `8200`).
  • HTTP API Listen Host IP [127.0.0.1]: Press `Enter` (Default: `127.0.0.1`).
Bash
--- MikroSpeed Configuration ---
BTest Server Listen Port [2000]: 
HTTP API Manager Port [8200]: 

🔒 SECURITY NOTICE - API Listen IP Address:
    127.0.0.1 (Default) : Restricts REST API access to local loopback interface.
    0.0.0.0             : Exposes REST API to all network interfaces (requires firewall protection).
HTTP API Listen Host IP [127.0.0.1]: 

Pulling MikroSpeed Docker image (mikrowizard/speedtest-addon:latest) from Docker Hub...
Starting container...
Waiting for MikroSpeed Agent to initialize.... Online!
Integrating with local MikroWizard server config...
Reloading MikroWizard server...
---
Success! MikroSpeed is running.
API Token: e2f651f2d30a8afa6d657526c2db3b08270b536a436603e3a7567cfb5bdeaeee
BTest Port: 2000
API Host: 127.0.0.1
API Port: 8200
Bash

🌍 4. Installing MikroSpeed on Remote Servers & POP Locations #

To measure true network throughput across geographically distributed networks, ISPs and enterprises can deploy MikroSpeed agents on multiple remote servers (e.g., London POP, Frankfurt DC, Tokyo Edge).

Step 1: Run Installer on Remote Server #

SSH into the remote server (e.g., `192.168.1.150` or `london.speedtest.mydomain.com`) and run:

Bash
curl -fsSL https://raw.githubusercontent.com/MikroWizard/MikroSpeed/master/install.sh | sudo bash
Bash

Step 2: Configure Public / LAN Binding #

When prompted for the IP address, specify `0.0.0.0` or the server’s public/LAN IP:

Bash
HTTP API Listen Host IP [127.0.0.1]: 0.0.0.0
Bash

Step 3: Copy the Generated API Token #

Upon completion, copy the printed API Token:

Bash
==================================================
Success! MikroSpeed is running.
API Token: e2f651f2d30a8afa6d657526c2db3b08270b536a436603e3a7567cfb5bdeaeee
BTest Port: 2000
API Host: 0.0.0.0
API Port: 8200
==================================================
Bash

⚙️ 5. Tutorial: Adding Remote Speed Test Servers in MikroWizard Settings #

After deploying a remote MikroSpeed agent, add it to your MikroWizard cluster through the web interface.

Step-by-Step UI Setup: #

1. Log in to your MikroWizard Admin Dashboard.
2. Navigate to System Settings > Speed Test Servers tab.
3. Under Add Speed Test Server, fill in the following fields:

4. Click the green + Add Server button to save.

📡 6. Multi-Server & Multi-Location Architecture #

MikroWizard supports adding an unlimited number of remote MikroSpeed servers across your network:

Multi-Server Architecture
                          ┌────────────────────────┐
                          │   MikroWizard Master   │
                          └───────────┬────────────┘
                                      │
           ┌──────────────────────────┼──────────────────────────┐
           │ Auto-Latency Check       │ Auto-Latency Check       │ Auto-Latency Check
           ▼                          ▼                          ▼
┌──────────────────────┐   ┌──────────────────────┐   ┌──────────────────────┐
│  London POP Server   │   │ Frankfurt DC Server  │   │  Tokyo Edge Server   │
│ (192.168.1.150:8200) │   │ (10.50.0.20:8200)    │   │ (172.16.80.5:8200)   │
└──────────────────────┘   └──────────────────────┘   └──────────────────────┘
Multi-Server

Auto-Detection & Lowest Latency Routing #

When performing a bandwidth test on any router, MikroWizard offers an Auto-detect / Lowest Latency mode:

  • MikroWizard measures the network latency (ping) between the target router and all configured speed test servers.
  • It automatically selects the optimal server with the lowest round-trip latency to ensure accurate throughput benchmarking without routing bottlenecks.

📊 7. Running & Verifying Bandwidth Tests #

Once a local or remote MikroSpeed server is configured, bandwidth tests can be executed directly from any router’s management panel:

1. Go to Device Management > Devices and click on your target router (e.g. `CHR-Tower01`).
2. Select the Speed Test tab.
3. Select your Target Speed Test Server (or `Auto-detect / Lowest Latency`) and Test Duration.
4. Click ► Start Speed Test.

Benchmarking Metrics Delivered: #

❓ 8. Troubleshooting & FAQ #