GuacamoleProposal

Abstract

Guacamole is an enterprise-grade, protocol-agnostic, remote desktop gateway. Combined with cloud hosting, Guacamole provides an excellent alternative to traditional desktops. Guacamole aims to make cloud-hosted desktop access preferable to traditional, local access.

Background

Guacamole began in 2010 as a personal project - a means for Mike Jumper to access to his own computer from work. Mike’s job at that time had a firewall which blocked outbound access to everything except HTTP and HTTPS, and directly circumventing the firewall (by changing the SSH server port, for example) was a fireable offense. Mike needed a solution which provided remote access and yet was a true web application. He found several projects providing text-based terminal access, but decided that he wanted to make something new and different.

The project began as a simple VNC client but grew rapidly in capability and performance until it became an enterprise-grade, protocol-agnostic, remote desktop gateway supporting both VNC and RDP. Support for SSH was added later, followed by audio, file transfer, etc. By this point, Guacamole was fast and stable enough to be used daily and in place of a traditional desktop.

Having used and developed Guacamole to its current state, and having observed the general shift of the industry toward cloud computing and related technologies, we now see Guacamole as the primary and only viable open source solution for a future of cloud-hosted desktops.

Guacamole's purpose is twofold:

  • To provide seamless and performant access to desktops over the web.
  • To provide an API which allows others, including commercial entities, to integrate Guacamole's core into their own applications.

We believe that the lifestyle enabled by Guacamole should be preferable to traditional, physically-anchored desktops, that the software enabling this should be 100% free in every sense of the word, and that users should not be limited by their current location, by the software installed on whatever computer they are using at the moment, nor by how powerful/weak the hardware of that computer happens to be.

Guacamole is stable and production-ready. It is in active production use by several companies, including ESI, Glyptodon, HP, Nanocloud Software, as well as individuals.

Rationale

Due to the utility and popularity of cloud platforms, a logical extension to traditional application hosting is to host complete desktops. The Guacamole project is aimed at achieving this, and we believe that the best way to fulfill the true potential of this project is to bring its development within Apache and, by so doing, foster a larger community and higher visibility. The resulting continuous improvements to its design and implementation will make Guacamole the best tool for the job for a wide variety of use cases.

Initial Goals

Our initial goals are to bring Guacamole into the ASF, transition internal engineering processes into the open, and foster a collaborative development model according to the "Apache Way."

Current Status

Guacamole is production-ready and already provides a large set of features. It is currently licensed under the MIT license, but will be relicensed under the Apache license if accepted for incubation.

The source repositories are:

Meritocracy

We intend to radically expand the initial developer and user community by running the project in accordance with the "Apache Way". Users and new contributors will be treated with respect and welcomed. By participating in the community and providing quality patches/support that move the project forward, they will earn merit. The community will also be encouraged to provide non-code contributions (documentation, events, community management, etc.) and will gain merit for doing so. Those with a proven support and quality track record will be encouraged to become committers.

Community

If Guacamole is accepted for incubation, its primary initial goal will be to build a large community of users and developers. We trust that Guacamole will become a key project for cloud platforms, and thus expect its community to grow as word of the project continues to spread.

Known Risks

Development has been sponsored mostly by one company. For the project to fully transition to the Apache Way governance model, development must shift towards the meritocracy-centric model of growing a balanced community of contributors.

Orphaned products

Glyptodon, Nanocloud Software, and other companies are fully committed to Guacamole and have a vested interest in making Guacamole succeed by driving its close integration with sister ASF projects. Commercial reliance on Guacamole by third-party companies, as well as widespread public interest in cloud-based access as a whole, reduces the risk of the product being orphaned.

Inexperience with Open Source

Glyptodon has been developing and using open source software since its inception in 2013. Additionally, several ASF veterans agreed to mentor the project and are listed in this proposal. The Guacamole project will rely on their guidance and collective wisdom to quickly transition the entire team of initial committers towards practicing the Apache Way.

Reliance on Salaried Developers

Most of the contributors are paid to work in cloud space. While they might wander from their current employers, they are unlikely to venture far from their core expertises and thus will continue to be engaged with the project regardless of their current employers.

An Excessive Fascination with the Apache Brand

Our primary interest in bringing Guacamole to Apache is to foster growth within the project and its community of developers and users. We have no plans to make use of the Apache brand in press releases, nor to advertise acceptance of Guacamole into Apache Incubator.

Required Resources

Mailing Lists

  • private@guacamole.incubator.apache.org (moderated subscriptions)
  • commits@guacamole.incubator.apache.org
  • dev@guacamole.incubator.apache.org
  • issues@guacamole.incubator.apache.org

Git Repository

Issue Tracking

  • JIRA Project Guacamole (GUAC)

Other Resources

  • Means of setting up regular builds for Guacamole on builds.apache.org

Initial Committers

  • Mike Jumper
  • James Muehlner

Additional Interested Contributors

  • Jim Jagielski
  • Greg Trasuk

Affiliations

  • Glyptodon : Mike Jumper, James Muehlner

Champion

  • Jean-Baptiste Onofré (jbonofre@apache.org) - Apache Member

Mentors

  • Jean-Baptiste Onofré (jbonofre@apache.org) - Apache Member
  • Daniel Gruno (humbedooh@apache.org) - Apache Member
  • Olivier Lamy (olamy@apache.org) - Apache Member
  • Jim Jagielski (jim@apache.org) - Apache Member
  • Greg Trasuk (gtrasuk@apache.org) - Apache Member

Sponsoring Entity

We would like to propose Apache incubator to sponsor this project.

  • No labels