/guac

Apache Guacamole client ported to Go

Primary LanguageGoApache License 2.0Apache-2.0

guac

A port of the Apache Guacamole client to Go.

Apache Guacamole provides access to your desktop using remote desktop protocols in your web browser without any plugins.

GoDoc Go Report Card Build Status

Development

First start guacd in a container, for example:

docker run --name guacd -d -p 4822:4822 guacamole/guacd

Next run the example main:

go run cmd/guac/guac.go

Now you can connect with the example Vue app. By default, guac will try to connect to a guacd instance at 127.0.0.1:4822. If you need to configure something different, you can do so by configuring environment variables; see the configurable parameters below.

Guac listens on http://0.0.0.0:4567. If you have a need for the connection to Guac to be secure, you will need to pass a certificate and keyfile to it using the CERT_PATH and CERT_KEY_PATH environment variables; it will then listen on https://0.0.0.0:4567. The secure connection uses TLS 1.3.

Configurable parameters

Environment Variable Description Default Value Required?
CERT_PATH Full path, including filename, to a certificate file in order for guac to listen on HTTPS (TLS 1.3) No
CERT_KEY_PATH Full path, including filename, to the certificate keyfile in order for guac to listen on HTTPS (TLS 1.3) No
GUACD_ADDRESS The address and port that guacd is listening on 127.0.0.1:4822 No

Acknowledgements

Initially forked from https://github.com/johnzhd/guacamole_client_go which is a direct rewrite of the Java Guacamole client. This project no longer resembles that one but it helped it get off the ground!

Some of the comments are taken directly from the official Apache Guacamole Java client.