Fact-checked by Grok 2 weeks ago

Apache Guacamole

Apache Guacamole is a clientless remote desktop gateway that enables users to access desktop, server, and instances via a standard , supporting protocols such as VNC, RDP, and SSH without requiring any software installation on the client side. As an open-source project hosted by , it functions as a protocol-agnostic that translates remote desktop protocols into browser-friendly formats, leveraging technologies like canvas and WebSockets for seamless interaction. Originally developed as an HTML5-based VNC client evolving from an earlier JavaScript Telnet emulator called "RealMint," Guacamole has matured into a robust solution for centralized remote access, allowing administrators to manage permissions on a per-user basis and integrate with systems like LDAP or databases. Its architecture consists of a frontend , a backend daemon (guacd) that handles connections, and extensible client-side , enabling features such as clipboard integration, file transfer, and multi-monitor support across diverse devices. The project provides official images and native installation options, with the latest stable release, version 1.6.0, introducing enhancements in rendering performance, compatibility, and support for newer libraries as of June 2025.

Introduction

Definition and Purpose

Apache Guacamole is an open-source web application that serves as a clientless remote gateway, enabling to remote desktops, servers, and applications through standard protocols such as VNC, RDP, and SSH. This gateway translates remote desktop protocols into the Guacamole protocol, a custom protocol designed for browser-based rendering using HTML5 technologies like Canvas and WebSockets, without requiring any dedicated client software on the user's device. The core purpose of Apache Guacamole is to provide secure and centralized remote access to computing resources from any , facilitating administration, support, and usage scenarios across diverse devices and networks. By acting as an intermediary, it allows organizations to manage connections uniformly, enforce policies, and support cloud-hosted or on-premises systems, thereby simplifying remote work and reducing deployment complexities associated with traditional clients. Guacamole originated in 2010 when Michael Jumper developed it as an HTML5-based VNC client, building on elements from an earlier client named RealMint, and it has since evolved into a versatile, protocol-agnostic tool. The project is licensed under the 2.0 and is actively maintained by as a top-level project.

Key Advantages

Apache Guacamole provides clientless remote access through its HTML5-based web interface, requiring no plugins or dedicated client software, which allows users to connect to remote desktops from any modern on diverse devices such as desktops, laptops, tablets, and smartphones. This approach eliminates the need for installing and maintaining separate applications, simplifying deployment and enhancing accessibility for users in varied environments, including mobile workforces. As a centralized remote desktop gateway, Guacamole enables administrators to manage and provide to multiple remote systems from a single web-based , supporting configurations for , group , and cloud-hosted to facilitate scalable group and IT administration workflows. This centralization streamlines oversight of heterogeneous environments, allowing secure to various hosts without scattering management across multiple tools. It supports standard protocols like VNC, RDP, and SSH for broad compatibility. Guacamole offers a cost-effective alternative to proprietary remote access solutions such as Citrix or traditional hosts, as it is distributed under the 2.0 as , thereby avoiding licensing fees and while leveraging community-driven development for ongoing improvements. Organizations can deploy it on standard servers without substantial upfront investments, making it particularly advantageous for budget-conscious enterprises seeking robust remote access capabilities. The server's hosting model contributes to Guacamole's , enabling reliable worldwide access to remote resources without dependencies on VPN , as connections are proxied through the gateway over standard web protocols. This setup enhances availability in distributed teams or global operations by reducing single points of failure associated with VPN clients and supporting seamless in cloud environments. Guacamole's integration potential is supported by well-documented RESTful and libraries, allowing developers to embed its functionality into custom applications, automate management, and integrate with existing authentication systems like LDAP or providers. These facilitate tailored solutions, such as embedding remote access within enterprise portals or scripting dynamic provisioning of sessions.

Architecture

Core Components

