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 absolutely love this. I’m not yet immersed in meshtastic, but this is where I want to get, eventually.
That’s amazing, thanks for sharing!
So an internet with voluntary transit
Neat idea to use it for this
So an internet
The highest data rate it looks like is supported by LoRa in North America is 21900 bits per second, so you’re talking about 21kbps, or 2.6kBps in a best-case scenario. That’s about half of what an analog telephone system modem could achieve.
It’s going to be pretty bandwidth-constrained, limited in terms of routing traffic around.
I think that the idea of a “public access, zero-admin mesh Internet over the air” isn’t totally crazy, but that it’d probably need to use something like laser links and hardware that can identify and auto-align to other links.
That’s exactly the reason why I made it only work with user-defined aliases. That way it forces you to think of how to cover the most ground command-wise without needing anything interactive or too much response data. It’s slow but it’s functional and that’s really all I wanted from it. I can have scripts on my server that fix things and just invoke them with this.
Oh, yea, very low data rate.
Great example of a use-case.
Thank you! ☺️
Very interesting! Im no longer pursuing Meshtastic – I’m changing over my hardware to run MeshCore now – but this is quite a neat thing you’ve done here.
As an aside, if you later want to have full networking connectivity (Layer 2) using the same style of encoding the data as messages, PPP is what could do that. If transported over Meshtastic, PPP could give you a standard IP network, and on top of that, you could use SSH to securely access your remote machine.
It would probably be very slow, but PPP was also used for dial-up so it’s very accommodating. The limiting factor would be whether the Meshtastic local mesh would be jammed up from so many messages.
I started thinking about using the LoRa protocol directly for this too! My biggest concern is overwhelming the mesh. But I also had no idea what protocol would work so thanks for mentioning PPP. I haven’t thought about that since I was a kid! That would be really cool though!
Maybe just for a POC someday?
Also: how are you liking MeshCore? Did you have to pay for a license to use it? How expensive is the mesh you’re building? That is something I’ve started thinking about too for this exact reason 😂
Admittedly, I haven’t finished reflashing my formerly-Meshtastic LoRA radios with MeshCore yet, so I haven’t been able to play around with it yet. Although both mesh technologies are decent sized near me, I was swayed to MeshCore because I started looking into how the mesh algorithm works for both. No extra license, since MeshCore supports roughly the same hardware as Meshtastic.
And what I learned – esp from following the #meshtastic and #meshcore hashtags on Mastodon – is that Meshtastic has some awful flooding behavior to send messages. Having worked in computer networks, this is a recipe for limiting the max size and performance of the mesh. Whereas MeshCore has a more sensible routing protocol for passing messages along.
My opinion is that mesh networking’s most important use-case should be reliability, since when everything else (eg fibre, cellular, landlines) stops working, people should be able to self organize and build a working communications system. This includes scenarios where people are sparsely spaced (eg hurricane disaster with people on rooftops awaiting rescue) but also extremely dense scenarios (eg a protest where the authorities intentionally shut off phone towers, or a Taylor Swift concert where data networks are completely congested). Meshtastic’s flooding would struggle in the latter scenario, to send a distress message away from the immediate vicinity. Whereas MeshCore would at least try to intelligently route through nodes that didn’t already receive the initial message.
In the EU we’re limited to a 10% duty cycle for LoRa, so we’re screwed even without traffic.
Are ham radio operators in the EU able to use LoRa radios and be exempt from duty cycle limitations?
These guys appear to have a global visualization of the Meshtastic network nodes that they can see.
There is an ongoing issue with meshtastic users where they keep fighting about mqtt and maps of nodes. meshmap.net apparently only shows about 20% of mqtt-reporting nodes.
really cool idea. ty for sharing!
What is securing those private channels?
Whatever vulnerability there is in that will basically give them root on your home sever right?
They’re encrypted with a PSK encrypted with either AES128 or AES256. It’s built into the Meshtastic firmware so that’s not something I have to handle directly, thankfully!
What is the difference between this and simply connecting to the same network? Even if it is offline you can connect through ethetnet or wifi without needing internet
The difference is you dont have to be on the same network
The most notable difference is that meshtastic has range in the order of miles. At least 1 mile even with bad antennas but with other nodes nearby to repeat your messages, 20 miles is not hard to do.
FYI: home assistant can run an Mqtt server, so you could still post messages to it over meshtastic
I could except it would need Internet access to subscribe or publish to an MQTT broker. I wanted remote control when both I don’t have Internet access when I’m away from home, and my home itself has no Internet access.
For MQTT packets to be forwarded over the mesh, there needs to be at least one MQTT gateway connected to it that has Internet access.
I think you miss understand, if ha has the broker and a mesh node. Then your node could just send a message home and your home node would post the message to mqtt
Ah I see what you mean. Yep I totally misunderstood what you meant. Yes I did think about that but I wanted to be able to control my servers too, hence MeshExec. ☺️
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters IP Internet Protocol LTS Long Term Support software version MQTT Message Queue Telemetry Transport point-to-point networking SSH Secure Shell for remote terminal access
4 acronyms in this thread; the most compressed thread commented on today has 10 acronyms.
[Thread #66 for this comm, first seen 6th Feb 2026, 22:10] [FAQ] [Full list] [Contact] [Source code]






