Get interactive! Putting a shell (or a desktop) in your Django app

Oct 23 11:33 AM CDT :calendar:
Audience level: All

About This Talk

In our learning platform, we enable learners to interact with real-world hands-on lab environments, so that they can learn complex technologies like OpenStack, Kubernetes, Terraform, Ceph, Ansible, and others. To do that, we use Apache Guacamole’s guacd service to provide learners with interactive shell terminals — or even full desktop environments — that run right in people’s browsers, no additional software required.

The Guacamole platform is normally deployed in conjunction with a Java servlet environment (commonly Apache Tomcat). But the Guacamole protocol is not tied to the Java language in any way, and a Python websocket proxy (pyguacamole) is readily available under an open source (MIT) license.

In this talk, I will discuss how we implemented a learning platform (based on Open edX) that deploys an ASGI service under Daphne, uses pyguacamole to provide an asynchronous websocket connection to a Guacamole service, and thus creates a highly scalable, interactive, and immersive learning environment that helps people learn complex technology with no hardware or cloud investment at all.


    Photo of Maari Tamm

    Maari Tamm

    I am a Python developer, working in the Education team in City Network. I still consider myself new in this industry as I changed my career in late 2018, working in a medical lab before getting into coding. I am a former Outreachy intern and a FOSS enthusiast. Being self-taught myself, I love being a part of providing online learning resources for others. Our learning platform (mentioned in the talk) is the City Cloud Academy.