Apache Guacamole's architecture revolves around several key components that enable clientless remote desktop access through a web browser. The web application serves as the server-side entry point, implemented in Java and typically deployed within a servlet container like Apache Tomcat. It manages user authentication, session handling, and the graphical user interface for connecting to remote desktops, while forwarding user inputs and display data without directly implementing any remote desktop protocols. Central to the system is guacd, a standalone daemon that functions as a protocol proxy. Written in C, guacd listens for incoming connections over and dynamically loads client plugins to translate the Guacamole protocol into native remote desktop protocols, such as VNC or RDP, thereby establishing connections to target machines. It handles the core proxying logic, including data streaming and , ensuring secure and efficient communication between the web application and remote systems. On the client side, the client is a embedded in the and rendered directly in the user's browser. It processes display rendering, captures input events like keyboard and mouse actions, and communicates with the server using HTTP or tunnels to transport the instructions. This browser-based approach eliminates the need for native plugins or additional software installations. Underpinning these components is libguac, a shared library that provides essential utilities for support, including encoding, decoding, and interfaces. Libguac is linked into both guacd and the client , enabling consistent handling of the Guacamole across the stack and facilitating extensibility through modular . The overall interaction flow begins with the browser's client connecting to the , which authenticates and proxies requests to guacd; guacd then leverages libguac and to reach and interact with remote desktops, streaming the session back through the chain.

Guacamole Protocol

The Guacamole protocol is a custom, instruction-based remote display and input event protocol developed for Apache Guacamole, enabling clientless remote desktop access through text-based commands transmitted over HTTP or for seamless cross-browser compatibility. This design prioritizes streamability, using comma-delimited opcodes and arguments (e.g., 4.size,1.0,4.1024,3.768;) that are easily parsed by in web browsers, allowing real-time rendering of remote sessions without requiring full message buffering. The protocol's structure supports a layered display model, where graphical elements are composited and updated incrementally to mimic native desktop interactions. Key elements of the include mechanisms for streaming graphical content, such as images in formats like , , or via the img instruction, which allocates a stream for data blobs positioned on specific layers (e.g., img.1.image/png.0.10.20), and clipboard synchronization using the clipboard instruction for text or transfer (e.g., clipboard.1.text/plain). Input handling covers events through the mouse instruction, which reports position and button states (e.g., mouse.100.200.1), and keyboard events via the key instruction, employing X11 keysyms for press/release actions (e.g., key.65.1). Additionally, the protocol integrates support for an XML-driven on-screen , where layouts defined in XML files (using tags like <row>, <key>, and <cap> for modifiers) generate compatible key events, facilitating touch or accessibility-based input without relying on physical hardware. The translation process occurs within the guacd daemon, which acts as a : it receives and interprets incoming Guacamole instructions from the client during the (e.g., selecting a via select.vnc), then employs dynamically loaded plugins to convert these to native commands for backends like RDP or VNC, and vice versa for outbound display data. This intermediary role ensures protocol agnosticism, allowing to abstract diverse remote desktop standards behind a unified interface, while enhancing security by proxying connections and preventing direct client-to-server exposure. However, the protocol lacks built-in , depending entirely on the underlying —such as for connections—to protect data in transit.

Features and Protocols

Supported Protocols

Apache Guacamole supports a range of remote access protocols through its extensible plugin system, enabling clientless connections to diverse systems without requiring native clients on the user side. The core protocols include VNC for graphical access to desktops, RDP for Windows remote desktops, and SSH or for terminal-based interactions. These are implemented via dynamic libraries loaded by the guacd at runtime, such as libguac-vnc for VNC support and libguac-rdp for RDP, allowing modular addition of protocol handling without recompiling the server. VNC provides remote desktop access with features like display scaling, color depth adjustment (up to 32-bit), and bidirectional clipboard synchronization, though performance depends on the VNC server implementation, with recommendations for servers like . RDP offers enhanced capabilities including clipboard syncing, drive redirection for file transfer, audio forwarding, and secure connection modes like Network Level Authentication (NLA) and TLS, making it suitable for Windows environments but requiring compatible server configurations for advanced features. For terminal access, SSH enables sessions with public key authentication, integration for file transfers, and tunneling to proxy other connections securely, while Telnet provides similar unencrypted terminal emulation but lacks inherent security. Extended protocol support includes for accessing container pods via the API, offering terminal emulation within pods for containerized environments. SFTP file transfer is natively integrated, allowing independent upload and download operations alongside protocols like SSH or RDP, with configurations for separate host and credential handling. Additionally, TOTP integration provides two-factor authentication layered atop other mechanisms, enhancing security for protocol connections without altering the core access methods. Guacamole's plugin architecture, centered on guacd, facilitates this support by dynamically loading protocol-specific libraries, but it does not natively handle proprietary protocols like Citrix ICA or without custom plugin development. This design prioritizes open standards while allowing extensibility for specialized needs.

