Files
meshcore-usb-dashboard/README.md
T

134 lines
3.1 KiB
Markdown

# 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.
![Dashboard Screenshot](screenshot-1.png)
![Messaging Screenshot](screenshot-2.png)
## 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
1. **Clone or navigate to the project directory:**
```bash
cd meshcore-usb-dashboard
```
2. **Install dependencies:**
```bash
npm install
```
3. **Configure environment variables:**
Copy the example environment file and edit it:
```bash
cp .env.example .env
```
Edit `.env` with your settings, especially the name of your serial port (i.e. COM10)
4. **Create your first user:**
```bash
npm run create-user
```
Follow the prompts to create a username and password.
5. **Start the application:**
```bash
npm start
```
For development with auto-reload:
```bash
npm run dev
```
6. **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 messages
- `error.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_SECRET` in 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