• Stars
    star
    4,032
  • Rank 10,330 (Top 0.3 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 10 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

WeTTY = Web + TTY.

All Contributors

Version Node Version Documentation License: MIT Twitter: cianbutlerx

Terminal access in browser over http/https

WeTTY

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 >=14
  • make
  • python
  • build-essential

Install

yarn global add wetty

Usage

$ 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/<username> 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 for a full list of flags

Docker container

To use WeTTY as a docker container, a docker image is available on docker hub. To run this image, use

docker run --rm -p 3000:3000 wettyoss/wetty --ssh-host=<YOUR-IP>

and you will be able to open a ssh session to the host given by YOUR-IP under the URL 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 and traefik. For traefik there is an example docker-compose file in the containers directory.

FAQ

Check out the docs

What browsers are supported?

WeTTY supports all browsers that xterm.js supports.

Author

๐Ÿ‘ค Cian Butler [email protected]

Contributing โœจ

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Please read the development docs for installing from source and running is dev node

Thanks goes to these wonderful people (emoji key):


Cian Butler

๐Ÿ’ป ๐Ÿ“–

Krishna Srinivas

๐Ÿ’ป

acalatrava

๐Ÿ’ป

Strubbl

๐Ÿ’ป

Oleg Kurapov

๐Ÿ’ป

Boyan Rabchev

๐Ÿ’ป

Jimmy

๐Ÿ’ป

Luca Milanesio

๐Ÿ’ป

Anthony Jund

๐Ÿ’ป

mirtouf

๐Ÿ’ป

Bertrand Roussel

๐Ÿ’ป

Ben Letchford

๐Ÿ’ป

SouraDutta

๐Ÿ’ป

Koushik M.L.N

๐Ÿ’ป

Imuli

๐Ÿ’ป

perpen

๐Ÿ’ป

Nathan LeClaire

๐Ÿ’ป

Mihir Kumar

๐Ÿ’ป

Chris Suszynski

๐Ÿ’ป

Felix Bartels

๐Ÿ’ป

Jarrett Gilliam

๐Ÿ’ป

Harry Lee

๐Ÿ’ป

Andreas Klรถckner

๐Ÿ’ป

DenisKramer

๐Ÿ’ป

Vamshi K Ponnapalli

๐Ÿ’ป

Tri Nguyen

๐Ÿ“–

Felix Pojtinger

๐Ÿ“–

Neale Pickett

๐Ÿ’ป

Matthew Piercey

๐Ÿ“–

Kasper Holbek Jensen

๐Ÿ“–

Farhan Khan

๐Ÿ’ป

Jurre Vriesen

๐Ÿ’ป

James Turnbull

๐Ÿ’ป

Dean Shub

๐Ÿ’ป

lozbrown

๐Ÿ’ป ๐Ÿ’ก

sergeir82

๐Ÿ’ป

Kyle Lucy

๐Ÿ’ป

userdocs

๐Ÿ“–

Janos Kasza

๐Ÿ’ป

Grant Handy

๐Ÿ“–

Leszek Bล‚aลผewski

๐Ÿ’ป ๐Ÿ“ฆ

This project follows the all-contributors specification. Contributions of any kind welcome!

Show your support

Give a โญ๏ธ if this project helped you!

๐Ÿ“ License

Copyright ยฉ 2019 Cian Butler [email protected].
This project is MIT licensed.