diff --git a/index.html b/index.html index 6188b65..aa5dbf6 100644 --- a/index.html +++ b/index.html @@ -15,19 +15,19 @@

ttyd - Share your terminal over the web Build Status

-

ttyd is a simple command-line tool for sharing terminal over the web, inspired by GoTTY.

+

ttyd is a simple command-line tool for sharing terminal over the web.

screenshot

Features

Installation

Install on macOS

@@ -35,34 +35,23 @@
brew install ttyd

Install on Linux

Install on Windows

-

ttyd can be built with MSYS2 on windows, The build instructions is here.

-
- NOTE: Native windows console programs may not work correctly due to pty incompatibility issues. -
As a workaround, you can use winpty as a wrapper to invoke the windows program, eg: ttyd winpty cmd. -
-

Install on OpenWrt/LEDE

-

LEDE 17.01.0 and later:

+

Compile on Windows.

+

Install on OpenWrt

opkg install ttyd
-

If the install command fails, you can compile it yourself.

Usage

Command-line Options

ttyd is a tool for sharing terminal over the web
@@ -71,7 +60,7 @@ USAGE:
     ttyd [options] <command> [<arguments...>]
 
 VERSION:
-    1.4.0
+    1.6.0
 
 OPTIONS:
     -p, --port              Port to listen (default: 7681, use `0` for random port)
@@ -80,14 +69,17 @@ OPTIONS:
     -u, --uid               User id to run with
     -g, --gid               Group id to run with
     -s, --signal            Signal to send to the command when exit it (default: 1, SIGHUP)
-    -r, --reconnect         Time to reconnect for the client in seconds (default: 10)
+    -a, --url-arg           Allow client to send command line arguments in URL (eg: http://localhost:7681?arg=foo&arg=bar)
     -R, --readonly          Do not allow clients to write to the TTY
     -t, --client-option     Send option to client (format: key=value), repeat to add more options
+    -T, --terminal-type     Terminal type to report, default: xterm-256color
     -O, --check-origin      Do not allow websocket connection from different origin
     -m, --max-clients       Maximum clients to support (default: 0, no limit)
     -o, --once              Accept only one client and exit on disconnection
     -B, --browser           Open terminal with the default system browser
     -I, --index             Custom index.html path
+    -b, --base-path         Expected base path for requests coming from a reverse proxy (eg: /mounted/here)
+    -6, --ipv6              Enable IPv6 support
     -S, --ssl               Enable SSL
     -C, --ssl-cert          SSL certificate file path
     -K, --ssl-key           SSL key file path
@@ -98,45 +90,13 @@ OPTIONS:
 
 Visit https://github.com/tsl0922/ttyd to get more information and report bugs.
 
-

Example Usage

-

ttyd starts web server at port 7681 by default, you can use the -p option to change it, the command will be started with arguments as options. For example, run:

-
ttyd -p 8080 bash -x
-

Then open http://localhost:8080 with a broswer, you will get a bash shell with debug mode enabled.

-

More Examples:

+

Read the example usage on the wiki.

+

Browser Support

+

Modern browsers, See Browser Support.

+

Alternatives

-

SSL how-to

-

Generate SSL CA and self signed server/client certificates:

-
# CA certificate (FQDN must be different from server/client)
-openssl genrsa -out ca.key 4096
-openssl req -new -x509 -days 365 -key ca.key -out ca.crt
-# server certificate
-openssl req -newkey rsa:2048 -nodes -keyout server.key -out server.csr
-openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
-# client certificate (the p12/pem format may be useful for some clients)
-openssl req -newkey rsa:2048 -nodes -keyout client.key -out client.csr
-openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 02 -out client.crt
-openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
-openssl pkcs12 -in client.p12 -out client.pem -clcerts
-

Then start ttyd:

-
ttyd --ssl --ssl-cert server.crt --ssl-key server.key --ssl-ca ca.crt bash
-

You may want to test the client certificate verification with curl:

-
curl --insecure --cert client.p12[:password] -v https://localhost:7681
-

If you don't want to enable client certificate verification, remove the --ssl-ca option.

-

Docker and ttyd

-

Docker containers are jailed environments which are more secure, this is useful for protecting the host system, you may use ttyd with docker like this:

- -

Credits

-