# webterm
**Repository Path**: youmaitu_1/webterm
## Basic Information
- **Project Name**: webterm
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-05-06
- **Last Updated**: 2025-05-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Webterm
-----------------
Terminal over HTTP and HTTPS. Webterm uses ChromeOS'
terminal emulator (hterm) which is a full fledged implementation of
terminal emulation written entirely in Javascript. Also it uses
websockets instead of Ajax.
hterm source - https://chromium.googlesource.com/apps/libapps/+/master/hterm/

Install
-------
* `git clone https://github.com/norsig/webterm`
* `cd webterm`
* `npm install`
Run on HTTP:
-----------
node app.js -p 3000
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`.
If instead you wish to connect to a remote host you can specify the
`--sshhost` option, the SSH port using the `--sshport` option and the
SSH user using the `--sshuser` option.
You can also specify the SSH user name in the address bar like this:
`http://yourserver:3000/webterm/ssh/`
Run on HTTPS:
------------
Always use HTTPS! If you don't have SSL certificates from a CA you can
create a self signed certificate using this command:
`openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 30000 -nodes`
And then run:
node app.js --sslkey key.pem --sslcert cert.pem -p 3000
Again, if you run it as root it will launch `/bin/login`, else it will
launch SSH to `localhost` or a specified host as explained above.
Run webterm behind nginx:
----------------------
Put the following configuration in nginx's conf:
location /webterm {
proxy_pass http://127.0.0.1:3000/webterm;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 43200000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
If you are running `app.js` as `root` and have an Nginx proxy you have to use:
http://yourserver.com/webterm
Else if you are running `app.js` as a regular user you have to use:
http://yourserver.com/webterm/ssh/
**Note that if your Nginx is configured for HTTPS you should run webterm without SSL.**
Run webterm as a service daemon
-----------------------------
Install webterm globally with -g option:
```bash
$ sudo npm install webterm -g
$ sudo cp /usr/local/lib/node_modules/webterm/bin/webterm.conf /etc/init
$ sudo start webterm
```
This will start webterm on port 3000. If you want to change the port or redirect stdout/stderr you should change the last line in `webterm.conf` file, something like this:
exec sudo -u root webterm -p 80 >> /var/log/webterm.log 2>&1