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: 6 months ago 
        JSON representation
    
Terminal in browser over http/https. (Ajaxterm/Anyterm alternative, but much better)
- Host: GitHub
- URL: https://github.com/butlerx/wetty
- Owner: butlerx
- License: mit
- Created: 2014-03-29T08:12:02.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2025-04-15T09:52:29.000Z (7 months ago)
- Last Synced: 2025-05-07T23:29:52.469Z (6 months ago)
- Topics: ajaxterm, anyterm, hacktoberfest, hacktoberfest-accepted, terminal, wetty, xterm, xterm-js, xtermjs
- Language: TypeScript
- Homepage: https://butlerx.github.io/wetty
- Size: 5.11 MB
- Stars: 4,563
- Watchers: 101
- Forks: 694
- Open Issues: 22
- 
            Metadata Files:
            - Readme: README.md
- License: LICENSE
 
Awesome Lists containing this project
- awesome-repositories - butlerx/wetty - Terminal in browser over http/https. (Ajaxterm/Anyterm alternative, but much better) (TypeScript)
README
          # WeTTY = Web + TTY.
[](#contributors-)
[](https://github.com/butlerx/wetty/tree/main/docs)
[](https://github.com/butlerx/wetty/blob/main/LICENSE)
> Terminal access in browser over http/https

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: [@butlerx@mastodon.ie](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
π» π
      
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](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.
---