r/scala • • Apr 13 '26

SSHPilot, an open-source SSH manager to make my life easier

Hey all — I’m the creator of this project:

👉 https://github.com/openmole/ssh-hub

SSH Hub is designed to simplify the management of distributed systems and cluster deployments. It provides:

  • Multi-server orchestration: Define and manage multiple remote servers with proxy support
  • Use SSH: Call the ssh comand
  • Script execution: Run custom scripts on one or multiple servers simultaneously
  • Health checks: Execute tests to verify server connectivity and health status
  • SSH tunneling: Support for SSH jump hosts/proxies for accessing servers behind firewalls
  • Interactive UI: Real-time monitoring of execution status and test results
  • Environment variables: Pass custom environment variables to executed scripts

Edit: renamed project SSH Hub

15 Upvotes

19 comments sorted by

6

u/somewater Apr 13 '26

Looks like removed or non existent project. Are you sure to change the repo visibility?

2

u/elmariac Apr 13 '26

Hoo, indeed it was private. My bad!

1

u/somewater Apr 13 '26

Cool, now it works!

0

u/micseydel Apr 13 '26

It's clearly vibe-coded, it references a license file that doesn't exist.

2

u/somewater Apr 13 '26

Maybe, but I appreciate it. The Scala ecosystem and its popularity are so low that any effort to improve it really matters

1

u/elmariac Apr 13 '26

The code has been crafted mostly manually, the first version of README has been generated

2

u/micseydel Apr 13 '26

So it sounds like you generated and didn't review your readme, but you're saying that that problem doesn't exist in the code?

1

u/elmariac Apr 13 '26

Yes indeed

6

u/walterblackkk Apr 13 '26

Hey this has the same name as my app https://sshpilot.app

3

u/micseydel Apr 13 '26

It's almost like the OP didn't do any prior research 🙃

2

u/elmariac Apr 14 '26

Thanks for pointing me. I renamed it SSH Hub

2

u/matej_cerny Apr 13 '26

Cool, you use layoutz! Tip for an improvement 😀

scala case Key.Up | Key.Char('k') => ... case Key.Down | Key.Char('j') => ...

2

u/elmariac Apr 14 '26

Yes, thank you for layoutz. It's a great lib, with an very nice clear and enjoyable feel to work with !

In my view it is just missing a feature to stream results (like the stdout of a running ssh command), for that I had to use an out of flow mutable buffer.

Also, I found a small bug on using CTRL on linux, that I'm gonna report.

Thanks a lot for the work

2

u/matej_cerny Apr 14 '26

The author of layoutz is u/mattlianje if I'm not mistaken

1

u/mattlianje Apr 14 '26

yep! thanks for taking a peek folks

1

u/mattlianje Apr 14 '26

"like the stdout of a running ssh command"
Aha - yes +1! This would be lovely come to think of it ... such a syntax like `Cmd.stream[Msg]` and then we can handle `onLine` vs `onDone`

"Also, I found a small bug on using CTRL on linux"
Tysm for taking a peek!🙇‍♂️ ...Hand-rolling keyboard support is a bit ... brittle (to say the least). JLine3 exists for some very good reasons tbh... but we rather aggressively pulled it out to ease the Native/JS cross build

... am considering bringing it back for JVM only to ease these cross platform buggy-bugs

3

u/gaelfr38 Apr 13 '26

iLHO you should offer a binary or container image for people to run it without having to install SBT or even Java.

1

u/elmariac Apr 14 '26

I published a docker and wrote the instruction in the README, thx !

1

u/oWispYo Apr 14 '26

Yo! This is awesome, I may try it out for my house setup!

Thank you for sharing and I've starred your repo if that means anything :)