[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)