this post was submitted on 06 Feb 2026
215 points (100.0% liked)

Selfhosted

56085 readers
954 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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!

top 46 comments
sorted by: hot top controversial new old
[–] Fmstrat@lemmy.world 2 points 2 hours ago

Very cool. I run a piKVM attached to an 8 port KVM and 8 plugs controlled by relays, giving me full control over everything. I should add this to the mix.

[–] HeyThisIsntTheYMCA@lemmy.world 10 points 5 hours ago

oh your method was real i thought i was in programmer memes for a second and thought it was going to be

[–] oeuf@slrpnk.net 4 points 5 hours ago

This extremely cool.

[–] Peruvian_Skies@sh.itjust.works 1 points 4 hours ago

This is very cool. I didn't know about Meshtastic or MeshExec.

[–] Darkmoon_AU@lemmy.zip 11 points 13 hours ago

This is really interesting, appreciate your taking the time to share, thanks 👍 Now I have a fresh experiment for all those ESP32's in my drawers 😁

Wonder how much solar power it would take to run one of these nodes, it's be fun to guerrilla a few across town to create a bit of uh...civic infrastructure.

[–] Estebiu@lemmy.dbzer0.com 13 points 15 hours ago (2 children)

Hey ! With rnode (another firmware for lora devices) you can directly do ip over lora ! So I can basically control my server from 9-10km away (if I stay on the coast) without internet !

[–] prenatal_confusion@feddit.org 4 points 10 hours ago (1 children)

Do you have a link? I can't seem to pin it down

[–] aclarke@lemmy.world 7 points 15 hours ago (1 children)

Oh I'm looking into this IMMEDIATELY! 😂 That's awesome!! Does it also form a mesh?

[–] Estebiu@lemmy.dbzer0.com 2 points 7 hours ago

Yes, with other rnode devices (there aren't many in my zone tho)

[–] Onomatopoeia@lemmy.cafe 30 points 18 hours ago* (last edited 18 hours ago) (2 children)

So an internet with voluntary transit

Neat idea to use it for this

[–] tal@lemmy.today 24 points 17 hours ago* (last edited 17 hours ago) (2 children)

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.

[–] aclarke@lemmy.world 18 points 17 hours ago

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.

[–] Onomatopoeia@lemmy.cafe 4 points 17 hours ago

Oh, yea, very low data rate.

Great example of a use-case.

[–] aclarke@lemmy.world 7 points 18 hours ago

Thank you! ☺️

[–] litchralee@sh.itjust.works 17 points 17 hours ago* (last edited 17 hours ago) (3 children)

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.

[–] chicken@lemmy.dbzer0.com 3 points 11 hours ago

Is MeshCore a separate network?

[–] aclarke@lemmy.world 9 points 17 hours ago* (last edited 17 hours ago) (1 children)

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 😂

[–] litchralee@sh.itjust.works 8 points 17 hours ago* (last edited 17 hours ago)

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.

[–] PetteriPano@lemmy.world 5 points 17 hours ago (1 children)

In the EU we're limited to a 10% duty cycle for LoRa, so we're screwed even without traffic.

[–] litchralee@sh.itjust.works 2 points 17 hours ago (1 children)

Are ham radio operators in the EU able to use LoRa radios and be exempt from duty cycle limitations?

[–] Estebiu@lemmy.dbzer0.com 6 points 15 hours ago

Yeah, but you cannot use encryption then.

[–] tal@lemmy.today 13 points 18 hours ago (1 children)

https://meshmap.net/

These guys appear to have a global visualization of the Meshtastic network nodes that they can see.

[–] non_burglar@lemmy.world 10 points 18 hours ago

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.

[–] uninvitedguest@piefed.ca 7 points 16 hours ago

I absolutely love this. I'm not yet immersed in meshtastic, but this is where I want to get, eventually.

[–] RIotingPacifist@lemmy.world 10 points 17 hours ago (1 children)

What is securing those private channels?

Whatever vulnerability there is in that will basically give them root on your home sever right?

[–] aclarke@lemmy.world 12 points 17 hours ago

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!

[–] thenextguy@lemmy.world 5 points 15 hours ago (2 children)

I was going to guess Semaphore flags, but sure, meshtastic is good too.

[–] HeyThisIsntTheYMCA@lemmy.world 2 points 5 hours ago

dude's adding a clacks tower to his homelab and here i am eating hot chip

[–] KairuByte@lemmy.dbzer0.com 3 points 14 hours ago (2 children)

I’m confused on how a semaphore would help, or is this a joke that I am misinterpreting?

[–] BlameThePeacock@lemmy.ca 3 points 12 hours ago (1 children)

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)

[–] KairuByte@lemmy.dbzer0.com 3 points 12 hours ago (1 children)

In programming a semaphore is a way to handle access to a method in a multithreaded environment.

[–] BlameThePeacock@lemmy.ca 3 points 10 hours ago

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.

[–] zo0@programming.dev 7 points 17 hours ago

That's amazing, thanks for sharing!

[–] Mir@programming.dev 8 points 18 hours ago (2 children)

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

[–] SethranKada@lemmy.ca 19 points 18 hours ago

The difference is you dont have to be on the same network

[–] BakedCatboy@lemmy.ml 5 points 17 hours ago

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.

[–] mhzawadi@lemmy.horwood.cloud 5 points 18 hours ago (1 children)

FYI: home assistant can run an Mqtt server, so you could still post messages to it over meshtastic

[–] aclarke@lemmy.world 4 points 18 hours ago* (last edited 18 hours ago) (1 children)

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.

[–] mhzawadi@lemmy.horwood.cloud 2 points 18 hours ago (1 children)

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

[–] aclarke@lemmy.world 2 points 17 hours ago

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. ☺️

[–] AllHailTheSheep@sh.itjust.works 3 points 17 hours ago

really cool idea. ty for sharing!

[–] Decronym@lemmy.decronym.xyz 2 points 17 hours ago* (last edited 2 hours ago)

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 9 acronyms.

[Thread #66 for this comm, first seen 6th Feb 2026, 22:10] [FAQ] [Full list] [Contact] [Source code]