That simple websocket Web Terminal you've been searching everywhere for.
It consists of a single HTML file with just enough code and styling to fire up an Xterm.js terminal on a webpage and connect to a websocket.
Opening https://new-wayland.com/terminal/
will connect to
wss://localhost/ws
allowing you to test out your local websocket.
Add a host
query string to connect to a remote websocket
https://new-wayland.com/terminal?host=ipv6.srv-testy.gb1.brightbox.com
This will connect to wss://ipv6.srv-testy.gb1.brightbox.com/ws
.
If your websocket sits on a different path, add a path
query string.
Download the file to your webroot
$ curl -L -o index.html https://new-wayland.com/terminal
When served the page will try to connect to a websocket on the path
/ws
on the host that served the page. You can then just point your
browser at the server and you'll get a terminal.
$ firefox https://ipv6.srv-testy.gb1.brightbox.com
- Mobile use is less than ideal due to lack of control keys. Probably needs some buttons.
- Allowing terminal access to anything is risky. Make sure you know what you are doing.
- The terminal is the classic 80x24ish fixed size. There is no fancy out-of-band protocol here to pass terminal change events to the server. See it as a chance to experience life as a 1980s terminal user.
Issues and Pull Requests welcome if you can think of ways to improve the experience.