Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

I made a way to remotely control my homelab without any internet access required

Selfhosted
1 1 0
  • 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!

  • oblomov@sociale.networkundefined oblomov@sociale.network shared this topic on

Gli ultimi otto messaggi ricevuti dalla Federazione
  • 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!

    read more

  • I’m interviewing folks to determine the roadmap for my federated link sharing project “linkblocks”. If you like bookmark managers, lemmy, are.na, or any other app for curating and sharing stuff, this is your chance to make me build your dream app ;)

    A session takes about 30 minutes in a voice chat. If you’re interested, comment here or send me a DM!

    For the curious, here's a demo for the current prototype. The code is on github.

    In contrast to other bookmarking apps, linkblocks focuses on collaboration and discussion.
    Discussion will be a bit like on lemmy, but instead of voting, bookmarks are discovered through tagging and following individual users.

    read more
Post suggeriti