Apache Guacamole

{{Short description|Open-source remote desktop software}}

{{Infobox software

| name = Apache Guacamole

| logo = Apache Guacamole logo.png

| logo_size = 100px

| developer = Apache Software Foundation

| released = {{Start date and age|2010|03|17}}

| latest release version = 1.5.5

| latest release date = {{Start date and age|2024|04|05}}{{citation|url=https://guacamole.apache.org/releases/1.5.5/|title=Apache Guacamole™: 1.5.5|access-date=2024-04-07}}

| repo = * {{URL|https://github.com/apache/guacamole-server|guacamole-server}}

  • {{URL|https://github.com/apache/guacamole-client|guacamole-client}}

| programming language = C and Java (server), JavaScript (client)

| operating system = *Server: Linux / UNIX

  • Client: Web browsers that support HTML5

| language =

| genre = Remote Desktop Gateway

| license = Apache License 2.0

| website = {{URL|https://guacamole.apache.org|Official Website}}

}}

Apache Guacamole is a clientless remote desktop gateway allowing 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. It is published under the Apache License 2.0, available for multiple platforms and maintained by the Apache Software Foundation.

Remote access is performed via the guacd component, which uses the RDP, VNC 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.{{Cite web|last=Kenlon|first=Seth|date=6 May 2020|title=5 open source tools IT leaders should know about now|url=https://enterprisersproject.com/article/2020/5/5-open-source-tools-it-leaders|url-status=live|archive-url=https://web.archive.org/web/20200507074206/https://enterprisersproject.com/article/2020/5/5-open-source-tools-it-leaders |archive-date=2020-05-07 |access-date=2020-09-22|website=enterprisersproject.com|language=en}}

Components

File:Architecture of Apache Guacamole.png

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{{Cite web|title=Performance testing of Guacamole-Apache Mail Archives|url=https://lists.apache.org/thread/zdlsnn2br4gvtx09q6zqtxym6dwlrjwc|website=lists.apache.org|language=en}} native protocols into the Guacamole protocol. The part of Guacamole that a user interacts with is the web application.{{Cite web|title=Implementation and architecture — Apache Guacamole Manual v1.5.0|url=https://guacamole.apache.org/doc/1.5.0/gug/guacamole-architecture.html|website=guacamole.apache.org|language=en}}

=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 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{{Cite web|title=Apache Guacamole - SourceForge.net|url=https://sourceforge.net/projects/guacamole/|access-date=2023-03-23|website=SourceForge.net|date=19 January 2023 |language=en}} as an HTML5 VNC client leveraging components of a browser-based telnet client called "RealMint".{{Cite web|title=Introduction - Apache Guacamole Manual v1.5.0|url=https://guacamole.apache.org/doc/1.5.0/gug/introduction.html#what-is-guacamole|website=guacamole.apache.org|language=en}} The company Glyptodon LLC formed to support and develop the project,{{Cite web|title=Guacamole - HTML5 Clientless Remote Desktop|url=http://guac-dev.org/|website=guac-dev.org|language=en|access-date=2023-03-23|archive-date=2016-04-05|archive-url=https://web.archive.org/web/20160405220041/http://guac-dev.org/|url-status=bot: unknown}} 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.{{Cite web|title=Guacamole Incubation Status - Apache Incubator|url=https://incubator.apache.org/projects/guacamole.html|website=incubator.apache.org|language=en}}

As an Apache Software Foundation project, Guacamole is licensed under the Apache License and is developed by a community of contributors.{{Cite web|title=Apache Guacamole™: Open Source|url=https://guacamole.apache.org/open-source/|website=guacamole.apache.org|language=en}}{{Cite web|title=Apache Phone Book - Guacamole|url=https://people.apache.org/phonebook.html?unix=guacamole|website=apache.org|language=en}} Development discussions and support take place on the project's mailing lists,{{Cite web|title=Apache Guacamole™: Help / Support|url=https://guacamole.apache.org/support/#mailing-lists|website=guacamole.apache.org|language=en}} 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.{{Cite web|title=Apache Guacamole™: Security Reports|url=https://guacamole.apache.org/security/|website=guacamole.apache.org|language=en}}

=Timeline=

class="wikitable"
Version{{Cite web|title=Apache Guacamole™: Release Archive|url=https://guacamole.apache.org/releases/|website=guacamole.apache.org|language=en}}

! Release date

{{Version|c|1.5.5}}

| 2024-04-05

{{Version|o|1.5.4}}

| 2023-12-07

{{Version|o|1.5.3}}

| 2023-07-31

{{Version|o|1.5.2}}

| 2023-05-25

{{Version|o|1.5.1}}

| 2023-04-13

{{Version|o|1.5.0}}

| 2023-02-18

{{Version|o|1.4.0}}

| 2022-01-01

{{Version|o|1.3.0}}

| 2021-01-01

{{Version|o|1.2.0}}

| 2020-06-28

{{Version|o|1.1.0}}

| 2020-01-29

{{Version|o|1.0.0}}

| 2019-01-08

{{Version|o|0.9.14}}

| 2018-01-18

{{Version|o|0.9.13-incubating}}

| 2017-07-30

{{Version|o|0.9.12-incubating}}

| 2017-04-01

{{Version|o|0.9.11-incubating}}

| 2017-02-02

{{Version|o|0.9.10-incubating}}

| 2016-12-29

{{Version|o|0.9.9}}

| 2015-12-18

{{Version|o|0.9.8}}

| 2015-09-09

{{Version|o|0.9.7}}

| 2015-06-10

{{Version|o|0.9.6}}

| 2015-03-30

{{Version|o|0.9.5}}

| 2015-02-16

{{Version|o|0.9.4}}

| 2015-01-06

{{Version|o|0.9.3}}

| 2014-09-30

{{Version|o|0.9.2}}

| 2014-07-21

{{Version|o|0.9.1}}

| 2014-05-23

{{Version|o|0.8.4}}

| 2014-05-23

{{Version|o|0.9.0}}

| 2014-03-28

{{Version|o|0.8.3}}

| 2013-08-28

{{Version|o|0.8.2}}

| 2013-07-15

colspan="2" | {{Version |l |show=111100}}

Literature

  • Kalyan Ram, S. Arun Kumar, S. Prathap, B. Mahesh & B. Mallikarjuna Sarma: [https://link.springer.com/chapter/10.1007/978-3-319-64352-6_19 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