On Tue, Aug 26, 2025 at 8:49 AM viktor_krumm <[email protected]> wrote:
> I looked at that possibility a bit of time back. I chose to build an > Event Listener (https://guacamole.apache.org/doc/gug/event-listeners.html) > to forward the event to another custom service that would fork and handle > the docker containers. > > Sent with Proton Mail <https://proton.me/mail/home> secure email. > > On Monday, August 25th, 2025 at 6:30 PM, Jamie Love <[email protected]> > wrote: > > Thanks Nick, great to see the feature is in the works. > I appreciate the complexity and effort required to get these sorts of > features working. > > One final question which I haven't been able to find an answer for. I > have been wanting to run a docker-based Firefox (e.g. > https://hub.docker.com/r/linuxserver/firefox) behind guacamole for > per-user on-demand browser usage. There doesn't seem to be any obvious > mechanism to do this, except possibly hooking into the database and > monitoring for login events. Would that be the way? > > There are definitely a handful of ways to accomplish this. As Viktor mentioned, you can code an event listener and trigger actions when certain events happen within Guacamole. In the past the types of events were quite limited (there were four: login success, login failure, tunnel connect, tunnel disconnect), but with the 1.6.0 release this has been expanded to include quite a few more: https://github.com/apache/guacamole-client/tree/1.6.0/guacamole-ext/src/main/java/org/apache/guacamole/net/event Another option is to write an Authentication Provider that takes action when a user logs in - similar to the event listener, but gives you the possibility of putting something into the authentication workflow, rather than just listening for and reacting to events. Of course, both of those options rely on your ability to write some Java code - developing an extension of some form or another - but there are a couple of ways to accomplish this outside of Guacamole itself. Back in a previously life I actually used Guacaomole to front some VDI images on which I hosted some shared applications, and, while I used Guacamole for the front-end, I used HAProxy as a load balancer and then used some scripts to query the HAProxy status and react when the number of connections changed on one of the pools of systems that I was presenting to users. It was a poor man's replacement for VMware Horizon (View) or Citrix XenDesktop, but it worked - I could at least control power on the VMs and start and stop them on-demand. You can do similar things these days with other on-premise load balancers and many of the cloud options - for example, I know AWS's load balancer can scale EC2, ECS, or EKS instances for you based on demand. And platforms like Kubernetes have built-in options for load balancing, so you can probably accomplish similar things on containers on your choice of K8s cluster. -Nick
