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:
-
guacd
– the Guacamole proxy daemon that handles protocol connections (RDP, VNC, SSH). -
guacamole
– the web application that users log into. -
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.