Advanced Capabilities

Apache Guacamole offers session recording and playback capabilities, allowing administrators to capture and review remote desktop interactions directly within the browser. In-browser playback of session recordings was introduced in version 1.5.0, allowing review of recorded VNC, RDP, and SSH sessions as Guacamole protocol dumps stored on disk via an HTML5-based player accessible through the web interface's history table. The in-browser player enables real-time review without re-encoding to video formats, including searchable key event logs and heatmaps of screen activity when session logging is enabled. An extension, such as guacamole-history-recording-storage, must be installed to link recordings to connection history entries, with storage typically in a dedicated directory like /var/lib/guacamole/recordings requiring appropriate permissions for the guacd daemon and web application. Multi-connection management enhances usability for scenarios involving multiple remote sessions. Users can tile several connections in a single view, arranging them in equal-sized panels where focus is visually indicated by a border and title bar. Broadcasting events across connections is supported by holding the Ctrl key for individual selections or Shift for rectangular groups, allowing synchronized input like commands across multiple systems even with differing layouts. Built-in file transfer functionality simplifies data exchange without additional software. For RDP connections, uploads and downloads occur via drive redirection, presenting a virtual drive with a dedicated "Download" folder on the remote system. VNC supports drag-and-drop or browser-based transfers using native protocol extensions, while SSH enables over the connection, facilitated by the guacctl utility for command-line operations such as downloading files with guacctl -d FILENAME. Accessibility features cater to diverse user needs, including touch and high-resolution environments. An on-screen , accessible via the Guacamole menu, transmits keys directly to the remote desktop, bypassing local shortcuts for secure actions like Ctrl+Alt+Del. Display scaling adjusts automatically to the browser window, with manual zoom controls in 10% increments or pinch gestures on touch devices; high-DPI screens benefit from relative or absolute mouse emulation and panning support. Performance optimizations in version 1.6.0 focus on efficient rendering and secure transport. The server-side protocol optimizer in guacd was rewritten to use worker threads, pipelining, and the Rabin-Karp algorithm for detecting screen changes, reducing bandwidth usage and improving responsiveness during scrolling or movement without relying on GPU acceleration. SSH connections now support for certificates, enhancing security and performance in key exchanges. API extensions enable programmatic integration for advanced automation. 's extension framework, particularly through the guacamole-ext , allows authentication providers to expose RESTful resources for managing connections and users, such as creating, querying, or updating entities via HTTP endpoints annotated with JSR-311 standards. This supports embedding in larger systems for dynamic control, like integrating with external directories or orchestration tools.

History and Development

Origins

Apache Guacamole originated in 2010 as a personal project developed by Mike Jumper, aimed at providing web-based remote desktop access to his home computer from his workplace, where a strict firewall blocked all non-HTTP/HTTPS traffic. The initial implementation focused on creating an HTML5-based VNC client that leveraged the browser's canvas element to render remote desktops without requiring Java applets, Flash plugins, or any other client-side software, thereby addressing the limitations of traditional remote access methods that relied on proprietary or insecure browser extensions. This early development was motivated by the need for truly clientless remote access in restricted network environments, such as corporate firewalls, where users required seamless connectivity to graphical desktops without installing additional software or compromising security policies. Jumper's project quickly evolved from a simple VNC viewer into a more versatile gateway, incorporating support for additional protocols like RDP and SSH to enable broader remote desktop functionality directly through a standard web browser. Guacamole entered the Apache Incubator on February 8, 2016, following its formal proposal and acceptance process, marking the transition to an open-source community-driven effort under . The first release under incubation, version 0.9.10-incubating, was issued on December 29, 2016, introducing improvements in protocol handling and community contributions. The project graduated from incubation to become a top-level Apache project on November 15, 2017, at which point it was officially renamed Apache Guacamole to reflect its status within the foundation.

