Skip to main content

Introduction

The self-hosted Guacamole Docker app runs Apache Guacamole in containers using Docker.

Guacamole is a clientless remote desktop gateway – meaning you can access desktops and servers through a web browser without needing special client software. It supports common protocols like:

  • RDP (Remote Desktop Protocol, Windows)

  • VNC (Virtual Network Computing, Linux/Unix GUI)

  • SSH (command line access)

Instead of installing separate clients, you log into Guacamole via a web UI, and it acts as the bridge.

How the Docker setup works

The Guacamole project provides official Docker images that let you self-host it easily:

  1. guacd – the Guacamole proxy daemon that handles protocol connections (RDP, VNC, SSH).

  2. guacamole – the web application that users log into.

  3. Database container (MariaDB or PostgreSQL) – stores user accounts, permissions, and connection settings.

These run together, typically via docker-compose.

Key benefits of self-hosting Guacamole in Docker

  • Centralized access: Manage multiple RDP, VNC, and SSH sessions from one browser.

  • Clientless: No software to install on client devices.

  • Secure: Can be paired with HTTPS, reverse proxies (NGINX, Traefik), and 2FA plugins.

  • Scalable: Easy to spin up more instances using Docker.