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

Reply via email to