• This repository has been archived on 18/Jul/2023
  • Stars
    star
    1,014
  • Rank 45,352 (Top 0.9 %)
  • Language
    C
  • License
    Apache License 2.0
  • Created over 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Guacamole project is now Apache Guacamole (http://guacamole.apache.org/). This repository has been repurposed as the base for the Apache Guacamole packages built for Glyptodon Enterprise.
------------------------------------------------------------
 About this README
------------------------------------------------------------

This README is intended to provide quick and to-the-point documentation for
technical users intending to compile parts of Apache Guacamole themselves.

Source archives are available from the downloads section of the project website:
 
    http://guacamole.apache.org/

A full manual is available as well:

    http://guacamole.apache.org/doc/gug/


------------------------------------------------------------
 What is guacamole-server?
------------------------------------------------------------

The guacamole-server package is a set of software which forms the basis of the
Guacamole stack. It consists of guacd, libguac, and several protocol support
libraries.

guacd is the Guacamole proxy daemon used by the Guacamole web application and
framework. As JavaScript cannot handle binary protocols (like VNC and remote
desktop) efficiently, a new text-based protocol was developed which would
contain a common superset of the operations needed for efficient remote desktop
access, but would be easy for JavaScript programs to process. guacd is the
proxy which translates between arbitrary protocols and the Guacamole protocol.


------------------------------------------------------------
 Required dependencies
------------------------------------------------------------

All software within guacamole-server is built using the popular GNU Automake,
and thus provides the standard configure script. Before compiling, at least
the following required dependencies must already be installed:

    1) Cairo (http://cairographics.org/)

    2) libjpeg-turbo (http://libjpeg-turbo.virtualgl.org/)
       OR libjpeg (http://www.ijg.org/)

    3) libpng (http://www.libpng.org/pub/png/libpng.html)

    4) OSSP UUID (http://www.ossp.org/pkg/lib/uuid/)


------------------------------------------------------------
 Optional dependencies
------------------------------------------------------------

In addition, the following optional dependencies may be installed in order to
enable optional features of Guacamole. Note that while the various supported
protocols are technically optional, you will no doubt wish to install the 
dependencies of at least ONE supported protocol, as Guacamole would be useless
otherwise.

    RDP:
        * FreeRDP (http://www.freerdp.com/)

    SSH:
        * libssh2 (http://www.libssh2.org/)
        * OpenSSL (https://www.openssl.org/)
        * Pango (http://www.pango.org/)

    Telnet:
        * libtelnet (https://github.com/seanmiddleditch/libtelnet)
        * Pango (http://www.pango.org/)

    VNC:
        * libVNCserver (http://libvnc.github.io/)

    Support for audio within VNC:
        * PulseAudio (http://www.freedesktop.org/wiki/Software/PulseAudio/)

    Support for SFTP file transfer for VNC or RDP:
        * libssh2 (http://www.libssh2.org/)
        * OpenSSL (https://www.openssl.org/)

    Support for WebP image compression:
        * libwebp (https://developers.google.com/speed/webp/)

    "guacenc" video encoding utility:
        * FFmpeg (https://ffmpeg.org/)


------------------------------------------------------------
 Compiling and installing guacd, libguac, etc.
------------------------------------------------------------

All software within guacamole-server is built using the popular GNU Automake,
and thus provides the standard configure script.

1) Run configure

    $ ./configure

    Assuming all dependencies have been installed, this should succeed without
    errors. If you wish to install the init script as well, you need to specify
    the location where your system init scripts are located (typically
    /etc/init.d):

    $ ./configure --with-init-dir=/etc/init.d

    Running configure in this manner will cause the "make install" step to
    install an init script to the specified directory, which you can then
    activate using the service management mechanism provided by your
    distribution).

2) Run make

    $ make

    guacd, libguac, and any available protocol support libraries will now
    compile.

3) Install (as root)

    # make install

    All software that was just built, including documentation, will be
    installed.

    guacd will install to your /usr/local/sbin directory by default. You can
    change the install location by using the --prefix option for configure.


------------------------------------------------------------
 Running guacd 
------------------------------------------------------------

If you installed the init script during compile and install, you should be
able to start guacd through the service management utilities provided by
your distribution (if any) or by running the init script directly (as root):

    # /etc/init.d/guacd start

Root access is needed to write the pidfile /var/run/guacd.pid. You can also run
guacd itself directly without the init script (as any user):

    $ guacd

guacd currently takes several command-line options:

    -b HOST 

        Changes the host or address that guacd listens on.

    -l PORT

        Changes the port that guacd listens on (the default is port 4822).

    -p PIDFILE

        Causes guacd to write the PID of the daemon process to the specified
        file. This is useful for init scripts and is used by the provided init
        script.

    -L LEVEL

        Sets the maximum level at which guacd will log messages to syslog and,
        if running in the foreground, the console.  Legal values are debug,
        info, warning, and error.  The default value is info.

    -f
        Causes guacd to run in the foreground, rather than automatically
        forking into the background. 

Additional information can be found in the guacd man page:

    $ man guacd

------------------------------------------------------------
 Reporting problems
------------------------------------------------------------

Please report any bugs encountered by opening a new issue in the JIRA system
hosted at:
    
    https://issues.apache.org/jira/browse/GUACAMOLE

More Repositories

1

guacamole-client

The Guacamole project is now Apache Guacamole (http://guacamole.apache.org/). This repository has been repurposed as the base for the Apache Guacamole packages built for Glyptodon Enterprise.
Java
1,078
star
2

guacamole-docker

Docker image for Guacamole - the clientless remote desktop gateway.
99
star
3

guacamole-test-suite

Test suite for implementations of the Guacamole protocol.
Java
23
star
4

guacd-docker

Docker image for guacd - the server-side, native proxy used by the Guacamole web application.
23
star
5

clipboard-permission-manager

Browser extension which allows users to grant JavaScript access to the clipboard on a per-page basis.
JavaScript
22
star
6

guacamole-manual

The base documentation for the entire Guacamole stack.
Python
21
star
7

glyptodon-enterprise-player

Session recording player for Glyptodon Enterprise and Apache Guacamole.
JavaScript
15
star
8

guacamole-auth-json

Guacamole authentication extension which authenticates users by reading their connection data from JSON which has been encrypted and signed with a secret key.
Java
13
star
9

guacamole-auth-callback

An extension for Apache Guacamole which authenticates users against an arbitrary HTTP service.
Java
6
star
10

guacamole-connection-tester

Connection testing extension for Guacamole which verifies the responsiveness of a pool of Guacamole servers.
JavaScript
5
star
11

guacamole-proxy-authrequest

Extension for Apache Guacamole which allows requests for other, proxied web applications to be tied to the authenticated status of the user within Guacamole.
Java
4
star
12

guacamole-framebreak

Apache Guacamole extension which adds framebreaking JavaScript to defend against clickjacking attacks.
JavaScript
4
star
13

dogobase

Simple base web application for use in coding interviews.
Java
2
star
14

mingw-libguac-example

Example application demonstrating basic use of libguac and the Guacamole protocol within Windows applications.
C
2
star
15

guacamole-auth-restrict

Extension for Apache Guacamole which enforces additional restrictions on users and user groups.
Java
2
star
16

guacamole-dev-util

Extension for Apache Guacamole which provides utility functions for testing and development.
JavaScript
1
star