Get Started

Install MeshDash

From a fresh Raspberry Pi to a running dashboard in under 5 minutes. The Setup Wizard is the recommended path — it generates a personalised install command tailored to your hardware and radio. Or follow the complete manual walkthrough below.

R3.1.2 LATEST STABLE Released 2026-06-03
mesh-dash.zip install.sh
Hardware

Raspberry Pi 2B+ or any ARM/x86 Linux. 512 MB RAM minimum, 1 GB recommended.

OS

Raspberry Pi OS, Ubuntu 20.04+, Debian 11+, or any Linux with Python 3.9+. WSL2 supported.

Python

3.9 or higher. pip3 + venv. The installer auto-installs missing Python packages on Debian/Ubuntu.

Radio

Any Meshtastic device via USB Serial, TCP/WiFi, Bluetooth BLE, or Web Serial (browser).

The Setup Wizard — Fastest Path

The Setup Wizard at meshdash.co.uk/c2_setup.php asks you a few questions and generates a single personalised curl | bash command. The command is pre-configured with your API key, version selection, and radio connection type. Paste it into your terminal and it handles everything.

Why the Wizard generates your command

The installer script has three template placeholders — {VERSION}, {API_KEY}, and {BASE_URL} — that must be populated before it will run. The Wizard fills these in and generates your personalised command. Running the raw install.sh without these filled in will immediately exit with an error explaining this.

1

Select your hardware

Choose Raspberry Pi, Ubuntu server, or WSL2. The generated command adapts slightly per platform.

2

Choose radio connection

USB Serial (auto-detects port), TCP/WiFi, Bluetooth BLE, or Web Serial. Sets MESHTASTIC_CONNECTION_TYPE in your config.

3

Remote access tier

Optional. Off by default. Choose heartbeat-only (community map) up to full operator remote access.

4

Copy and run one command

The Wizard outputs a single curl | bash command with your API key, version, and settings pre-baked. Paste it, run it, done.

Open Setup Wizard
Real-Time Node Monitoring

Live node cards with battery, SNR, RSSI, GPS, and signal bars. SSE-powered — no page refresh. Track every node on your mesh at a glance.

Multi-Radio Support

Connect up to 16 Meshtastic radios simultaneously — Serial, TCP, BLE, MQTT, and MeshCore. Each slot gets its own database and data stream.

Auth & Security Hardened

JWT in HttpOnly cookies, bcrypt hashing, CSRF double-submit protection, and optional TOTP 2FA. Built for exposed networks.

Analytics & Telemetry

Nine telemetry metrics with 1-hour to 30-day ranges, network averages, and side-by-side node comparison charts.

Plugin System

Drop-in folder architecture with FastAPI router, static file serving, sidebar nav, and lifecycle management. Extend MeshDash without touching core code.

MeshShark Packet Capture

Wireshark-style packet inspector with BPF filter syntax, three-pane detail view, and source evidence scoring.

Remote Access

Five access tiers — heartbeat-only community map up to full operator control. HMAC-signed outbound-only polling, no port forwarding needed.

Auto-Reply & Task Scheduler

Regex-triggered auto-replies with dynamic placeholders and per-sender cooldowns. Cron-based message broadcasts and sensor ingress.

Connecting Your Meshtastic Radio

USB Serial

The most reliable method. Plug the device into a USB port.

  • Raspberry Pi: /dev/ttyUSB0 or /dev/ttyACM0
  • Run `dmesg | grep tty` after plugging in
  • May need: `sudo usermod -aG dialout $USER`
  • Baud 115200 default
MESHTASTIC_CONNECTION_TYPE=SERIAL
MESTASHTIC_SERIAL_PORT=/dev/ttyACM0

TCP / WiFi

Connect over LAN when the device has WiFi enabled.

  • Enable WiFi in the Meshtastic app
  • Default port is 4403
  • Best for Docker (no USB passthrough needed)
  • Works across VLANs if routing is configured
MESHTASTIC_CONNECTION_TYPE=TCP
MESTASHTIC_HOST=192.168.1.50
MESTASHTIC_PORT=4403

Bluetooth BLE

Experimental BLE support requires a Bluetooth adapter on the server.

  • Install: pip install bleak
  • Scan: meshtastic --ble-scan
  • Use MAC address in config
  • Less stable than serial
MESHTASTIC_CONNECTION_TYPE=BLE
MESTASHTIC_BLE_MAC=AA:BB:CC:DD:EE:FF

Web Serial (Browser)

The browser holds the USB port. No server serial required. Chrome/Edge only.

  • Open MeshDash in Chrome or Edge
  • Click USB icon in the topbar
  • Select your device in the browser picker
  • Streams to server via WebSocket
Set in UI — no config key needed

Tested Hardware

LILYGO T-Beam v1.1
CP2102 USB · ESP32
All features
Most popular choice. GPS + LoRa.
LILYGO T-Beam S3
Native USB · ESP32-S3
All features
Latest T-Beam. USB-C. Native USB.
Heltec WiFi LoRa v3
CH340 USB · ESP32
All features
Compact. Built-in OLED.
LILYGO T-LoRa32 v2
CP2102 USB · ESP32
All features
Good value. No GPS built-in.
Seeed XIAO S3
Native USB · ESP32-S3
All features
Smallest. USB-C native.
RAK WisBlock 4631
USB-C · nRF52840
Most features
Low power. BLE primary mode.
T-Deck
Native USB · ESP32-S3
All features
Keyboard + screen form factor.
Any Meshtastic device
Varies
If it runs Meshtastic firmware it works.

Something not working?

The documentation covers every common issue — serial permissions, Python version conflicts, radio connection timeouts, and browser WebSerial requirements.

Troubleshooting Guide Full Install Docs Try the Setup Wizard