Introduction

Guacozy is a HTML5 browser based VNC/RDP/SSH remote connection manager based on Apache Guacamole™ technology

Code on GitHub
Docker images on DockerHub


Video demo

Guacozy video demo

Screenshot

alt text


Guacozy architecture

alt text


Why was it created

I manage several hundreds of connections (servers, virtual machines, network equipment) which are both company infrastructure, dev/qa servers and customers installations.

Often I need possibility to quickly jump in and do some quick job/fix/diagnostics.

For years I was using a great application called Royal TS, but wished more collaboration features and web interface.

I liked the idea/technology of Apache Guacamole™, but was not pleased with it's aesthetics (mostly connection grouping/selection/management)

So I decided to build a tool for internal use base on the Apache Guacamole™ technology, but using Django for administration part and React for frontend.


Use cases

This application was designed thanking about those use cases:

Case #1: Daily sysadmin remote access to servers

Have tens/hundreds of connections in a tree view, quickly find, connect, to some work, logout.
Have log of connections.

Case #2: Give programmers access to servers

Have many dev/prod/support environments and give access to employees to certain environments based on project/group/seniority.
Give employee access to connection without sharing credentials to server/equipment. Limit visibility of available connections while still rendering connection tree.
Have log of connections.

Case #3: Access for contractors/customers

Allow contractor or customer to connect without using VPN, NAT.
For example demo a product in a controlled environment.
Have log of connections.

Case #4: Collaborative access

Connect to server and give another person time limited access to you connection at any moment during connection.
Specify if another person should have ability to send input (keyboard/mouse) or is just a viewer.
Revoke access at any moment.


Apache Guacamole™ technology

All the heavy lifting (making connections to VNC/RDP/SSH servers, encoding data and rendering it in frontend) is done by original Apache Guacamole™ technology

Apache Guacamole™ components used:
  • frontend Guacamole protocol implementation (websocket, rendering, keyboard/mouse) - guacamole-common-js
  • server-side proxy - guacd