Version Timeline

Apache Guacamole's version timeline reflects its evolution from an incubating project to a mature top-level project, with major releases introducing enhanced protocol support, security mechanisms, and deployment flexibility. The 0.9 series marked the final pre-stable phase, culminating in version 0.9.14 released on January 18, 2018, which added OpenID Connect for , SQL Server backend support, and improvements to RDP clipboard and SSH/ functionality, solidifying multi-protocol capabilities beyond its initial VNC focus. The transition to the 1.x series began with version 1.0.0 on January 8, 2019, the first stable release as an top-level project, featuring user groups, TOTP , support, and enhanced clipboard integration via the Asynchronous Clipboard API. Subsequent releases built on this foundation, with 1.4.0 on January 1, 2022, introducing connection tiling for multi-connection layouts, encrypted and signed authentication tokens, RDP support, and configurable multiple SSO providers. Version 1.5.0, released February 18, 2023, advanced session management with in-browser playback of recordings and key vault integration for secure secret retrieval, alongside SSH key support and multi-LDAP server authentication. The most recent major release, 1.6.0 on June 22, 2025, emphasized with a rewritten rendering optimizer using worker threads and Rabin-Karp algorithms for reduced bandwidth, alongside enhancements for support and mapping, plus batch connection imports and configurable username case sensitivity.
VersionRelease DateKey Updates
0.9.142018-01-18OpenID Connect SSO, SQL support, RDP/SSH enhancements
1.0.02019-01-08TOTP/ auth, user groups, clipboard integration
1.4.02022-01-01Connection tiling, auth tokens, RDP multi-touch
1.5.02023-02-18In-browser playback, key vault integration, SSH keys
1.6.02025-06-22Rendering performance rewrite, support, batch imports
Milestone trends show a progression from VNC-centric functionality to a comprehensive gateway supporting RDP, SSH, and , with increasing emphasis on through features like TOTP in 1.0.0 and encrypted tokens in 1.4.0. Ongoing developments prioritize browser compatibility, such as Asynchronous Clipboard adoption, and extensibility via the extension , which saw updates in 0.9.14 for event listeners. Release cadence has been roughly annual for major versions since 1.0.0, supplemented by minor patches addressing vulnerabilities, such as those in 1.5.2 for flaws. Community contributions have grown significantly since the 2016 incubation period, with increased plugin development and utilization evident in extensions for auth and key vaults introduced in later releases.

Deployment and Usage

Installation Process

