Education and the Cloud

September 7, 2016

Using Guacamole for a browser-only HTML5 Remote Desktop capability that will work with both Ubuntu and Windows servers!

Cloud in a Box (CIAB) Remote Desktop system v1.0.1

Connect using only a Web Browser  to both Linux and Windows Servers to access and use a Remote Desktop

Oct 2018 – Brian Mullan (


New with Version 1.0.1 the CIAB Remote Desktop system now installs everything in LXD Containers on the chosen Host/Server.  

Depending on the Host/Server (cpu, memory, disk storage) you can potentially configure dozens of LXD Remote Desktop containers each with the same or even different

Linux Desktop Environments (ie Ubuntu-Mate, Xubuntu (xfce4), Lubuntu (LXDE), Budgie etc).  

Each Remote Desktop Container can be configured to support one or many Remote Users just as any Linux Desktop machine is capable of.


A recent addition to the CIAB Remote Desktop system are the CIAB Web Applications. These are a large group of Web based applications that can be installed in LXD containers on the same Host/Server as the CIAB Remote Desktop itself. Each selected application is installed in a “nested” LXD container inside the ciab-guac LXD container. This allows the backup or copy of all installed Web Applications just by copying or backing up the ciab-guac container itself.

There are now 2 YouTube video’s regarding the CIAB Remote Desktop system:

CIAB Remote Desktop Part 1 – Installation


CIAB Remote Desktop Part 2 – Configuration and Use



CIAB Remote Desktop (CIAB – Cloud-In-A-Box) was originally envisioned around 2008 after I had the funded opportunity from my employer to spend nearly 18 months on a Fellowship with a non-profit here in North Carolina that provides the networking connectivity to all of the schools in North Carolina.

At the time, cloud computing was just beginning and Amazon’s AWS was practically the only game in town.

Having used AWS myself quite a bit by that time I tried to investigate how “cloud” could be used by K-12 schools as a possible low cost solution to the may problems almost every school faced including:

  • lack of funds often prevent hiring top tech support or buying new equipment
  • local inexperienced technical support which often-times consisted of a librarian, teacher or volunteers
  • a hodge-podge of mixed old/new computers (desktop, laptops)
  • security & viruses were a constant threat because of Windows  usage.

Besides traditional use of Desktop and Laptop computers schools today also include mixes of Chromebooks, Tablets as well.

The above circumstances and combination of problems often created a frustrating experience for teachers, students and parents.

So in 2008 I first started thinking about how to bring together a Cloud based Remote Desktop solution that while not solving every problem, would try to adhere to the 80/20 rule of trying to solve 80% of the problems.

CIAB Remote Desktop only requires a working HTML5 web browser!    This means that all of the above school computing resources (Desktop, Laptop, Chromebook, Tablet and even a Smart Phone) can be used.

The power of the local computer would no longer matter.

The amount of memory, disk drive space, operating system on the local computers was no longer relevant as the real User “desktops” are remote and the “server” they run on can be scaled in the “cloud” to as large as needed in size or number based on availability.

The school would only need decent Network connectivity in regards to speed & reliability.

For example, on AWS EC2 on of the larger Virtual Machine Instances you can spin up today approximates this:

Instance Type                         # vCPU                       Memory (GiB)                     Storage (GB)                        Network Speed
c5.18xlarge                                  72                             144GBytes                   2x900GB NVMe SSD                   14,000 Mbps  

Such servers could potentially support dozens of CIAB Remote Desktop containers and many dozens of CIAB Remote Desktop Users !!

Today there are lots of great IaaS (Infrastructure as a Service) Cloud providers including AWS, Digital Ocean, Hetzner (in Germany is inexpensive and works great) as well as others.

If you were to install CIAB Remote Desktop on such an AWS server you would pay by the hour or month but as the above stats show you would be using a very powerful server to provide remote desktops to the students.


CIAB Remote Desktop Use-Case Benefits

Since any applications or databases used by the CIAB Remote Desktop users run on the remote server it doesn’t really matter much how old or slow your local computing device is!

  • For an Admin… to upgrade/delete/add or configure an application only requires doing so in one place not on dozens or hundreds of local computers.3. Security. Regarding Security and/or viruses the remote desktop environments all are running on Linux.
  • Security for School orient Remote Desktops is managed in perhaps just a few Cloud based servers versus dozens or hundreds of premises based servers spread all over every School District in every County in a State.     Viruses… I’m not sure that there are any that affect Linux.  Also, CIAB Remote Desktop uses HTTPS (SSL) so the Browser connection to the remote desktop is fully encrypted between the user and the Remote server providing the Desktop Environment.

NOTE:  The Installation does NOT install an SSL Certificate for NGINX but only uses a self-signed Certificate.  So to enable functioning HTTPS encryption it is the Installers responsibility to utilize something like LetsEncrypt to obtain and install a valid Certificate for NGINX to utilize for secure communications.

  • For a school, students can access their CIAB Remote Desktop while at School or Home just using a web Browser.   They and the Teachers could access and do homework or grading at home or at school just using only a Web Browser!




              Your remote desktop is always available to you from home or even while traveling !

              Beyond schools, CIAB Remote Desktop could be useful for many people or businesses.

              Besides the above benefits, if installed on one of your home computers you could access your Home Desktop from anywhere!





Over the past couple years I’ve gradually integrated a combination of software into a solution for CIAB that seems to work very well.

I’ve utilized the great work of the Apache Guacamole project.   Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.     Its called clientless because no plugins or client software are required to be installed.    Thanks to HTML5, once Guacamole is installed on a server, all you need to access your remote desktop is the web browser you or the students use already.

I integrated several other Open Source software projects with Guacamole to enhance the overall remote desktop solution including:

NGINX –  a free, open-source, high-performance HTTP server and reverse proxy

MySQL – the most popular Open Source SQL database management system

Tomcat – is an open-source web server developed by the Apache Software Foundation (ASF).

XRDP/X11RDP – these 2 components provide a fully functional Linux terminal server, capable of accepting RDP protocol connections from Linux based rdesktop & freerdp clients but also from Microsoft’s own Remote Desktop (re RDP protocol speaking) clients.    XRDP/X11RDP allow RDP Protocol speaking clients the ability to connect to a Linux Server Desktop environment and interact just as if they were logged into it directly and just like they are familiar doing with Windows Terminal Servers and their Windows Remote Desktops.

The combination of NGINX and Tomcat is implemented to support HTTPS web browsing so the end-to-end connection from the student’s web browser to the remote desktop is encrypted.

NOTE:  With the v1.x release of CIAB Remote Desktop .. everything runs in LXD containers on the chosen Server/Host.    Please only use a fresh Ubuntu 18.04 Server or VM to install CIAB Remote Desktop on as it will delete any existing LXD installation then reinstall the SNAP version of LXD during installation.

Installation should be Easy !

My development of CIAB included creation of a set of Linux “bash” shell scripts that, for the most part, automatically install everything including the Ubuntu Mate Desktop Environment,  the Guacamole Web Proxy Server, Tomcat8, NGINX, MySQL, and XRDP/X11RDP software.

During execution of these installation scripts the installer/admin is only asked a few times to input information such as passwords for MySQL, the Guacamole database.

I’ve created a fairly extensive README.PDF file which explains the installation process step by step and includes quite a few pictures of various entry forms/screens that the Installer will encounter.

PLEASE…. Take the time to thoroughly read & use the README.PDF file!

In that README.PDF guide I also talk about an example installation on Amazon’s AWS EC2 Cloud.     For that installation I also identify a recommended  AWS EC2 “server” identifier (called an AMI) to use if you want to experiment.

NOTE:   I have used these scripts to install this many times now on the AWS Cloud but also on Digital Ocean’s Cloud as well as on local Servers and even a local VM.

I’ve posted all of the scripts and associated files required by the scripts to install CIAB Remote Desktop on the GitHub repository site:

NOTE:   you will need ALL of those files for the scripts to successfully install the CIAB Remote Desktop on your Cloud Server, local server or VM.

Lastly,  all of the Scripts were designed to install the CIAB Remote Desktop onto an Ubuntu 18.04 LTS (long term support) Server.

If you want to install onto some other Linux distribution you will have to go through the various scripts and make appropriate changes for your Linux distro choice.

The Demonstration of the CIAB Remote Desktop only focuses on connecting to an Ubuntu MATE Desktop on the AWS Cloud.

REMEMBER…   the very same setup of Guacamole can be used to simultaneously configure Remote Desktop connections to Microsoft Windows Servers as well assuming those Windows Servers have been configured appropriately for RDP Remote Desktop connections/sessions.

If you find this useful, interesting and decide to try it out please let me know how it went.






Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a free website or blog at

%d bloggers like this: