Meshcore Dashboard (USB-based)
A complete, self-contained Node.js web application for monitoring and managing a Meshcore client device via USB. Features real-time message tracking, GPS location mapping, and automatic data retention with secure authentication.
Features
- Real-time USB Serial Integration - Automatically connects to Meshcore USB serial device and stores all messages
- Interactive Map View - View GPS locations of all nodes on an interactive Leaflet map
- Message Management - View message history and send messages to the mesh network
- Node Monitoring - Track all nodes with detailed metadata including battery levels, signal strength, and telemetry
- Secure Authentication - Username/password login with session management
- Automatic Data Purging - Configurable cron job to automatically clean old data
- Modern UI - Responsive, modern web interface with dark theme support
- SQLite Database - All data stored locally in a SQLite database
- Comprehensive Logging - Winston-based logging for debugging and monitoring
Prerequisites
- Node.js 16.x or higher
- npm or yarn
- Access to a Meshcore device via USB-Serial
Installation
- Clone or navigate to the project directory:
cd meshcore-usb-dashboard
- Install dependencies:
npm install
- Configure environment variables:
Copy the example environment file and edit it:
cp .env.example .env
Edit .env with your settings, especially the name of your serial port (i.e. COM10)
- Create your first user:
npm run create-user
Follow the prompts to create a username and password.
- Start the application:
npm start
For development with auto-reload:
npm run dev
- Access the dashboard:
Open your browser and navigate to:
http://localhost:3000
Login with the username and password you created.
Data Retention
Configure automatic data purging:
- DATA_RETENTION_DAYS: Number of days to keep data (default: 30)
- PURGE_CRON_SCHEDULE: Cron schedule for purging (default: 0 2 * * * = daily at 2 AM)
You can also manually purge data from the Settings tab in the web interface.
Database
The application uses SQLite.
Database file location: data/meshtastic.db
Logging
Logs are stored in the logs/ directory:
combined.log- All log messageserror.log- Error messages only
Log level can be configured with LOG_LEVEL in .env (debug, info, warn, error).
Contributing
Contributions are welcome!
Security Considerations
- Change default
SESSION_SECRETin production - Use HTTPS in production (configure reverse proxy)
- Regularly update dependencies
- Use strong passwords for user accounts
- Enable firewall rules to restrict access
License
MIT License
Support
For issues and feature requests, please open an issue on the project repository.
Acknowledgments
- Meshcore project
- OpenStreetMap for map tiles
- All contributors and testers
Version: 1.0.0 Author: zyphlar Last Updated: 2026

