[HN Gopher] Show HN: Manage on-prem servers from my smartphone
       ___________________________________________________________________
        
       Show HN: Manage on-prem servers from my smartphone
        
       Hi everyone,  I've just released the public repository of RebootX
       On-Prem (https://github.com/c100k/rebootx-on-prem), letting anyone
       to connect and manage their infra on their smartphone.  In my case
       the infra is pretty simple : 3 Raspberry Pi. But I'd love to have
       your feedback and see interesting use cases you could use this for.
       I have lots of ideas for the next steps. For example, creating a
       Prometheus integration as well.  Looking forward to hearing from
       you and I would be glad to help if you encounter any issue getting
       started with the repo.
        
       Author : pmdfgy
       Score  : 37 points
       Date   : 2024-03-27 12:34 UTC (10 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | moondev wrote:
       | An underrated advantage of ChromeOS is easily running mobile apps
       | that expose intuitive UI like this. Combined with the floating
       | window mode I have enjoyed using bambu handy for 3d printing and
       | vSphere mobile.
        
       | INTPenis wrote:
       | I think it's very complicated and I'm not sure what it does, or
       | why it has a go http server and calls itself a specification.
       | 
       | But it's clear that your goal is to reboot on-prem servers
       | through your phone. Something I've wanted to do with rundeck and
       | a very simple web app that uses the rundeck API.
        
         | rudasn wrote:
         | How happy are you with that setup? Would you use it for
         | anything more complicated, like app deployments or maintenance
         | tasks on your on prem / vpss?
         | 
         | I'm using ansible right now, and a custom playbook.sh script
         | for some sort of auditing - what was run where and by whom.
         | Kinda works but much more maintenable than let's say ansible
         | tower.
        
         | pnutjam wrote:
         | webmin
        
           | comprev wrote:
           | Thank you for a trip down memory lane :) Not seen that name
           | in decades!
        
         | intelVISA wrote:
         | surely it's easier to send SSH commands over SMS (with the
         | appropriate protections) than use this janky Go thing?
        
         | pmdfgy wrote:
         | The Go HTTP server is an implementation of the spec
         | (swagger.json). It actually plays the same role as your web
         | app. It's just to make it compatible with the native app, and
         | not rely on Web.
        
       | doublerabbit wrote:
       | Does it have FreeBSD support and any instructions for not using
       | it with docker?
        
         | pmdfgy wrote:
         | Of course you can compile the server from source if you have Go
         | and the OpenAPI generator JAR
         | (https://github.com/OpenAPITools/openapi-
         | generator?tab=readme...)
         | 
         | Follow these steps : https://github.com/c100k/rebootx-on-
         | prem/blob/master/.github...
         | 
         | And then :
         | 
         | (cd ./impl/http-server-go && GOARCH=amd64 GOOS=openbsd go build
         | -o rebootx-on-prem-http-server-go-openbsd-amd64 -v)
         | 
         | By adapting the arch if needed. Not tested, but it should work.
        
       | leptons wrote:
       | I've been managing remote (and local) servers from my smartphone
       | with RDP and SSH for almost 2 decades, not sure why I would use
       | anything else.
        
         | HenryBemis wrote:
         | I've tried from a bunch of different phones to use RDP, and
         | apart from launching some SW/service or run a batch, I just
         | cannot without the pixels/screen. It's just too darn small. I
         | wonder what smartphones you got.. some phablet with 7"-8" or a
         | typical 6"-6.4"?
        
       | jokethrowaway wrote:
       | neat but ssh from your phone is hard to beat
       | 
       | Sharing my current use case in case it's useful:
       | 
       | reboot PARTITION: to reboot to a different partition
       | 
       | systemctl stopping a service and starting another
       | 
       | launching a wget checking if wget is still up and hasn't crashed
        
         | pmdfgy wrote:
         | Nice use case. I'd be curious to see how it behaves by using
         | the SSH feature.
        
       | nickpsecurity wrote:
       | If you use Python, you can restart the computer in one line using
       | subprocess. Example:
       | 
       | https://www.tutorialspoint.com/python-script-to-restart-comp...
       | 
       | You can also use two scripts for security:
       | 
       | 1. One that's privileged for the shutdown command.
       | 
       | 2. One with no privileges to accept the network request (eg
       | Flask/REST), safely parse it, and send a message to process 1.
       | 
       | You could send the message in many ways. It doesn't even have to
       | be parsed or contain more than one byte. The reboot process might
       | act if it receives _any_ message from the other process in their
       | dedicated channel.
       | 
       | Set both of these processes to run on startup however you
       | normally do on your system.
       | 
       | If not a message, you could have the network enabled process
       | write to a file in a shared directory. The reboot process
       | periodically checks for the file's existence. If it sees it, then
       | it reboots the system. That file can be cleared on startup. I say
       | on startup to reduce the risk of any kind of contention causing a
       | problem later on.
       | 
       | The reboot process could also be easily ported to a systems
       | language for resource efficiency. I'd keep the network-facing app
       | in a memory-safe language just in case. D or Rust could handle
       | both, though.
        
         | pmdfgy wrote:
         | Yes of course, the spec can be implemented in any language.
         | I've used Go mainly for personal preferences and portability
         | with only one binary to scp on the server. I'm going to try to
         | propose other implementations as you suggest.
        
       | branon wrote:
       | > on-premise
       | 
       | I think the correct term here would be "on-premises".
       | 
       | A premise and a premises are not related concepts except in the
       | sense that the "premise" of this comment is to let you know that
       | "premises" is the correct term to use.
       | 
       | I'll also accept "on-prem" because it could reasonably be a
       | shortened form of "on-premises" (even though most people probably
       | don't realize this and are instead reinforcing their
       | misconception when they use it).
        
         | pmdfgy wrote:
         | You're absolutely right. The fun thing is that I googled it and
         | saw a couple of articles doing the comparison between both. And
         | to be honest, that's why I used the "on-prem" shortcut most of
         | the time.
        
       ___________________________________________________________________
       (page generated 2024-03-27 23:01 UTC)