Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tuzig/webexec
WebRTC server for executing command over pseudo tty and piping it’s stdin & out over data channels
https://github.com/tuzig/webexec
terminal webrtc
Last synced: 2 days ago
JSON representation
WebRTC server for executing command over pseudo tty and piping it’s stdin & out over data channels
- Host: GitHub
- URL: https://github.com/tuzig/webexec
- Owner: tuzig
- License: mit
- Created: 2020-04-16T06:09:06.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-06-26T15:13:09.000Z (5 months ago)
- Last Synced: 2024-06-26T18:31:26.642Z (5 months ago)
- Topics: terminal, webrtc
- Language: Go
- Homepage: https://terminal7.dev
- Size: 19.6 MB
- Stars: 32
- Watchers: 2
- Forks: 5
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: docs/security.md
Awesome Lists containing this project
- awesome-pion - tuzig/webexec - WebRTC server for executing command over pseudo tty and piping it’s stdin & out over data channels (DataChannel)
README
# webexec
![Test](https://github.com/tuzig/webexec/workflows/test.yml/badge.svg)
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](https://github.com/tuzig/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](install.sh) 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:1. Join the discussion at our [discord server](https://discord.gg/GneEDB7ZZQ)
2. Fork it and clone it `git clone `
3. Create your feature branch `git checkout -b my-new-feature`
4. 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
5. Commit the failed tests `git commit -am 'Testing ... '`
6. Write the code that psses the tests and commit
7. Push to the branch `git push --set-upstream origin my-new-feature`
8. Create a new Pull Request