diff --git a/README.md b/README.md index 2c1f013..837d3dd 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ ## Introduction -A simple web application to be used as an ssh client to connect to your ssh servers. It is written in Python, base on tornado and paramiko. +A simple web application to be used as an ssh client to connect to your ssh servers. It is written in Python, base on tornado, paramiko and xterm.js. ``` -+---------+ http +--------+ ssh +-----------+ ++---------+ http +--------+ ssh +-----------+ | browser | <==========> | webssh | <=======> | ssh server| +---------+ websocket +--------+ ssh +-----------+ ``` @@ -31,21 +31,34 @@ A simple web application to be used as an ssh client to connect to your ssh serv ![Terminal](https://github.com/huashengdun/webssh/raw/master/preview/terminal.png) -### Requirement +### Requirements * Python 2.7/3.4+ -### Instructions +### Quickstart +1. Install this app `pip install webssh` +2. Start a webserver `wssh` +3. Open your browser, navigate to `127.0.0.1:8888` +4. Input your data, submit the form. + + +### Installation options + +Install from the pypi repository, may not the latest version ``` pip install webssh -wssh ``` -### Options - +Install from the github repository, always the latest version +``` +pip install https://github.com/huashengdun/webssh/archive/master.zip ``` + +### Server options + +```bash # listen address and port wssh --address='0.0.0.0' --port=8000 @@ -62,6 +75,36 @@ wssh --log-file-prefix=main.log wssh --help ``` +### Use console + + +```javascript +// set a new encoding for client to use +wssh.set_encoding(encoding); + +// reset encoding to use the default one +wssh.reset_encoding(); + +// connect to your ssh server +wssh.connect(hostname, port, username, password, privatekey); + +// without argument, wssh will use the form data to connect +wssh.connect(); + +// define a mapping object +var opts = { + hostname: 'hostname', + port: 'port', + username: 'username', + password: 'password', + privatekey: 'the private key text' +}; +wssh.connect(opts); + +// send a command to the server +wssh.send('ls -l'); +``` + ### Tests Use unittest to run all tests @@ -76,7 +119,7 @@ python -m pytest tests ### An example of config for running this app behind an Nginx server -``` +```nginx location / { proxy_pass http://127.0.0.1:8888; proxy_http_version 1.1; diff --git a/README.rst b/README.rst index 5bfecc1..b8da62b 100644 --- a/README.rst +++ b/README.rst @@ -7,11 +7,12 @@ Introduction ------------ A simple web application to be used as an ssh client to connect to your -ssh servers. It is written in Python, base on tornado and paramiko. +ssh servers. It is written in Python, base on tornado, paramiko and +xterm.js. :: - +---------+ http +--------+ ssh +-----------+ + +---------+ http +--------+ ssh +-----------+ | browser | <==========> | webssh | <=======> | ssh server| +---------+ websocket +--------+ ssh +-----------+ @@ -31,24 +32,39 @@ Preview |Login| |Terminal| -Requirement -~~~~~~~~~~~ +Requirements +~~~~~~~~~~~~ - Python 2.7/3.4+ -Instructions -~~~~~~~~~~~~ +Quickstart +~~~~~~~~~~ + +1. Install this app ``pip install webssh`` +2. Start a webserver ``wssh`` +3. Open your browser, navigate to ``127.0.0.1:8888`` +4. Input your data, submit the form. + +Installation options +~~~~~~~~~~~~~~~~~~~~ + +Install from the pypi repository, may not the latest version :: pip install webssh - wssh -Options -~~~~~~~ +Install from the github repository, always the latest version :: + pip install https://github.com/huashengdun/webssh/archive/master.zip + +Server options +~~~~~~~~~~~~~~ + +.. code:: bash + # listen address and port wssh --address='0.0.0.0' --port=8000 @@ -64,6 +80,36 @@ Options # more options wssh --help +Use console +~~~~~~~~~~~ + +.. code:: javascript + + // set a new encoding for client to use + wssh.set_encoding(encoding); + + // reset encoding to use the default one + wssh.reset_encoding(); + + // connect to your ssh server + wssh.connect(hostname, port, username, password, privatekey); + + // without argument, wssh will use the form data to connect + wssh.connect(); + + // define a mapping object + var opts = { + hostname: 'hostname', + port: 'port', + username: 'username', + password: 'password', + privatekey: 'the private key text' + }; + wssh.connect(opts); + + // send a command to the server + wssh.send('ls -l'); + Tests ~~~~~ @@ -82,7 +128,7 @@ Use pytest to run all tests An example of config for running this app behind an Nginx server ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: +.. code:: nginx location / { proxy_pass http://127.0.0.1:8888; diff --git a/preview/login.png b/preview/login.png index 4d94b54..355fcec 100644 Binary files a/preview/login.png and b/preview/login.png differ diff --git a/preview/terminal.png b/preview/terminal.png index f4d28b1..0e616d1 100644 Binary files a/preview/terminal.png and b/preview/terminal.png differ diff --git a/webssh/_version.py b/webssh/_version.py index e1fd2ce..cb839c2 100644 --- a/webssh/_version.py +++ b/webssh/_version.py @@ -1,2 +1,2 @@ -__version_info__ = (0, 3, 5) +__version_info__ = (0, 3, 9) __version__ = '.'.join(map(str, __version_info__))