mesh-test-bot

Start here

Three steps. You don't need to know anything about Docker: you copy a few lines, paste them, and press Enter.

Before you start

1. Install Docker

Docker is a free app that runs the bot for you, so you don't have to install anything else.

2. Pick your setup

📁 First, choose where the bot will live. The commands below create a mesh-test-bot folder inside the folder your terminal is in. That's your personal folder when you open a new terminal, which is a fine place for it. To use another folder, go there first with cd and the folder's name. Avoid Downloads and folders synced to the cloud, such as OneDrive or iCloud.

Don't delete or move this folder. It holds your settings and your reports, and you'll need it whenever you check, change or stop the bot.

A radio without WiFi is usually a RAK4631 or a T-Echo. Open the one that matches you.

📶 Radio with WiFi · Mac, Raspberry Pi or Linux
  1. Connect the radio to your WiFi in the Meshtastic app, and note its IP address (like 192.168.1.50). It's usually on the radio's screen, or in your router's list of devices.
  2. Note the test channel's name and number: the first channel in the app is 0, the next is 1, and so on.
  3. Open the Terminal and paste this line:
    curl -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/install.sh | sh
  4. Answer the questions. Press Enter to accept the suggestion in [brackets]; you only need to type the radio's IP, the channel's number and name, and your city.
  5. Start the bot by pasting these lines. You can ignore the text the installer showed at the end:
    cd mesh-test-bot
    docker compose pull
    docker compose up -d
    If you chose to set up MeshMonitor, follow the installer's text instead.
📶 Radio with WiFi · Windows
  1. Connect the radio to your WiFi in the Meshtastic app, and note its IP address (like 192.168.1.50). It's usually on the radio's screen, or in your router's list of devices.
  2. Note the test channel's name and number: the first channel in the app is 0, the next is 1, and so on.
  3. Open PowerShell from the Start menu and paste these lines. The last one opens a file in Notepad:
    mkdir -Force mesh-test-bot\data
    cd mesh-test-bot
    curl.exe -fsSLO https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/docker-compose.yml
    if (!(Test-Path .env)) { curl.exe -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/env.example -o .env }
    notepad .env
    Do this once. If the folder already exists, run cd mesh-test-bot and then only notepad .env.
  4. In Notepad, change the text after = on these four lines: MTBOT_HOST (the IP), MTBOT_CHANNEL (the number), MTBOT_CHANNEL_NAME and MTBOT_PLACE (your city). Save and close.
  5. Back in PowerShell, paste:
    docker compose up -d
🔵 Bluetooth-only radio · Raspberry Pi or Linux

This starts three things together: a Bluetooth bridge, MeshMonitor and the bot. Keep the radio within about 10 m of the computer.

First, disconnect your phone from the radio, or turn off the phone's Bluetooth. The radio takes one Bluetooth connection at a time: while your phone holds it, the computer can't find the radio, and the phone can't use it during tests.

  1. Pair the radio, once. Paste these lines one at a time:
    bluetoothctl
    agent on
    default-agent
    scan on
    Wait for Meshtastic_XXXX and note its address, then, with your own address:
    pair AA:BB:CC:DD:EE:FF
    trust AA:BB:CC:DD:EE:FF
    exit
    The PIN is on the radio's screen. A radio with no screen uses 123456 unless you changed it.
  2. Find this computer's IP address. It's the first number this shows, like 192.168.1.60:
    hostname -I
  3. Download the files and open the settings:
    mkdir -p mesh-test-bot/data && cd mesh-test-bot
    curl -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/with-ble.yml -o docker-compose.yml
    [ -e .env ] || curl -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/ble.env.example -o .env
    nano .env
    Do this once. If the folder already exists, run cd mesh-test-bot and then only nano .env.
  4. Change the five values. For BLE_ADDRESS, use the radio's address. For ALLOWED_ORIGINS, write http://, this computer's IP and :8080, like http://192.168.1.60:8080. Then set the channel number, the channel's name and your city. To save and leave nano: Ctrl+O, Enter, Ctrl+X.
  5. Start everything:
    docker compose up -d
  6. In a browser, open exactly the address you wrote in ALLOWED_ORIGINS. Log in with admin / changeme and change the password.
  7. Go to Dashboard → Sources, edit the radio's source and turn on Enable Virtual Node, with port 4404 and Admin commands off.
  8. Wait a few minutes. In step 3 below, Startup check FAILED lines from before this point are normal. The bot keeps retrying until you see Startup check OK.

Nobody has run this setup with the bot on a real radio yet. If you try it, please tell us how it went. More details.

🔵 Bluetooth-only radio · Windows

Docker Desktop can't reach Bluetooth, so a small Windows app does that part. That app must be running at test time too.

First, disconnect your phone from the radio, or turn off the phone's Bluetooth. The radio takes one Bluetooth connection at a time.

  1. Pair the radio in Settings → Bluetooth & devices → Add device. The PIN is on the radio's screen. A radio with no screen uses 123456 unless you changed it. Then open the radio in that list and note its Bluetooth address.
  2. Download meshtastic-ble-bridge.exe from MeshMonitor's BLE Bridge page and run it. It appears as an icon near the clock.
  3. Right-click the icon and open Settings. Enter the Bluetooth address, leave the port at 4403, turn on Auto-start and click Connect. After restarting the computer, open the app again. If Windows asks about the firewall, don't allow other computers.
  4. Open PowerShell from the Start menu and paste these lines. The last one opens a file in Notepad:
    mkdir -Force mesh-test-bot\data
    cd mesh-test-bot
    curl.exe -fsSLO https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/docker-compose.yml
    if (!(Test-Path .env)) { curl.exe -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/env.example -o .env }
    notepad .env
    Do this once. If the folder already exists, run cd mesh-test-bot and then only notepad .env.
  5. In Notepad, change the MTBOT_HOST line to MTBOT_HOST=host.docker.internal. Then change the text after = on MTBOT_CHANNEL (the number), MTBOT_CHANNEL_NAME and MTBOT_PLACE (your city). Save and close.
  6. Back in PowerShell, paste:
    docker compose up -d

Nobody has run this setup with the bot yet. If you try it, please tell us how it went.

🔵 Bluetooth-only radio · Mac

Bluetooth doesn't work here: Docker on a Mac can't reach it, and there's no Mac bridge app. Use a Raspberry Pi if you have one, or connect the radio by USB cable:

  1. Follow these steps to start socat. You need Homebrew to install it. Leave that Terminal window open, including at test time.
  2. In a new Terminal window, follow the WiFi steps for Mac above. When the installer asks for the radio's IP, type host.docker.internal.

Nobody has run this setup with the bot yet. If you try it, please tell us how it went.

3. Check it works

From the mesh-test-bot folder, paste the line below. If you opened a new terminal, go back to the folder first with cd mesh-test-bot (from wherever you created it). Every docker compose command on this page must run from that folder.

docker compose logs -f --no-log-prefix bot

Within about a minute you should see Startup check OK. The first line says when the next session is. Press Ctrl+C to stop watching: the bot keeps running.

If you chose on-demand in the installer, there's no startup check: you'll see Sending at: instead, and the bot stops when the session ends.

After each session, your report is in the data folder, in report.txt.

If something goes wrong