@ -1,42 +1,37 @@
Wetty = Web + tty
## Wetty = Web + tty
-----------------
Terminal over HTTP and HTTPS. Wetty is an alternative to
Terminal over HTTP and HTTPS. Wetty is an alternative to ajaxterm/anyterm but
ajaxterm/anyterm but much better than them because wetty uses ChromeOS'
much better than them because wetty uses ChromeOS' terminal emulator (hterm)
terminal emulator (hterm) which is a full fledged implementation of
which is a full fledged implementation of terminal emulation written entirely in
terminal emulation written entirely in Javascript. Also it uses
Javascript. Also it uses websockets instead of Ajax and hence better response
websockets instead of Ajax and hence better response time.
time.
[hterm source ](https://chromium.googlesource.com/apps/libapps/+/master/hterm/ )
[hterm source ](https://chromium.googlesource.com/apps/libapps/+/master/hterm/ )
![Wetty ](/terminal.png?raw=true )
![Wetty ](/terminal.png?raw=true )
This fork has a few of the open PR's from the original merged in as well as scripts to make running
in docker better.
## Install
## Install
- `git clone https://github.com/butlerx /wetty`
* `git clone https://github.com/krishnasrinivas/wetty`
- `cd wetty`
* `cd wetty`
- `yarn`
* `yarn`
or
or
`yarn add wetty.js `
`yarn add wetty`
## Run on HTTP
## Run on HTTP
``` bash
```bash
node bin/index.js -p 3000
node bin/index.js -p 3000
```
```
If you run it as root it will launch `/bin/login` (where you can specify
If you run it as root it will launch `/bin/login` (where you can specify the
the user name), else it will launch `ssh` and connect by default to
user name), else it will launch `ssh` and connect by default to `localhost` .
`localhost` .
If instead you wish to connect to a remote host you can specify the
If instead you wish to connect to a remote host you can specify the `--sshhost`
`--sshhost` option, the SSH port using the `--sshport` option and the
option, the SSH port using the `--sshport` option and the SSH user using the
SSH user using the `--sshuser` option.
`--sshuser` option.
You can also specify the SSH user name in the address bar like this:
You can also specify the SSH user name in the address bar like this:
@ -48,8 +43,8 @@ or
## Run on HTTPS
## Run on HTTPS
Always use HTTPS. If you don't have SSL certificates from a CA you can
Always use HTTPS. If you don't have SSL certificates from a CA you can create a
create a self signed certificate using this command:
self signed certificate using this command:
```
```
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 30000 -nodes
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 30000 -nodes
@ -61,8 +56,8 @@ And then run:
node bin/index.js --sslkey key.pem --sslcert cert.pem -p 3000
node bin/index.js --sslkey key.pem --sslcert cert.pem -p 3000
```
```
Again, if you run it as root it will launch `/bin/login` , else it will
Again, if you run it as root it will launch `/bin/login` , else it will launch
launch SSH to `localhost` or a specified host as explained above.
SSH to `localhost` or a specified host as explained above.
## Run wetty behind nginx or apache
## Run wetty behind nginx or apache
@ -94,7 +89,8 @@ Put the following configuration in apache's conf:
ProxyPassReverse /wetty/
ProxyPassReverse /wetty/
< / LocationMatch >
< / LocationMatch >
If you are running `bin/index.js` as `root` and have an Nginx proxy you have to use:
If you are running `bin/index.js` as `root` and have an Nginx proxy you have to
use:
```
```
http://yourserver.com/wetty
http://yourserver.com/wetty
@ -112,12 +108,13 @@ or
http://yourserver.com/wetty
http://yourserver.com/wetty
```
```
**Note that if your Nginx is configured for HTTPS you should run wetty without SSL.**
**Note that if your Nginx is configured for HTTPS you should run wetty without
SSL.**
## Dockerized Version
## Dockerized Version
This repo includes a Dockerfile you can use to run a Dockerized version of wetty. You can run
This repo includes a Dockerfile you can use to run a Dockerized version of
whatever you want!
wetty. You can run whatever you want!
Just modify docker-compose and run:
Just modify docker-compose and run:
@ -125,9 +122,11 @@ Just modify docker-compose and run:
docker-compose up -d
docker-compose up -d
```
```
Visit the appropriate URL in your browser (`[localhost|$(boot2docker ip)]:PORT`).
Visit the appropriate URL in your browser
(`[localhost|$(boot2docker ip)]:PORT`).
The default username is `term` and the password is `term` , if you did not modify `SSHHOST`
The default username is `term` and the password is `term` , if you did not modify
`SSHHOST`
If you dont want to build the image yourself just remove the line `build; .`
If you dont want to build the image yourself just remove the line `build; .`
@ -138,7 +137,7 @@ Install wetty globally with global option:
### init.d
### init.d
```bash
```bash
$ sudo yarn global add wetty.js
$ sudo yarn global add wetty
$ sudo cp /usr/local/lib/node_modules/wetty.js/bin/wetty.conf /etc/init
$ sudo cp /usr/local/lib/node_modules/wetty.js/bin/wetty.conf /etc/init
$ sudo start wetty
$ sudo start wetty
```
```
@ -146,7 +145,7 @@ $ sudo start wetty
### systemd
### systemd
```bash
```bash
$ yarn global add wetty.js
$ yarn global add wetty
$ cp ~/.config/yarn/global/node_modules/wetty.js/bin/wetty.service ~/.config/systemd/user/
$ cp ~/.config/yarn/global/node_modules/wetty.js/bin/wetty.service ~/.config/systemd/user/
$ systemctl --user enable wetty
$ systemctl --user enable wetty
$ systemctl --user start wetty
$ systemctl --user start wetty
@ -155,15 +154,20 @@ $ systemctl --user start wetty
This will start wetty on port 3000. If you want to change the port or redirect
This will start wetty on port 3000. If you want to change the port or redirect
stdout/stderr you should change the last line in `wetty.conf` file, something
stdout/stderr you should change the last line in `wetty.conf` file, something
like this:
like this:
```
```
exec sudo -u root wetty -p 80 >> /var/log/wetty.log 2>& 1
exec sudo -u root wetty -p 80 >> /var/log/wetty.log 2>& 1
```
```
## FAQ
## FAQ
### What browsers are supported?
### What browsers are supported?
Wetty supports all browsers that Google's hterm supports. Wetty has been [reported ](https://github.com/krishnasrinivas/wetty/issues/45#issuecomment-181448586 ) to work on Google Chrome, Firefox and IE 11.
Wetty supports all browsers that Google's hterm supports. Wetty has been
[reported ](https://github.com/krishnasrinivas/wetty/issues/45#issuecomment-181448586 )
to work on Google Chrome, Firefox and IE 11.
### Why isn't Wetty working with IE?
### Why isn't Wetty working with IE?
[This fix ](https://stackoverflow.com/questions/13102116/access-denied-for-localstorage-in-ie10#20848924 ) has been known to help some users.
[This fix ](https://stackoverflow.com/questions/13102116/access-denied-for-localstorage-in-ie10#20848924 )
has been known to help some users.