diff --git a/README.md b/README.md index 2d4548e..f434747 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,18 @@ # Meshtastic MQTT Broker Boilerplate -This project provides an MQTT broker boilerplate specifically designed for Meshtastic device networks. It handles encrypted mesh packets, validates messages, and can be configured to run with or without SSL. +This project provides an MQTT broker boilerplate specifically designed for Meshtastic mesh networks. It handles encrypted mesh packets, validates messages, and can be configured to run with SSL. ## Features - MQTT server implementation for Meshtastic devices -- Support for encrypted mesh packet handling and validation +- Allows for more precise access control than Mosquito ACLs + - Support for encrypted mesh packet handling and validation + - Support for validating client connections and subscriptions - SSL support for secure MQTT connections -- Configurable logging with Serilog -- Packet filtering and validation logic +- Built using C# / .NET 9.0 with [MQTTnet](https://github.com/dotnet/MQTTnet) +- Multi-platform support +- Can be easily be packaged to run as a [portable standalone binary](https://learn.microsoft.com/en-us/dotnet/core/deploying/single-file/overview?tabs=cli) +- Configurable logging with [Serilog](https://serilog.net/) ## Docker Setup @@ -49,23 +53,21 @@ services: mqtt-broker: build: . ports: - - "1883:1883" # Standard MQTT port - # - "8883:8883" # SSL port (uncomment if using SSL) - # environment: - # - SSL=true # Uncomment to enable SSL - # volumes: - # - ./certificate.pfx:/app/certificate.pfx # Mount certificate if using SSL + - "8883:8883" + + volumes: + - ./certificate.pfx:/app/certificate.pfx restart: unless-stopped ``` ## Configuration Options -- **SSL**: Set environment variable `SSL=true` to enable SSL mode + - **Certificate**: Mount your PFX certificate file to `/app/certificate.pfx` in the container -- **Ports**: The application uses port 1883 for standard MQTT and 8883 for SSL MQTT +- **Ports**: The application uses 8883 for SSL MQTT (default) and port 1883 for standard MQTT ## Troubleshooting - Ensure proper network access to the Docker container -- Check that certificates are correctly formatted (for SSL mode) +- Check that certificates are correctly formatted - Review logs using `docker logs [container-id]`