-
Notifications
You must be signed in to change notification settings - Fork 0
01 Getting Started
Mark Todd edited this page Jun 25, 2026
·
1 revision
MQTTProbe is a cross-platform MQTT monitoring and testing tool. It supports live topic browsing, payload inspection, subscriptions, publishing, Sparkplug B emulation, and multi-connection support.
| Platform | How it runs |
|---|---|
| Web browser | Blazor Server — self-host on any machine or server |
| Docker | Official docker-compose.yml included |
| iOS | MAUI app (built from source on macOS) |
| Android | MAUI app |
| Windows desktop | MAUI app |
| macOS | MAUI app (built from source on macOS) |
- .NET 10 SDK (version 10.0.301 or later)
- Docker (optional, for containerized deployment)
# Clone the repository
git clone https://github.com/bluegrassiot/mqttprobe.git
cd mqttprobe
# Run with hot reload
dotnet watch --project src/MqttProbe.WebOpen https://localhost:5001 in your browser. On first launch, you'll be redirected to /Setup to create an admin password.
# Start MQTTProbe (and optionally a local Mosquitto broker)
docker compose up -d
# Open in browser
# http://localhost:8080# Copy and edit environment file
cp .env.example .env
# Set MQTTPROBE_HOST to your server hostname or IP
# Start with Caddy reverse proxy for TLS
docker compose -f docker-compose.prod.yml up -dMqttProbe.slnx
├── src/
│ ├── MqttProbe.Shared # Blazor components, models, services (shared by all hosts)
│ ├── MqttProbe.Web # ASP.NET Core web host (web + Docker)
│ └── MqttProbe.Maui # .NET MAUI host (iOS, Android, Windows)
└── tests/
├── MqttProbe.Tests # NUnit + bUnit unit & component tests
├── MqttProbe.IntegrationTests # Testcontainers integration tests
└── MqttProbe.E2ETests # Playwright end-to-end tests
- MQTTnet v4 — MQTT client (pinned; SparkplugNet depends on v4)
- MudBlazor — UI component library
- Blazor-ApexCharts — Real-time charts
- SparkplugNet — Sparkplug B emulation
- Google.Protobuf — Sparkplug B payload decoding
- MessagePack-CSharp — MessagePack payload detection/decoding
- FluentValidation — Connection form validation
- ASP.NET Core Data Protection — Server-side secret encryption
- Launch the app (web or MAUI)
- You'll be redirected to
/Setup - Create an admin username and password
- You're ready to connect to an MQTT broker
All configuration is stored in config/appsettings.json. Secrets (MQTT broker passwords) are encrypted separately in config/secrets.dat using ASP.NET Data Protection.
On Linux/macOS, the config file is restricted to owner-only access (mode 600).
# All tests
dotnet test
# Unit + component tests only (fast, no external dependencies)
dotnet test tests/MqttProbe.Tests
# Integration tests (requires Docker for Testcontainers)
dotnet test tests/MqttProbe.IntegrationTests
# E2E tests (requires Docker + Playwright browsers)
dotnet test tests/MqttProbe.E2ETests