Hacker News new | ask | show | jobs
by jek0 2548 days ago
They're more practical: ssh into the server. start the tool. [do your stuff]... close the tool. close ssh session.

With a web UI: ssh into the server. find out you want to check your containers statuses. ssh again while binding some local port to a remote port. start the web UI service. open a browser window. enter the URL. [do your stuff]... close the browser window. go back to the terminal. close the web service. close ssh session.

3 comments

The WebUI port forwards can be made a bit more tolerable by using LocalForward in your ~/.ssh/config [1] assuming you're okay with the forwards being set up every time you log in. I agree that it's still clunky though; in-terminal tooling is generally preferable.

[1]: https://linux.die.net/man/5/ssh_config

I tried that in a different context... The problem if you're managing many servers is that you'll have to setup a different local port for each server. When I needed it, I had to go check the .ssh/config each time to figure out which port was bound for this server. Did not save any time.
FWIW `DynamicForward` turns on a SOCKS5 proxy, so a dedicated Firefox profile[0] that has its proxy set to the dynamic forward port will be able to browse as if running on the remote machine. I believe remote DNS resolution, works, too. It still could clash ports if you have the same DynamicForward port for multiple ssh configs, but it can drastically reduce the number of port-collisions

0 = you are of course welcome to try running Chrome with `--proxy-server` et al, but I find Firefox a ton easier to use in that situation

Doesn't have to be that way:

I have an alias to a .sh script that launches Portainer (Docker web UI) on the remote host, sets up an SSH tunnel from the remote exposed portainer port to some <local port> and then launches my web browser at localhost:<local port>.

Instant remote Docker GUI. Really snappy too.

Web doesn't have to be slow and messy if you manage it right.

The Portainer UI could use some improvement but that's beside the point

do you mind sharing it?
I really wish there would be some easy way to make browsers talk http over stdin/out of a process. Port forwarding can be so messy, you need to allocate ports and multi-hop forwarding (eg bastion hosts) can be a problem etc.