Apache Guacamole is a
free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
,
cross-platform, clientless
remote desktop gateway maintained by the
Apache Software Foundation
The Apache Software Foundation (ASF) is an American nonprofit corporation (classified as a 501(c)(3) organization in the United States) to support a number of open source software projects. The ASF was formed from a group of developers of the A ...
. It allows users to control
remote computers or
virtual machines via a
web browser, and allows administrators to dictate how and whether users can connect using an extensible
authentication and
authorization system. Destination machines can be kept isolated behind Guacamole and need not be reachable over the
internet.
Remote access is performed via the guacd component, which uses the
RDP,
VNC
Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse input from one computer to another, relaying the g ...
or
SSH remote protocols to access resources. Guacamole is clientless and doesn't require an agent to be installed on the resources being accessed. The fact that the client runs on web browsers allows users to connect to their remote desktops without installing a remote desktop client.
Components

Guacamole is made up of multiple components: a
web application that is served to users, and a
backend service ("guacd") that dynamically translates and optimizes native protocols into the Guacamole protocol. The part of Guacamole that a user interacts with is the web application.
Web Application
The web application provides the user interface, authentication, and authorization system. It does not implement any remote desktop protocol, but instead relies on guacd to translate remote desktop protocols into the Guacamole protocol. The
server side
In the client–server model, server-side refers to programs and operations that run on the server. This is in contrast to client-side programs and operations which run on the client.
General concepts
Typically, a server is a computer application ...
of the web application is written in
Java and runs beneath a servlet container like
Apache Tomcat or
Jetty. The
client side of the web application is written in
JavaScript and runs within the web browser.
guacd
guacd services requests to connect to remote desktops from the web application. It dynamically loads support for remote desktop protocols so that neither guacd nor the web application need to understand the specifics of any one remote desktop protocol. guacd and all client plugins use a shared library, libguac, to abstract away the Guacamole protocol and communication with the web application.
History
Guacamole was created in 2010 by Michael Jumper as an HTML5 VNC client leveraging components of a browser-based telnet client called "RealMint". The company Glyptodon LLC formed to support and develop the project, and donated the project to the Apache Software Foundation in 2016 where it entered incubation. In 2017, Guacamole completed incubation and became the Apache Guacamole top-level project.
As an
Apache Software Foundation project, Guacamole is licensed under the
Apache License and is developed by a community of contributors. Development discussions and support take place on the project's mailing lists, and contributions are made through opening
pull requests against the project's
GitHub repositories. The project follows
responsible disclosure practices and provides a private list for reporting and addressing issues with security implications.
Timeline
Literature
* Kalyan Ram, S. Arun Kumar, S. Prathap, B. Mahesh & B. Mallikarjuna Sarma
''Remote Laboratories: For Real Time Access to Experiment Setups with Online Session Booking, Utilizing a Database and Online Interface with Live Streaming'' in: Engineering & Internet of Things, Conference paper, p. 190—204
References
{{Apache Software Foundation
Cross-platform free software
Free software programmed in C
Software using the Apache license
Unix network-related software
Free software programmed in Java (programming language)
Free software programmed in JavaScript