Giter VIP home page Giter VIP logo

guac's Introduction

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.

guac's People

Contributors

jakecoffman avatar kriive avatar mattskipton avatar rokett avatar terickson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guac's Issues

Issue with Vue webpack

We have a web app where we want to connect to remote terminal. I bundled Vue code (webpack) and integrated in my web app. Getting below error

image

at

image

However, when I run individual Vue bundled code on some HTTP server, its working fine.
Any clue helps?

streams are UTF-8

Thanks to @kriive for pointing this out in #8.

Currently the streaming is counted by bytes, but it should be counted by UTF-8 rune.

In addition to updating Parse, we need to update ReadSome. Are there any other places?

Make guacd host and port configurable

In some scenarios it would be nice to make guacd host and port configurable via environment variables. One example would be running guacd and guac inside kubernetes.

support guacctl to download files

1ใ€‚ How to transfer files? I said in the document to use guacctl to download. File. I don't know how to use it

  1. In the document, it is said that stream stream can transmit documents, and I don't know how to use it

Authentication failure because sanitisedCfg

image

the config's password is changed when you change the sanitisedCfg's password.
so stream.Handshake always take a wrong password.

	sanitisedCfg := config
	sanitisedCfg.Parameters["password"] = "********"
	logrus.Debugf("Starting handshake with %#v", config)
	err = stream.Handshake(config)

Print functionality is not working after passing print configuration.

After taking RDP access i was trying to print document .Guacamole printer is visible after selecting the printer getting error while printing.

custom client

didn't find any error's in client , found error in server (gaucd) which works fine with (https://github.com/apache/guacamole-client) client .

guacd[3754]: INFO: Connected to RDPDR 1.13 as client 0x0002
guacd[3754]: INFO: RDPDR user logged on
guacd[3754]: INFO: Print job created
guacd[3754]: INFO: Created PDF filter process PID=3779
guacd[3779]: INFO: Running gs
guacd[3754]: INFO: User explicitly aborted print stream.
GPL Ghostscript 9.27: Unrecoverable error, exit code 1
GPL Ghostscript 9.27: ERROR: ioerror (-12) on closing pdfwrite device.
guacd[3754]: INFO: Accepted format: 16-bit PCM with 2 channels at 44100 Hz

Not sure if problem is with go client or vue.js code

URL tips\examples

Hey! Trying to use guac but cant understand whic URL should I use to connect to guacd. I already have working guacamole but looking for alternate web-clients. I keep getting "HTTP tunnel request rejected: Invalid tunnel operation: scheme=rdp&hostname=ovpnserv&ignore-cert=true&nla=true&username=username&password=password" when I try to run "go run cmd/guac/guac.go". Can you please give me some tips or examples on how to use it, thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.