Apache Guacamole primarily deploys on Unix-based servers, such as distributions including , , , , and RHEL. It requires 8 or later for the , a servlet container like 7.0.37 to 9.x with support (Tomcat 10+ not yet compatible), and the guacd daemon for handling remote desktop protocols. Building guacamole-server necessitates core dependencies like , libjpeg-turbo, libpng, and libuuid, while protocol support involves additional libraries such as FreeRDP (version 2.0.0 or later) for RDP and libvncserver for VNC. Native deployment begins with installing the servlet container, such as , followed by obtaining guacamole-server. Users can download the source tarball from the Apache Guacamole website and build it by running ./configure (optionally with flags like --with-freerdp for RDP support), make, and make install. The guacd daemon is then installed as a system service, using options like --with-systemd-dir during configuration for integration, and started via systemctl enable --now guacd. For the web application, download the pre-built guacamole.war file or build guacamole-client using with mvn package, then deploy the WAR to the servlet container's webapps directory, such as /var/lib/tomcat/webapps/ in . An initial guacamole.properties file must be placed in the GUACAMOLE_HOME directory to specify essential backends, like database connections for storage. Guacamole offers official Docker images for guacamole/guacamole (running on Tomcat 9 with WebSocket support) and guacamole/guacd (including protocol dependencies like FreeRDP plugins), introduced with version 0.9.7, with significant enhancements in versions 1.4.0 and especially 1.6.0 (June 2025) for improved compatibility and performance in streamlined containerized setups. These images eliminate the need to build from source or manually handle dependencies, supporting multi-container deployments for scalability—typically involving the guacd container, the Guacamole web app container, and a database container like or . Deployment uses docker run commands or docker-compose files to link containers, with environment variables for auto-configuration. After installation, verification involves starting all services—guacd and the servlet container—and accessing the Guacamole interface via a web browser at the server's URL (e.g., http://localhost:8080/guacamole). Initial testing uses the default user-mapping.xml authentication to create and connect to a sample remote desktop session, confirming functionality. The client side is browser-agnostic, relying solely on HTML5 capabilities without plugins.

Configuration Basics

Apache Guacamole's configuration is managed primarily through the GUACAMOLE_HOME directory, which defaults to /etc/guacamole on Unix-like systems and serves as the central location for configuration files. The core file, guacamole.properties, controls server-level settings, including the connection to the guacd daemon via properties like guacd-hostname (default: localhost) and guacd-port (default: 4822), as well as the guacd-secret for enabling encrypted communication between the web application and guacd. For basic authentication without a database, the user-mapping.xml file within this directory maps usernames and passwords to specific connections, providing a simple XML-based structure for user access control. Connections in Guacamole are defined by protocol-specific parameters that specify remote endpoints and session behaviors. For VNC connections, essential parameters include hostname, port (typically 5900 or higher), and password, while optional settings allow color depth adjustments. RDP connections require hostname, port (default: 3389), username, and password, with additional options such as security (e.g., nla for Network Level Authentication or tls for Transport Layer Security) and display settings like width and height to set resolution. SSH connections use hostname, port (default: 22), username, and password, supporting terminal emulation and font configurations for text-based sessions. These parameters can be set in user-mapping.xml for XML backends or through administrative interfaces for database backends. Guacamole supports flexible backend storage options for users and , starting with the default XML-based approach using user-mapping.xml for small-scale deployments. For larger environments requiring scalability, relational databases like or can be integrated via the JDBC extension, where database credentials and details are specified in guacamole.properties (e.g., mysql-hostname, mysql-database). This shift enables centralized management of and user permissions beyond static files. Logging and debugging are configurable to aid , with the using Logback via the guacamole.log.level property in guacamole.properties (levels: error, warn, , debug, trace; default: ), and output directed to console or a custom logback.xml file in GUACAMOLE_HOME. For the guacd daemon, logging verbosity is set via the -L command-line (e.g., -L debug) when starting the service, with messages routed to (typically /var/log/syslog or /var/log/messages) or the console if running in foreground mode. In containerized or scripted deployments like , configuration properties can be overridden using environment variables, where property names are transformed to uppercase with dashes replaced by underscores (e.g., GUACD_HOSTNAME for guacd-hostname, or LOG_LEVEL for guacd log level). This approach simplifies dynamic setups without modifying files directly.

Security and Extensions

Authentication Mechanisms

Apache Guacamole provides several mechanisms to verify identities and manage to remote , ranging from simple file-based configurations to advanced integrations with external systems. The default method relies on a static XML file for , which defines usernames, passwords, and associated parameters in a straightforward structure. This approach, configured via the user-mapping.xml file in the Guacamole home directory, supports basic setups but is limited to static credentials and lacks scalability for large deployments. For production environments, database-backed is recommended, utilizing extensions for databases such as , , , or SQL Server to store , groups, and dynamically. These extensions provide a predefined for managing accounts, group memberships, and permissions, enabling features like a web-based administrative interface for oversight. Extension-based authentication enhances Guacamole's capabilities by integrating with enterprise directories and security providers. LDAP authentication, including support for , allows users to authenticate using existing directory credentials, with connections optionally stored in the LDAP directory or a subordinate database for hybrid setups. For two-factor authentication, the Duo extension layers push-based or phone call verification on top of primary authentication methods, requiring a Duo account and integration key configuration. Similarly, enables (SSO) by delegating authentication to an , using implicit flow to retrieve user claims like username and groups, which must be paired with a storage backend such as the database extension. Since version 1.4.0, supports encrypted, time-limited tokens through the authentication extension, allowing external services to generate shareable access tokens without requiring full user logins. These tokens, signed with /SHA-256 and containing expiration timestamps, authorize specific users to predefined resources, facilitating temporary or automated access scenarios. Authorization in employs (RBAC), particularly with database authentication, where users and groups are assigned permissions to connections, including read-only access modes that prevent input while allowing viewing, and IP-based restrictions to limit access from authorized hosts. Best practices for securing authentication emphasize enforcing for all communications to protect credentials in transit, typically achieved via a like or handling SSL/TLS termination. Administrators should disable weak ciphers and protocols in the to mitigate vulnerabilities, ensuring only strong standards such as TLS 1.2 or higher are permitted. Version 1.6.0 (June 2025) introduced the auth-ban extension for brute-force protection that temporarily bans IPs after repeated failed attempts, and migrated Duo integration to version 4 of the SDK for improved . Additionally, auditing attempts is crucial; tools like fail2ban can further enhance monitoring at the level.

Extensions and Integrations

Apache Guacamole's extensibility is facilitated through a modular architecture that allows developers to add custom functionality without modifying the core codebase. Server-side extensions are implemented as standard JAR files, which include all necessary classes, libraries, and resources, along with a guac-manifest.json file that declares the extension's , such as its name, , and compatibility with specific Guacamole versions. These extensions are installed by placing the JAR file in the GUACAMOLE_HOME/extensions directory and restarting the Guacamole server, after which they load automatically to provide features like custom providers or . Server extensions primarily enhance authentication and backend behaviors; for instance, the LDAP authentication extension integrates Guacamole with LDAP directories for user authentication, enabling centralized . Similarly, the recording uploader extension handles the upload and management of session recordings generated during remote sessions. Other notable extensions include support for (TOTP) two-factor authentication, which layers additional verification on top of primary authentication methods using user-specific secret keys, available as the guacamole-auth-totp . Additionally, since version 1.5.0, Guacamole supports retrieving secrets such as connection passwords from external key vaults, automatically injecting them into configurations for enhanced in . Client-side plugins extend the guacd daemon by leveraging the libguac library, a C-based that allows the addition of support for new protocols or custom input/output handling. These plugins compile into shared libraries loaded dynamically by guacd, enabling to proxy connections for protocols beyond its native VNC, RDP, and SSH implementations. For example, developers can build plugins to integrate specialized remote methods tailored to specific environments. Integrations with larger systems are achieved via Guacamole's , which facilitate embedding the client into applications or automating in enterprise workflows. The RESTful allows programmatic management of connections, users, and sessions, making it suitable for deployments where Guacamole serves as a secure gateway. In pipelines, the enables scripted connection provisioning, while cloud platforms like AWS leverage Guacamole for browser-based to virtual instances, often through pre-configured bastion images that integrate with identity providers. The JavaScript-based guacamole-common-js provides abstractions for , , and handling, allowing seamless embedding of the Guacamole client within custom UIs. Building custom extensions involves implementing interfaces from the guacamole-ext framework, such as AuthenticationProvider for custom login modules or Filter for event interception, with comprehensive documentation and examples provided in the official developer's guide. Extensions must specify their Guacamole version compatibility in the manifest to ensure proper loading, and client-side modifications can include JavaScript, CSS, or HTML resources for UI theming or additional features. This API-driven approach supports contributions from the community, with official extensions serving as reference implementations for advanced integrations.

References

  1. [1]
    Apache Guacamole®
    Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.Guacamole Manual · Release documentation · Release Archives · 1.6.0
  2. [2]
    Introduction — Apache Guacamole Manual v1.6.0
    This book is the official Apache Guacamole manual, written by the upstream developers of the Guacamole project. It is also the official general documentation.
  3. [3]
    Implementation and architecture — Apache Guacamole Manual v1.6.0
    Guacamole uses a web app, a client, and guacd, a proxy that connects to remote servers. The web app is simple, and guacd is the heart of the system.
  4. [4]
    Apache Guacamole®: 1.6.0
    The 1.6.0 release features improved rendering performance, improved Docker support, configurable case sensitivity, and support for newer upstream library ...
  5. [5]
    Apache Guacamole and Remote Desktop with Mike Jumper - Software Engineering Daily
    ### Summary of Apache Guacamole History, Creator, and Year
  6. [6]
    None
    ### Summary of Advantages and Disadvantages of Apache Guacamole (Extracted from IJCTT Volume 72 Issue 11)
  7. [7]
    API Documentation - Apache Guacamole®
    Guacamole provides several APIs for extending and embedding Guacamole in existing infrastructures and applications.Missing: definition | Show results with:definition
  8. [8]
    guacamole-common-js — Apache Guacamole Manual v1.6.0
    Guacamole uses the touchpad emulation, as this provides the most flexibility and mouse-like features, including scrollwheel and clicking with different buttons, ...
  9. [9]
    The Guacamole protocol — Apache Guacamole Manual v1.6.0
    The Guacamole protocol consists of instructions. Each instruction is a comma-delimited list followed by a terminating semicolon.Handshake Phase · Drawing · Compositing
  10. [10]
    Guacamole protocol reference
    This is used to negotiate protocol compatibility between the client and the server, with the highest supported protocol by both sides being chosen. Versions of ...Guacamole Protocol Reference · Drawing Instructions · Streaming Instructions
  11. [11]
    Adding new protocols — Apache Guacamole Manual v1.6.0
    Guacamole's support for multiple remote desktop protocols is provided through plugins which guacd loads dynamically. The Guacamole API has been designed such ...Adding New Protocols · Minimal Skeleton Client · Adding The Ball
  12. [12]
  13. [13]
  14. [14]
  15. [15]
  16. [16]
  17. [17]
    Using TOTP for multi-factor authentication - Apache Guacamole®
    Guacamole supports TOTP as a second authentication factor, layered on top of any other authentication extension, including those available from the main project ...
  18. [18]
    Apache Guacamole®: 1.5.0
    Apache Guacamole 1.5.0 is an archived release, and was originally released ... history entry in the “History” screen of the administration interface:.
  19. [19]
    Viewing session recordings in-browser - Apache Guacamole®
    Guacamole recordings are viewed in-browser via a 'View' link in the history table, which loads a player to play back the recording.
  20. [20]
    Viewing session recordings in-browser - Apache Guacamole®
    Download guacamole-history-recording-storage-1.6.0.tar.gz from the release page for Apache Guacamole 1.6.0 and extract it. Create the GUACAMOLE_HOME ...
  21. [21]
    Guacamole's user interface — Apache Guacamole Manual v1.6.0
    Guacamole provides access to much of the functionality of a desktop from within your web browser. Although most people use remote desktop tools only when ...
  22. [22]
    AuthenticationProvider (guacamole-ext 1.6.0 API)
    Returns an arbitrary REST resource representing this AuthenticationProvider. The REST resource returned must be properly annotated with JSR-311 annotations, ...Missing: documentation | Show results with:documentation
  23. [23]
    GuacamoleProposal - Apache Software Foundation
    Abstract. Guacamole is an enterprise-grade, protocol-agnostic, remote desktop gateway. Combined with cloud hosting, Guacamole provides an excellent alternative ...
  24. [24]
    Incubator PMC report for November 2016
    Nov 2, 2016 · Guacamole has been incubating since 2016-02-10. Three most important issues to address in the move towards graduation: 1. **Making the first ...
  25. [25]
    Guacamole Project Incubation Status
    2017-07-30 Apache Guacamole 0.9.13-incubating released. 2017-10-19 New committer: Carl Harris. 2017-11-15 Project graduated to TLP.
  26. [26]
    Apache Guacamole®: 0.9.14
    Apache Guacamole 0.9. 14 is an archived release, and was originally released on 2018-01-18. The latest release of Apache Guacamole is 1.6. 0.
  27. [27]
    Apache Guacamole®: 1.0.0
    Apache Guacamole 1.0.0 is an archived release, and was originally released on 2019-01-08. The latest release of Apache Guacamole is 1.6.0.
  28. [28]
    Apache Guacamole®: 1.4.0
    Apache Guacamole 1.4.0 is an archived release, and was originally released on 2022-01-01. The latest release of Apache Guacamole is 1.6.0.
  29. [29]
    Apache Guacamole®: 1.5.2
    Apache Guacamole 1.5.2 (Archived). Apache Guacamole 1.5.2 is an archived release, and was originally released on 2023-05-25. The latest release of Apache ...<|control11|><|separator|>
  30. [30]
  31. [31]
    Installing Guacamole — Apache Guacamole Manual v1.6.0
    Guacamole can be installed natively with a servlet container and building from source, or using Docker containers with provided images.
  32. [32]
    Installing Guacamole with Docker
    The Guacamole project provides officially-supported Docker images for both Guacamole and guacd which are kept up-to-date with each release. A typical Docker ...
  33. [33]
    Apache Guacamole®: 0.9.7
    Version 0.9.7 marks the first release with official support for Docker. Experimental support for Docker and Guacamole 0.9.6 was made available prior to the 0.9.
  34. [34]
    Configuring Guacamole — Apache Guacamole Manual v1.6.0
    Apache Guacamole Manual v1.6.0. Search Ctrl + K. Getting Started. Introduction · Implementation and architecture · Installing Guacamole · Native installation ...
  35. [35]
  36. [36]
  37. [37]
  38. [38]
  39. [39]
    Database authentication — Apache Guacamole Manual v1.6.0
    Database authentication#. Guacamole supports providing authentication and storage leveraging any of the following databases: MariaDB or MySQL.
  40. [40]
    LDAP authentication — Apache Guacamole Manual v1.6.0
    Guacamole supports LDAP authentication via an extension available from the main project website. This extension allows users and connections to be stored ...
  41. [41]
    Using Duo for multi-factor authentication - Apache Guacamole®
    If you use Duo and need both MFA and SSO support for Guacamole, you will need to either use your SSO provider's own Duo integration or use TOTP instead of Duo.
  42. [42]
    Using OpenID Connect for single sign-on - Apache Guacamole®
    Native installations of Guacamole under Apache Tomcat or similar are configured by modifying the contents of GUACAMOLE_HOME (Guacamole's configuration directory) ...<|control11|><|separator|>
  43. [43]
    Securing a Guacamole install — Apache Guacamole Manual v1.6.0
    ### Best Practices for Authentication Security in Guacamole
  44. [44]
    guacamole-ext — Apache Guacamole Manual v1.6.0
    guacamole-ext is an API exposed by the Guacamole web application within a separate project such that extensions, specifically authentication providers, can be ...
  45. [45]
    Retrieving secrets from a vault — Apache Guacamole Manual v1.5.0
    Guacamole supports reading secrets such as connection-specific passwords from a key vault, automatically injecting those secrets into connection configurations.
  46. [46]
    SSH agent forwarding support - Apache Guacamole - SourceForge
    Jun 10, 2015 · The agent forwarding support causes Guacamole to act as an SSH agent, authenticating on behalf of outbound SSH connections.
  47. [47]
    Guacamole Bastion Host - Amazon AWS
    Upgraded Apache Guacamole to version 1.0.0. Release notes can be found at https://guacamole.apache.org/releases/1.0.0/. Highlights are support for user ...<|separator|>