Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
We call it clientless because no plugins or client software are required.
Thanks to HTML5, once Guacamole is installed on a server, all you need to access your desktops is a web browser.
Access your computers from anywhere
Because the Guacamole client is an HTML5 web application, use of your computers is not tied to any one device or location. As long as you have access to a web browser, you have access to your machines.
Keep your desktop in the cloud
Desktops accessed through Guacamole need not physically exist. With both Guacamole and a desktop operating system hosted in the cloud, you can combine the convenience of Guacamole with the resilience and flexibility of cloud computing.
Free and open source
Apache Guacamole is and will always be free and open source software. It is licensed under the Apache License, Version 2.0, and is actively maintained by a community of developers that use Guacamole to access their own development environments.
We feel this sets us apart from other remote desktop solutions, and gives us a distinct advantage.
Built on a well-documented API
Apache Guacamole is built on its own stack of core APIs which are thoroughly documented, including basic tutorials and conceptual overviews in the online manual. These APIs allow Guacamole to be tightly integrated into other applications, whether they be open source or proprietary.
For enterprises, dedicated commercial support is also available through third party companies.
Replace RDP, SSH and Team Viewer with free open source web-based client-less remote desktop/server gateway.
Setup Guacamole Remote Desktop Gateway on Ubuntu with one script.
In order to build guacamole-server, you will need Cairo, libjpeg, libpng, and the OSSP UUID library. These libraries are strictly required in all cases – Guacamole cannot be built without them.
|Cairo||Cairo is used by libguac for graphics rendering. Guacamole cannot function without Cairo installed.
|libjpeg-turbo||libjpeg-turbo is used by libguac to provide JPEG support. Guacamole will not build without this library present:
If libjpeg-turbo is unavailable on your platform, and you do not wish to build it from source, libjpeg will work as well, though it will not be quite as fast:
|libpng||libpng is used by libguac to write PNG images, the core image type used by the Guacamole protocol. Guacamole cannot function without libpng.
|libtool||libtool is used during the build process. libtool creates compiled libraries needed for Guacamole.
|OSSP UUID||OSSP UUID is used by libguac to assign unique IDs to each Guacamole connection. These unique IDs are the basis for connection sharing support.
The optional dependencies of Guacamole dictate which parts of guacamole-server will be built. This includes the support for various remote desktop protocols, as well as any additional features of those protocols:
- VNC support depends on the libvncclient library, which is part of libVNCServer.
- RDP support depends on a recent version of FreeRDP (1.0 or higher, but please not a non-release version from git).
- SSH support depends on libssh2, OpenSSL and Pango (a font rendering and text layout library, used by Guacamole’s built-in terminal emulator).
- Telnet depends on libtelnet and Pango.
- Kubernetes support depends on libwebsockets, OpenSSL, and Pango.
The guacenc utility, provided by guacamole-server to translate screen recordings into video, depends on FFmpeg, and will only be built if at least the libavcodec, libavutil, and libswscale libraries provided by FFmpeg are installed.
Obtaining the source code
You can obtain a copy of the guacamole-server source from the Guacamole project web site. These releases are stable snapshots of the latest code which have undergone enough testing that the Guacamole team considers them fit for public consumption. Source downloaded from the project web site will take the form of a
.tar.gz archive which you can extract from the command line:
tar -xzf guacamole-server-1.1.0.tar.gz
If you want the absolute latest code, and don’t care that the code hasn’t been as rigorously tested as the code in stable releases, you can also clone the Guacamole team’s git repository on GitHub:
Cloning into 'guacamole-server'... remote: Counting objects: 6769, done. remote: Compressing objects: 100% (2244/2244), done. remote: Total 6769 (delta 3058), reused 6718 (delta 3008) Receiving objects: 100% (6769/6769), 2.32 MiB | 777 KiB/s, done. Resolving deltas: 100% (3058/3058), done.