MeshDash Docs
R2.0
/
Home Getting Started Introduction

Introduction

Getting Started overview introduction what is meshdash meshtastic dashboard architecture
What MeshDash is, how it works, and how to navigate this documentation.
MeshDash is a self-hosted, locally-run web dashboard and REST API for Meshtastic mesh radio networks. It runs on your own hardware — a Raspberry Pi, Linux server, or Windows (WSL2) — and exposes a full-featured interface for monitoring, messaging, and managing your mesh.

What Is MeshDash?

MeshDash connects to a Meshtastic radio via Serial (USB), TCP (WiFi/LAN), or Bluetooth (BLE), then serves a web application and REST API on your local network. Everything runs on your own hardware. Your data stays local by default. Remote access is opt-in and controlled entirely by you.

The system is built on FastAPI (Python async web framework) with a SQLite database backend. A background APScheduler-based connection manager handles radio lifecycle, reconnection, and all packet processing.

Architecture

[ Meshtastic Radio ]
        |
   Serial / TCP / BLE
        |
[ MeshDash Python Process ]
   ├── FastAPI ASGI App  (uvicorn)
   │    ├── REST API endpoints (/api/*)
   │    ├── SSE stream (/sse)
   │    ├── HTML page routes (/, /map, /settings …)
   │    ├── Plugin router (/api/plugins/*)
   │    └── Static frontend (/static/*)
   │
   ├── MeshtasticConnectionManager  (connection.py)
   │    └── Reconnect loop with configurable retry/timeout
   │
   ├── MeshtasticData  (in-memory + SQLite)
   │    ├── Packet deque (RAM buffer, configurable size)
   │    ├── Node dict
   │    └── DatabaseManager (WAL-mode SQLite)
   │
   ├── Background Workers
   │    ├── Packet processor  (asyncio queue per slot)
   │    ├── Stats broadcaster (every 10 s)
   │    ├── Metrics saver     (every 5 min)
   │    ├── DB pruner         (every 1 hr)
   │    ├── Task scheduler    (task_scheduler.py)
   │    ├── Auto-reply engine (auto_reply.py)
   │    ├── Telemetry monitor (monitor.py)
   │    ├── C2 bridge worker  (remote access)
   │    ├── Plugin watchdog
   │    └── Connection heartbeat logger
   │
   └── Plugin Engine
        └── Loads /plugins/*/  with isolation & watchdog

Key Features

Radio Connectivity

Serial, TCP, and BLE connection modes with automatic reconnection and per-node multi-slot support.

Live Telemetry

Battery, SNR, RSSI, channel utilisation, uptime, and environmental metrics tracked and graphed over time.

Messaging

Send and receive messages to any node or channel, with ACK tracking and delivery status via DB.

Remote Access (C2)

Optional. Access your dashboard from anywhere via meshdash.co.uk — tiered access control, no port forwarding required.

Auto-Reply

Rules-based automated responses: contains, exact, or regex matching with per-sender cooldowns.

Plugin System

Drop a folder into /plugins/ to extend the API and UI. Watchdog, isolation, and hot-toggle supported.

Supported Platforms

PlatformStatusNotes
Ubuntu / DebianSupportedPrimary target. Tested on 22.04+
Raspberry Pi OSSupportedPi 3B+ or newer recommended
Windows (WSL2)SupportedUbuntu 22.04 inside WSL2. USB via usbipd
DockerSupportedOfficial image: rusjpmd/meshdash-runner:latest
macOS / Windows nativePlannedNot yet officially supported

Documentation Map

Use the sidebar to jump to any section. Pages are grouped by category:

Getting Started:

  1. Installation — automated installer, Docker, manual, and update process
  2. Configuration Reference — every key in .mesh-dash_config with types and defaults
  3. Radio Connection — Serial, TCP, BLE, and WebSerial setup
  4. Connection Manager — health check timing, strike system, reconnect lifecycle
  5. Database Schema — every table and column in both SQLite databases
  6. Packet Source Detection — how RF vs MQTT is determined per packet
  7. Task Scheduler — cron evaluation, task execution, heartbeat internals

API Reference:

  1. API Authentication — JWT tokens, login flow, initial setup
  2. Core API Endpoints — all ~30 endpoints: status, nodes, packets, messages, SSE, console
  3. Tasks API — scheduled task CRUD
  4. Auto-Reply API — automated response rules, placeholders, bulk operations
  5. Telemetry Monitor API — threshold alerting over the mesh
  6. System & Config API — config R/W, updates, restart, multi-radio slot management
  7. Plugin API — full plugin lifecycle, manifest spec, install, logs, watchdog
  8. Web Serial API — server-side endpoints for browser USB bridge
  9. Remote Access (C2) — community map, access tiers, security protections

Frontend Guide:

  1. Frontend Architecture — SPA model, view loading, SSE dispatch, global state
  2. Topbar & Diagnostics — status widget, node inspector, toast, modals
  3. Web Serial Connection — browser USB direct mode, baud rate, wizard
  4. Overview View — node grid, KPI strip, sparklines, geocoding
  5. Messaging Views — Direct Messages and Channels, delivery tracking
  6. Map View — Leaflet map, styles, paths, neighbor links
  7. Analysis Tools — MeshShark (BPF, detail pane), Traceroute, Compare, Analytics
  8. Automation Views — Tasks, Auto-Reply, Monitor, Web Telemetry wizard
  9. System Views — Settings, Node Config protobuf editor, Plugins UI
  10. C2 Terminal — bottom CLI bar, version badge, command reference

Development & Support:

  1. Plugin Development — manifest, init_plugin context, routes, watchdog
  2. Troubleshooting — common problems and solutions including WebSerial and frontend