Guacamole

Guacamole

Guacamole uses two parts: a backend service (guacd) and a web interface (usually via Tomcat). The backend handles the connection; the web app handles the users.

OS: Windows/Linux/UNIX
Size: 10 MB
Version: 1.5.5
🡣: 4332

Guacamole: Remote Desktop in a Browser — No Client Required

Guacamole isn’t new, and it’s not flashy. But it gets the job done in setups where full remote access is needed — from anywhere — and installing extra software on every client just isn’t an option. Once it’s running, all a user needs is a browser. That’s it.

The idea is simple: a web app that connects users to internal machines — over RDP, SSH, or VNC — through a centralized point. No port forwarding. No firewall holes. One entry — everything behind it stays untouched.

What It Offers (In Practice)

Feature How It’s Used
Runs in browser No install — remote desktops appear in a browser tab
Supports RDP, SSH, VNC Can connect to Windows servers, Linux shells, legacy boxes
Central access gateway Users log in once — connections are routed inside
Auth integrations LDAP, 2FA, database users — pick what fits
Clipboard + file copy Basic upload/download, copy-paste text supported
Headless server operation No GUI needed on the server side — just guacd and Tomcat
Recording optional Some setups log sessions for review or audit
Cross-platform clients Any OS with a modern browser can connect

What’s Needed to Run It

Guacamole uses two parts: a backend service (guacd) and a web interface (usually via Tomcat). The backend handles the connection; the web app handles the users.

– OS: Linux server (Debian or Ubuntu are common)
– Dependencies: Node, Apache Tomcat, MySQL or PostgreSQL
– Browser: Any modern HTML5 browser (Chrome, Firefox, Edge)
– Network: Server must reach all target machines over RDP, SSH, or VNC

A Rough Install (Debian/Ubuntu)

Not a one-line installer, but straightforward if taken step by step.

1. Get the backend:

apt install build-essential libcairo2-dev libpng-dev libssh2-1-dev
wget https://downloads.apache.org/guacamole/1.5.3/source/guacamole-server-1.5.3.tar.gz
tar -xzf guacamole-server-1.5.3.tar.gz
cd guacamole-server-1.5.3
./configure && make && make install

  1. Start guacd:

systemctl enable guacd
systemctl start guacd

  1. Drop the web interface into Tomcat:

wget https://downloads.apache.org/guacamole/1.5.3/binary/guacamole-1.5.3.war
mv guacamole-1.5.3.war /var/lib/tomcat9/webapps/guacamole.war

  1. Configure:

– Add guacamole.properties
– Set up a database and schema
– Define users and connections

Where It Shows Up

– In schools and labs — to let students or staff get into shared desktops
– On support teams — as a jump point to client environments
– In small businesses — to replace TeamViewer with something local
– Inside VPNs — to centralize Linux, Windows, and legacy access
– On internal dashboards — for a single point of entry to critical machines

Some Tradeoffs

It’s stable, but not perfect:
– Not as fast as native RDP or SSH — but usable
– File transfer is basic — don’t expect full sync
– Keyboard mapping can be odd in non-US locales
– Needs some setup — database, configs, auth backend
– No fancy admin UI — it’s all files and logs

But once deployed, it runs quietly. One machine in the corner of the rack — and no one touches it for months.

Final Note

Guacamole isn’t built to impress. It’s built to work — for people who know what they need: centralized, low-maintenance remote access that doesn’t depend on the latest agent, the right browser plugin, or a paid subscription. Set it up once. Point it at your internal servers. Then forget about it — until someone needs a desktop 400 km away, and there it is.

Other articles

Submit your application