So one thing I’ve done to help me find more things to self host or do is think like a prepper. Like…what if my ISP goes out? How can I remotely control my homelab or even trigger Home Assistant events if my ISP is out? I had no idea how to solve this until about 6 months ago when I discovered Meshtastic.
For anyone who doesn’t know: Meshtastic is basically an open-source, public mesh-network. You just buy a cheap ESP32 device, flash it with Meshtastic (They have a SUPER easy web-flasher so you don’t need to be super technical to do it), and connect to it via Bluetooth with your phone and you’re good to go! Then you can send messages to other nodes around you and have fully off-grid communications!
Well, while Meshtastic supports MQTT, that does require at least one end of the connection to have internet access. I wanted a way to SSH into my servers and diagnose or fix things without needing to rely on my ISP at all. Or even trigger things in Home Assistant without having access to any ISP. So, that naturally gave way to the idea of MeshExec.

MeshExec is a little binary that attaches to your serially-connected Meshtastic node, and looks for messages in a specified private channel for aliases to execute. Then it will execute whatever commands you specify and automatically chunk them and send them back through the mesh in a staggered fashion. This chunking is done to both fit inside the max message size that Meshtastic supports, and so that the mesh is not overwhelmed with messages and drops them.
You define the aliases, the shell used to execute the commands, etc. So you can basically use it to do whatever you want over the mesh! I’ve set up a handful of aliases to do simple diagnostics on my homelab servers. Things like restarting docker containers, checking the top 3 processes consuming the most memory, etc.
I decided to use aliases because I figured direct shell access to a server is SUPER dangerous, especially if you accidentally attach the daemon to a public channel.
No idea if this will be useful to anyone else, but I made it as easy to use as possible if anyone does want to use it. Here’s the link to the repo if anyone wants to give it a go.
I just wanted to share how I’ve managed to find a way to further reduce my reliance on big corporations and my love for open-source software!
If anyone decides to give this a try, I’d love to know your thoughts or answer any questions you have!


I was going to guess Semaphore flags, but sure, meshtastic is good too.
I’m confused on how a semaphore would help, or is this a joke that I am misinterpreting?
Do you know what a semaphore is?
Quite literally designed for long distance communication.
Used extensively in many different variations before wire/electricity based systems became available, then even used after that for communication in places where you couldn’t have a wire (like between boats)
In programming a semaphore is a way to handle access to a method in a multithreaded environment.
Then then answer to your question is yes, you interpreted it incorrectly. The original (and common) definition of that word is vastly different than what you assumed.
Joke
https://youtu.be/kqiUGjghlzU?t1m5s