5226a19d9c
This further decreases the image size to 14.6MB. |
4 years ago | |
---|---|---|
doc | 4 years ago | |
static | 4 years ago | |
vendor | 4 years ago | |
.gitignore | 4 years ago | |
.travis.yml | 4 years ago | |
Dockerfile | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
go.mod | 4 years ago | |
go.sum | 4 years ago | |
gobindata.go | 4 years ago | |
journal.org | 4 years ago | |
main.go | 4 years ago | |
server.go | 4 years ago |
README.md
tty-proxy
This is the public facing service that allows tty-share
command to create public sessions, in
addition to local ones.
tty-proxy
will listen to the address passed by the --back-address
flag, and any connections to
this address from tty-share
will create a new session (<session-id>
that will be used to proxy
any requests from any url path of the form /s/<session-id>/
back over the corresponding
tty-share
connection. See more documentation on the
tty-share project.
Note tty-proxy
replaces a part of the old tty-server
which has moved inside the actual
tty-share
command itself. Read more
here
Building
Build the gobindata.go file
All files under assets/*
are packed to the gobindata.go
file which will be statically compiled
within the final binary.
go get github.com/go-bindata/go-bindata/...
go-bindata --prefix static -o gobindata.go static/*
Build the final tty-proxy
binary
go build
Docker
The tty-proxy
can be built into a docker image as follows:
docker build -t tty-proxy .
To run the container, type:p
docker run \
-p 3456:3456 -p 8080:8080 \
-e URL=http://localhost:8080 \
--cap-drop=all --rm \
tty-proxy
where you can replace URL
by whatever will be the publicly visible URL of the server.
After this, clients can be connected as follows:
tty-share --tty-proxy localhost:3456 --no-tls --public
In the above command, :3456
is the default port where tty-proxy
listens for incoming back
connections (i.e. tty-share
clients), and 5000 is the port of the web interface through which
remote users can connect. You can override the defaults by specifying a different port mapping on
the command line, e.g. -p 4567:3456 -p 80:8080
to listen on 4567
and serve on 80
.
nginx
Take a look at this snippet to see how I configured my nginx installation for TLS termination.