witty/README.md

39 lines
1.5 KiB
Markdown
Raw Normal View History

2022-01-06 00:04:37 +01:00
# Web Terminal
A (unsafe) technical demo to export a shell to web browser.
This program is written in the go programming language, using the
Gin web framework, gorilla/websocket, pty, and xterm.js!
The workflow is simple, the client will initiate a terminal
window (xterm.js) and create a websocket with the server. On
the server side, it serves the basic HTML/JS/CSS files and
websockets (by shovling the data between pty and xterm).
2022-01-07 02:37:57 +01:00
It is amazing what you can do with 260 lines of go code.
2022-01-06 00:04:37 +01:00
It is just a simple demo in case some people are interested in
how to setup xterm.js with websocket.
2022-01-07 02:34:37 +01:00
To use the program, download/clone the code, and in the web_terminal
directory, run ```go build .```, this will create the binary called
web_terminal. To run it, use ```./web_terminal cmd options_to_cmd```.
If no cmd and options are given, web_terminal will run bash by default.
2022-01-07 02:37:57 +01:00
You can run shells but also single programs, such as htop. The program
has been tested on Linux, WSL2, Raspberry Pi 3B (Debian), and MacOSX.
2022-01-07 02:34:37 +01:00
***known bug***
2022-01-07 02:37:57 +01:00
2022-01-07 02:34:37 +01:00
On MacOS X, running zsh with web_terminal will produce an extra %
each time. Consider it a ___feautre___, will not fix unless there is a
pull request.
2022-01-06 00:04:37 +01:00
**NOTE**
___Do NOT run this in an untrusted network. You will expose your
shell to anyone that can access your network and Do NOT leave
the server running.___
Here is a screenshot:
<img src="https://github.com/syssecfsu/web_terminal/blob/master/extra/screenshot.png?raw=true" width="800px">