Desktop Application β
MeshMonitor Desktop is a standalone application for Windows and macOS that runs MeshMonitor as a system tray application. This is ideal for users who don't have an always-on server like a Raspberry Pi or NAS.
Overview β
The desktop application:
- Runs the MeshMonitor backend as a background service
- Sits in your system tray for easy access
- Opens the web UI in your default browser
- Persists data locally on your computer
- Starts automatically when your computer boots (optional)
Requirements β
Windows β
- Operating System: Windows 10 or later (64-bit)
- Meshtastic Device: A Meshtastic node with TCP API enabled
- Network: Your Meshtastic node must be accessible via TCP (WiFi or Ethernet connected)
macOS β
- Operating System: macOS 11 (Big Sur) or later
- Architecture: Apple Silicon (M1/M2/M3) native; Intel Macs can run via Rosetta 2
- Meshtastic Device: A Meshtastic node with TCP API enabled
- Network: Your Meshtastic node must be accessible via TCP (WiFi or Ethernet connected)
Installation β
Windows β
- Go to the MeshMonitor Releases page
- Download the latest
MeshMonitor-Desktop-x.x.x-x64-setup.exe - Run the installer and follow the prompts
- MeshMonitor will appear in your Start menu and system tray
macOS β
- Go to the MeshMonitor Releases page
- Download the latest
MeshMonitor-Desktop-x.x.x-arm64.dmg - Open the DMG file and drag MeshMonitor to your Applications folder
- Launch MeshMonitor from your Applications folder
- MeshMonitor will appear in your menu bar
Apple Silicon Native
The macOS version is compiled natively for Apple Silicon (M1/M2/M3). If you're using an Intel Mac, macOS will automatically run it through Rosetta 2.
First-Run Setup β
When you first launch MeshMonitor Desktop, a setup window will appear asking for your Meshtastic node configuration:
Meshtastic Node IP Address: Enter the IP address of your Meshtastic device (e.g.,
192.168.1.100)Advanced Options (optional):
- Meshtastic Port: TCP port for Meshtastic API (default: 4403)
- Web UI Port: Local port for the web interface (default: 8080)
Click "Start MeshMonitor" to save the configuration and launch the backend
Using MeshMonitor Desktop β
System Tray / Menu Bar β
Once running, MeshMonitor appears as an icon in your system tray (Windows) or menu bar (macOS).
Left-click (Windows) or Click (macOS) the icon to open the web UI in your default browser.
Right-click (Windows) or Click (macOS) for the menu:
- Open MeshMonitor: Opens the web UI in your browser
- Settings: Opens the configuration window
- Open Data Folder: Opens the folder containing your database and logs
- Quit: Stops MeshMonitor and exits the application
Web UI β
The web UI is identical to the server version. Access it at:
http://localhost:8080If you changed the port during setup, use that port instead.
Configuration β
Settings Locations β
::: tabs
@tab Windows
Configuration file:
%APPDATA%\MeshMonitor\config.jsonData directory (database & logs):
%LOCALAPPDATA%\MeshMonitor\@tab macOS
Configuration file:
~/Library/Application Support/MeshMonitor/config.jsonData directory (database & logs):
~/Library/Application Support/MeshMonitor/:::
Configuration File β
The configuration file (config.json) contains your basic settings:
{
"meshtastic_ip": "192.168.1.100",
"meshtastic_port": 4403,
"web_port": 8080,
"auto_start": false,
"session_secret": "auto-generated-secret",
"setup_completed": true
}| Setting | Description | Default |
|---|---|---|
meshtastic_ip | IP address of your Meshtastic node | 192.168.1.100 |
meshtastic_port | TCP port for Meshtastic API | 4403 |
web_port | Local port for web UI | 8080 |
auto_start | Start with Windows/macOS | false |
session_secret | Secret key for session cookies | Auto-generated |
setup_completed | Whether initial setup is done | true after setup |
Changing Configuration β
- Right-click (Windows) or click (macOS) the tray/menu bar icon
- Select "Settings"
- Update the configuration
- Click "Save" - the backend will automatically restart
Advanced Configuration β
For advanced use cases, you can configure additional options by editing the configuration file directly or setting environment variables before launching.
Remote Access (ALLOWED_ORIGINS) β
By default, MeshMonitor Desktop only accepts connections from localhost. To enable access from other devices on your network:
Security Notice
Enabling remote access exposes MeshMonitor to your local network. Ensure you're on a trusted network and consider enabling authentication in MeshMonitor settings.
- Stop MeshMonitor (Quit from tray/menu bar)
- Edit
config.jsonand add anallowed_originsfield (this requires a custom launcher script) - Or, create a launcher script that sets environment variables:
::: tabs
@tab Windows (PowerShell)
Create a file called start-meshmonitor.ps1:
$env:ALLOWED_ORIGINS = "http://localhost:8080,http://192.168.1.50:8080"
Start-Process "C:\Program Files\MeshMonitor\MeshMonitor.exe"@tab macOS (Shell)
Create a file called start-meshmonitor.sh:
#!/bin/bash
export ALLOWED_ORIGINS="http://localhost:8080,http://192.168.1.50:8080"
open -a MeshMonitorMake it executable: chmod +x start-meshmonitor.sh
:::
Replace 192.168.1.50 with your computer's local IP address.
Authentication & Cookies β
MeshMonitor Desktop uses secure session cookies for authentication. The session secret is automatically generated on first run and stored in your config file.
To reset your session secret:
- Stop MeshMonitor
- Edit
config.json - Delete the
session_secretline (a new one will be generated) - Restart MeshMonitor
TIP
Resetting the session secret will log out all active sessions, including browser sessions that may be open.
HTTPS / SSL β
The desktop application runs HTTP only (no HTTPS). This is generally fine for local use since traffic stays on your machine. For secure remote access, consider:
- Using the Docker deployment behind a reverse proxy with SSL
- Setting up a local VPN to access your desktop remotely
- Using SSH port forwarding
Environment Variables β
You can set these environment variables before launching MeshMonitor to override default behavior:
| Variable | Description | Example |
|---|---|---|
PORT | Web server port | 8081 |
MESHTASTIC_NODE_IP | Meshtastic device IP | 192.168.1.100 |
MESHTASTIC_TCP_PORT | Meshtastic TCP port | 4403 |
ALLOWED_ORIGINS | Comma-separated allowed origins | http://localhost:8080 |
DATABASE_PATH | Custom database location | /path/to/meshmonitor.db |
SESSION_SECRET | Custom session secret | your-secret-key |
Data Management β
Data Files β
Your MeshMonitor data includes:
| File | Description |
|---|---|
meshmonitor.db | SQLite database with all your data (nodes, messages, telemetry) |
logs/desktop.log | Desktop application logs |
logs/server-stdout.log | Server output logs |
logs/server-stderr.log | Server error logs |
Backup β
To backup your MeshMonitor data:
- Right-click the tray/menu bar icon and select "Open Data Folder"
- Copy the entire
MeshMonitorfolder to your backup location
Restore β
To restore from a backup:
- Stop MeshMonitor (Quit from tray/menu bar)
- Replace the contents of your data folder with your backup
- Restart MeshMonitor
Reset to Defaults β
To completely reset MeshMonitor:
- Stop MeshMonitor
- Delete the configuration and data folders (see paths above)
- Restart MeshMonitor - the first-run setup will appear
Troubleshooting β
MeshMonitor won't start β
- Check that your Meshtastic node is powered on and connected to your network
- Verify the IP address is correct
- Ensure TCP API is enabled on your Meshtastic device
- Check the logs:
- Windows:
%LOCALAPPDATA%\MeshMonitor\logs\ - macOS:
~/Library/Application Support/MeshMonitor/logs/
- Windows:
Can't connect to Meshtastic node β
- Verify your node's IP address hasn't changed (consider setting a static IP)
- Ensure port 4403 (or your configured port) is not blocked by a firewall
- Test connectivity:
ping <your-node-ip> - Ensure only one application is connected to the node at a time
Port 8080 is in use β
If another application is using port 8080:
- Open Settings from the tray/menu bar
- Change the "Web UI Port" to a different port (e.g., 8081)
- Save and restart
macOS: App not appearing in menu bar β
- Check if MeshMonitor is running in Activity Monitor
- Try quitting and relaunching the app
- Check the logs for errors
Windows: Firewall blocking connections β
If Windows Firewall blocks MeshMonitor:
- Open Windows Security > Firewall & network protection
- Click "Allow an app through firewall"
- Find MeshMonitor and ensure both Private and Public are checked
Comparison with Docker Deployment β
| Feature | Desktop | Docker/Server |
|---|---|---|
| Always-on monitoring | Requires PC running | 24/7 |
| HTTPS/SSL | No (HTTP only) | Yes |
| Remote access | Limited | Full support |
| Multi-user | Local only | Yes |
| PWA/Mobile | Local only | Yes |
| Resource usage | ~50MB RAM | ~100MB RAM |
| Auto-upgrade | Manual updates | Automatic |
| Serial/BLE support | No | Yes (with bridges) |
When to use Desktop vs Docker
Use Desktop if you:
- Only need local access on your computer
- Don't have a server or NAS running 24/7
- Want a simple, quick setup
Use Docker if you:
- Need 24/7 monitoring
- Want remote access from mobile devices
- Need HTTPS/SSL support
- Want automatic updates
Uninstalling β
Windows β
- Right-click the tray icon and select "Quit"
- Open Windows Settings > Apps > Apps & features
- Find "MeshMonitor Desktop" and click "Uninstall"
To also remove your data:
- Delete
%APPDATA%\MeshMonitor\ - Delete
%LOCALAPPDATA%\MeshMonitor\
macOS β
- Click the menu bar icon and select "Quit"
- Open Finder and go to Applications
- Drag MeshMonitor to the Trash
To also remove your data:
- Delete
~/Library/Application Support/MeshMonitor/
Completely remove all traces
On macOS, you can also remove preferences:
rm -rf ~/Library/Application\ Support/MeshMonitor/
rm -rf ~/Library/Caches/org.meshmonitor.desktop/