Awesome
webexec
webexec is a terminal server running over WebRTC with support for signaling over SSH or HTTP. Webexec listens for connection requests, executes commands over pseudo ttys and pipes their I/O over WebRTC data channels.
webexec is currently single session - each client that authenticates has
access to the same payload
.
In the case of Terminal7,
our first client, it contains the layout of the panes.
webexec exposes TCP port 7777 by default, to support signalling.
There's a single endpoint /connect
: The client exchanges tokens with the
server and then initiates a WebRTC connection.
Install
This repo inscludes a one-line installer for installing on Mac & Linux.
To use to install the latest version it run
bash -c "$(curl -sL https://get.webexec.sh)"
.
From Source
$ go install ./...
Ports Used
webexec has a signlaing server that listen for connection request on ports 7777. By default it listens only for localhost. To open webexec to the world set the http_server under [net] in the config file to 0.0.0.0:7777.
Once communication is established, WebRTC uses UDP ports with
a default range of 60000-61000.
If you prefer another range you can set the udp_port_min
and udp_port_max
in the [net]
section of the conf file and webexec restart
.
When running on cloud providers you'll need to set the firewall rules to allow traffic from any address to tcp port 7777 and UDP range 60000-61000 (same as mosh).
Contributing
We welcome bug reports, ideas for new features and pull requests.
If you are new to open source, DON'T PANIC. Just follow these simple steps:
- Join the discussion at our discord server
- Fork it and clone it
git clone <your-fork-url>
- Create your feature branch
git checkout -b my-new-feature
- Write tests for your new feature. We have both unit tests and integration
tests under aatp. use
go test -v
to run unit tests and./aatp/test
to test integration - Commit the failed tests
git commit -am 'Testing ... '
- Write the code that psses the tests and commit
- Push to the branch
git push --set-upstream origin my-new-feature
- Create a new Pull Request