Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/butlerx/wetty

Terminal in browser over http/https. (Ajaxterm/Anyterm alternative, but much better)
https://github.com/butlerx/wetty

ajaxterm anyterm hacktoberfest hacktoberfest-accepted terminal wetty xterm xterm-js xtermjs

Last synced: 30 days ago
JSON representation

Terminal in browser over http/https. (Ajaxterm/Anyterm alternative, but much better)

Awesome Lists containing this project

README

        

# WeTTY = Web + TTY.

[![All Contributors](https://img.shields.io/badge/all_contributors-41-orange.svg?style=flat-square)](#contributors-)

[![Documentation](https://img.shields.io/badge/documentation-yes-brightgreen.svg)](https://github.com/butlerx/wetty/tree/main/docs)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/butlerx/wetty/blob/main/LICENSE)

> Terminal access in browser over http/https

![WeTTY](./docs/terminal.png?raw=true)

Terminal over HTTP and https. WeTTY is an alternative to ajaxterm and anyterm
but much better than them because WeTTY uses xterm.js which is a full fledged
implementation of terminal emulation written entirely in JavaScript. WeTTY uses
websockets rather than Ajax and hence better response time.

## Prerequisites

- node >=18
- make
- python
- build-essential

## Install

```sh
npm -g i wetty
```

## Usage

```sh
$ wetty --help
Options:
--help, -h Print help message [boolean]
--version Show version number [boolean]
--conf config file to load config from [string]
--ssl-key path to SSL key [string]
--ssl-cert path to SSL certificate [string]
--ssh-host ssh server host [string]
--ssh-port ssh server port [number]
--ssh-user ssh user [string]
--title window title [string]
--ssh-auth defaults to "password", you can use "publickey,password"
instead [string]
--ssh-pass ssh password [string]
--ssh-key path to an optional client private key (connection will be
password-less and insecure!) [string]
--ssh-config Specifies an alternative ssh configuration file. For further
details see "-F" option in ssh(1) [string]
--force-ssh Connecting through ssh even if running as root [boolean]
--known-hosts path to known hosts file [string]
--base, -b base path to wetty [string]
--port, -p wetty listen port [number]
--host wetty listen host [string]
--command, -c command to run in shell [string]
--allow-iframe Allow wetty to be embedded in an iframe, defaults to allowing
same origin [boolean]
```

Open your browser on `http://yourserver:3000/wetty` and you will prompted to
login. Or go to `http://yourserver:3000/wetty/ssh/` to specify the
user beforehand.

If you run it as root it will launch `/bin/login` (where you can specify the
user name), else it will launch `ssh` and connect by default to `localhost`. The
SSH connection can be forced using the `--force-ssh` option.

If instead you wish to connect to a remote host you can specify the `--ssh-host`
option, the SSH port using the `--ssh-port` option and the SSH user using the
`--ssh-user` option.

Check out the [Flags docs](https://butlerx.github.io/wetty/flags) for a full
list of flags

### Docker container

To use WeTTY as a docker container, a docker image is available on
[docker hub](https://hub.docker.com/r/wettyoss/wetty). To run this image, use

```sh
docker run --rm -p 3000:3000 wettyoss/wetty --ssh-host=
```

and you will be able to open a ssh session to the host given by `YOUR-IP` under
the URL [http://localhost:3000/wetty](http://localhost:3000/wetty).

It is recommended to drive WeTTY behind a reverse proxy to have HTTPS security
and possibly Let’s Encrypt support. Popular containers to achieve this are
[nginx-proxy](https://github.com/nginx-proxy/nginx-proxy) and
[traefik](https://traefik.io/traefik/). For traefik there is an example
docker-compose file in the containers directory.

## FAQ

Check out the [docs](https://github.com/butlerx/wetty/tree/main/docs)

- [Running as daemon](https://butlerx.github.io/wetty/service)
- [HTTPS Support](https://butlerx.github.io/wetty/https)
- [Using NGINX](https://butlerx.github.io/wetty/nginx)
- [Using Apache](https://butlerx.github.io/wetty/apache)
- [Automatic Login](https://butlerx.github.io/wetty/auto-login)
- [Downloading Files](https://butlerx.github.io/wetty/downloading-files)

### What browsers are supported?

WeTTY supports all browsers that
[xterm.js supports](https://github.com/xtermjs/xterm.js#browser-support).

## Author

πŸ‘€ **Cian Butler **

- Mastodon: [@[email protected]](https://mastodon.ie/@butlerx)
- Github: [@butlerx](https://github.com/butlerx)

## Contributing ✨

Contributions, issues and feature requests are welcome!
Feel free to check
[issues page](https://github.com/butlerx/wetty/issues).

Please read the [development docs](https://butlerx.github.io/wetty/development)
for installing from source and running is dev node

Thanks goes to these wonderful people
([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Cian Butler
Cian Butler

πŸ’» πŸ“–
Krishna Srinivas
Krishna Srinivas

πŸ’»
acalatrava
acalatrava

πŸ’»
Strubbl
Strubbl

πŸ’»
Oleg Kurapov
Oleg Kurapov

πŸ’»
Boyan Rabchev
Boyan Rabchev

πŸ’»
Jimmy
Jimmy

πŸ’»


Luca Milanesio
Luca Milanesio

πŸ’»
Anthony Jund
Anthony Jund

πŸ’»
mirtouf
mirtouf

πŸ’»
Bertrand Roussel
Bertrand Roussel

πŸ’»
Ben Letchford
Ben Letchford

πŸ’»
SouraDutta
SouraDutta

πŸ’»
Koushik M.L.N
Koushik M.L.N

πŸ’»


Imuli
Imuli

πŸ’»
perpen
perpen

πŸ’»
Nathan LeClaire
Nathan LeClaire

πŸ’»
Mihir Kumar
Mihir Kumar

πŸ’»
Chris Suszynski
Chris Suszynski

πŸ’»
Felix Bartels
Felix Bartels

πŸ’»
Jarrett Gilliam
Jarrett Gilliam

πŸ’»


Harry Lee
Harry Lee

πŸ’»
Andreas KlΓΆckner
Andreas KlΓΆckner

πŸ’»
DenisKramer
DenisKramer

πŸ’»
Vamshi K Ponnapalli
Vamshi K Ponnapalli

πŸ’»
Tri Nguyen
Tri Nguyen

πŸ“–
Felix Pojtinger
Felix Pojtinger

πŸ“–
Neale Pickett
Neale Pickett

πŸ’»


Matthew Piercey
Matthew Piercey

πŸ“–
Kasper Holbek Jensen
Kasper Holbek Jensen

πŸ“–
Farhan Khan
Farhan Khan

πŸ’»
Jurre Vriesen
Jurre Vriesen

πŸ’»
James Turnbull
James Turnbull

πŸ’»
Dean Shub
Dean Shub

πŸ’»
lozbrown
lozbrown

πŸ’» πŸ’‘


sergeir82
sergeir82

πŸ’»
Kyle Lucy
Kyle Lucy

πŸ’»
userdocs
userdocs

πŸ“–
Janos Kasza
Janos Kasza

πŸ’»
Grant Handy
Grant Handy

πŸ“–
Leszek BΕ‚aΕΌewski
Leszek BΕ‚aΕΌewski

πŸ’» πŸ“¦

This project follows the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind welcome!

## Show your support

Give a ⭐️ if this project helped you!

## πŸ“ License

Copyright Β© 2019
[Cian Butler ](https://github.com/butlerx).
This
project is [MIT](https://github.com/butlerx/wetty/blob/main/LICENSE) licensed.

---