What Hexanut Io Actually Is
Hexanut Io is a lightweight IoT platform designed for connecting and managing embedded devices without requiring you to run a full-blown cloud stack. At its core it provides a broker, a device registration layer, and a thin web dashboard you can host yourself. The protocol side runs over MQTT, which means if you already know how to publish and subscribe topics you're most of the way there. The install takes about 20 minutes on a clean Ubuntu instance if you're pulling the Docker compose from their repository. You need at least 2 vCPUs and 4GB RAM for anything beyond a handful of devices. The default configuration listens on port 1883 for MQTT and 8080 for the dashboard. One thing the docs gloss over: you have to manually edit broker.conf before the first startup to set the bind address. If you skip that step, the broker will bind to localhost and your devices outside the container won't be able to reach it. I lost two hours debugging connection timeouts before I noticed that line in the log. Authentication is handled through a simple username/password table in the config file, though they also support TLS client certificates if you want to go that route. Setting up TLS is worth it if these devices are crossing untrusted networks. The process involves generating a CA, signing each device certificate, and pointing the broker config at them. It adds maybe 30 minutes to the setup but it's not optional if you care about credential theft being trivial.
Common Pitfalls Nobody Mentions
The retention policy on messages is aggressive by default. If a device goes offline for more than a few hours, queued messages get dropped silently. There's no built-in dead letter queue visible in the dashboard, which means you won't see that data anywhere unless you add external persistence. I solved this by piping the broker logs into a simple InfluxDB writer with a small Python script that checks retained flag status. It adds about 150MB of disk overhead per 10k messages and takes maybe 5 minutes to set up. Another issue is topic hierarchy parsing. Hexanut Io treats forward slashes as path separators but doesn't validate depth. You can accidentally create sensors/building/floor/room/temp and then have every device in that building hit the same subscription if someone misconfigures a wildcard. I've seen this take down brokers because a single miswired devicestreams flooded the system. Using short fixed-length topic namespaces with strict length limits in your device firmware is the only real guardrail here.
When Hexanut Io Falls Apart
Don't use this if you need device shadow synchronization or OTA update capabilities built in. Those features exist in bigger platforms but Hexanut Io deliberately stays minimal. If your project requires managing device state across reboots or pushing firmware updates through the dashboard, you're better off looking at something like ThingsBoard or even a bare AWS IoT Core setup. The platform also doesn't handle device grouping natively, so if you're managing hundreds of similar sensors you'll be writing custom queries against the database backend. The community is small enough that issues sometimes go weeks without a response. Checking the GitHub repository shows the last few months of activity is mostly config fixes, not feature additions. That's fine if you just need it to pass messages around, but expect to dig into the source when something breaks in production. The codebase is Go and reasonably readable if you need to patch it yourself. Download links point to their official GitHub releases page. Stick to the latest tagged release and don't run from source unless you're comfortable recompiling dependencies. The prebuilt binaries include the broker, dashboard server, and the CLI tool in one archive.
Get the Full Details
