Home » Linux » Tips » Free Cloud Desktops

Linux Tip: Free Self Hosted Cloud Desktops Using Linux and TailScale

This article will show you how to build your own cloud desktop environment.

Virtual desktops have become a popular way to make your work space portable. You can leave all of your applications running in the cloud, and log into your desktop from anywhere and resume work. Here’s how you can build your own cloud desktops, for free.

Google, Amazon, Microsoft, and other vendors all provide cloud-based virtual desktop solutions, but the costs can quickly add up. By using a VPN and some virtualisation software, you can build a simple, expandable cloud desktop environment which you can securely access from almost any device, any where.

Why Cloud Desktops?

Mobile working is coming back. As people start traveling more, they need to be able to stay secure while working remotely. One way of doing this is using cloud desktops, ensuring that all files are stored securely in a central location, rather than on the portable device which could be stolen.

Many people now work from their tablets or phones, which do not run all of the software they require for their work. Cloud desktops can be accessed from these devices, making more complex desktop applications available on mobile devices.

In my case, I wanted to be able to access Linux and Windows desktops from my tablet. Running multiple cloud desktops on a commercial host would have proved too costly for my purposes, so a (almost, if you count my power bill) free solution was devised.

What you Need

The solution wound up being pretty simple – A computer to host virtual machines, and a way to access it remotely.

I purchased a cheap ex-business small form-factor PC with a decent processor supporting virtualisation, 16GB of RAM and a 512GB SSD. The small form-factor machine uses a laptop CPU, which while a bit weaker than it’s desktop counterpart, is cheaper to run power-wise, as this computer will be running 24/7.

For virtualisation, I chose VirtualBox, as the virtual machines are stored in self-contained files which are easy to back up, and can be run on any other machine running VirtualBox with little to no modification. VirtualBox will be run on Ubuntu Desktop for convenience.

I chose TailScale as the VPN to connect to this machine remotely. It has clients for mobile operating systems, and can cleverly navigate firewalls and NAT issues, meaning I can just get online and connect to my VPN whenever needed. If you aren’t comfortable using a commercial service, OpenVPN can be configured – though this would require a VPN server which is accessible from the internet.

The final piece was the software to remotely control the Ubuntu host itself – VNC was chosen.

How it All Fits Together

I won’t reproduce the installation steps required, UbuntuVirtualboxTailScale, and VNC all have detailed configuration steps at the links.

With VirtualBox installed on Ubuntu, I can create as many virtual machines as I need to, running any OS which VirtualBox supports. I just need to connect to my TailScale network from my mobile device, log into my Ubuntu Desktop VNC session, and I have full access to all of the virtual machines – without having to install remote access software on each VM individually.

It’s neat, it’s tidy, it works, and most importantly, it’s secure and easy to keep backed up!

Photo of author
I'm Brad, and I'm nearing 20 years of experience with Linux. I've worked in just about every IT role there is before taking the leap into software development. Currently, I'm building desktop and web-based solutions with NodeJS and PHP hosted on Linux infrastructure. Visit my blog or find me on Twitter to see what I'm up to.

Leave a Comment