DjangoCon 2021 | Putting a shell or a desktop in your Django app | Maari Tamm & Florian Haas
In our City Cloud Academy (https://academy.citycloud.com) 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 (https://guacamole.apache.org/)'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 (https://guacamole.apache.org/doc/gug/guacamole-architecture.html#web-application) (commonly Apache Tomcat). But the Guacamole protocol is not tied to the Java language in any way, and a Python websocket proxy (pyguacamole (https://pypi.org/project/pyguacamole/)) is readily available under an open source (MIT) license.
In this talk, we discuss how we implemented a learning platform (based on Open edX (https://open.edx.org)) that deploys an ASGI service under Daphne (https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/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.
Slides
The slides (with full speaker notes) are up at https://fghaas.github.io/djceu2021 and https://mrtmm.github.io/djceu2021.
Date Added: September 19, 2024
Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.