Guacamole on Debian Buster

Apache Guacamole is a HTML5 web application that allows remote access to servers through a browser. It has components to serve SSH or VNC through a web page, useable as an SSL VPN.

The version (0.9.9) packaged with Debian Buster (and hence Raspbian for a Raspberry Pi 4) is years old and incomplete, making installation from apt / repositories troublesome.

There are PPA’s available for Ubuntu, which would be the recommended method of installing on Ubuntu. But below is an outline of installation from source code, which will enable you to install the latest version in Debian Buster. On a Rapberry Pi 4 the compilation of the server (required) for ARMHF only takes a couple of minutes, after working around the source code issues.
*Note: The RDP component currently available in Debian Buster is not compatible with Guacamole 1.0.0, so will not be available following these instructions.

  1. Download guacamole-server and client tar’s from: https://guacamole.apache.org/releases/
  2. Uncompress
  3. Comment out line 79 in src/guacenc/guacenc.c:
    /** avcodec_register_all() **/
    – the version of avcodec in Debian Buster produces an error, we need to compile without it.
  4. Comment out line 25 in src/guacenc/guacenc.h:
    /** #include <guacamole/client.h> **/
    – this line produces an error because there is no guacamole/client.h
  5. Install dependencies:
    sudo apt install tomcat8 libcairo2-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev libjpeg62-turbo-dev libpng-dev libpng16-16
  6. ./configure –with-init-dir=/etc/init.d
  7. make
  8. sudo make install
  9. Copy the client to /var/lib/tomcat8/webapps/
  10. Configure users and connection apps in
    /etc/guacamole/user-mapping.xml
  11. /etc/init.d/guacd start
  12. service tomcat restart