At Isos Technology, we use Amazon Workspaces all the time in our consulting practice.
Amazon Workspaces is a great tool for us for a few reasons:
- Windows / Linux Based: We are a Mac shop. When we need access to a Windows desktop, Workspaces is a great alternative to running a local VM (that might bog down our laptops).
- Persistent: Many times we need to run jobs that take hours (or days). If these ran on our laptops, we would not be able to go home (or into the office) until the job completes. Amazon Workspaces allows us the freedom to close our laptop lids and move about the world without fear of a process or job stopping.
- Scalable: If we need a 'big' instance for a certain project, we can get that. Something smaller for a light load? That too!
- High Bandwidth: Many of our projects require us to download and upload HUGE files. Being on Amazon's network allows us to sling files around without thinking.
- VPN Support: You can run any crazy VPN software you want with all sorts of weird network restrictions, and it still works.
- Clients for Everything: Chromebook? No problem! Android? SURE! Playstation 4? Not yet.. but probably soon!
However, there are a few downsides:
- Hosted in Amazon: Many times we need a solution like this but located within a client's protective network.
- Expensive: The starting cost is...a lot. More than a few bucks for sure.
Get 80% of the way there with Docker!
Note, this setup is based on, and modified and upgraded from this github project.
Install Docker on a VPS (such as Ubuntu on Digital Ocean)
Head over to your favorite VPS provider and get an inexpensive VPN instance of Ubuntu 18.04. After that, follow a great install guide on how to get Docker CE going quickly.
And install docker-compose for good measure.
How to Clone my Docker Desktop Project
1. Head over to the project page
2. And then clone the source code:
git clone firstname.lastname@example.org:cowmixtoo/mate-desktop.git
Fire up the Desktop
Go into the mate sub directory and issue this command:
And then you'll see output like this:
march-mate | Adding new user `mate' (1000) with group `mate' ... march-mate | Creating home directory `/home/mate' ... march-mate | Copying files from `/etc/skel' ... march-mate | Adding user `mate' to group `sudo' ... march-mate | Adding user mate to group sudo march-mate | Done. march-mate | => Setting a password to the docker user march-mate | => Done! march-mate | ======================================================================== march-mate | You can now connect to this Ubuntu container via SSH using: march-mate | march-mate | ssh -p <port> root@<host> march-mate | and enter the root password 'WJoEZoDxefu8' when prompted march-mate | march-mate | mate password : KKnWR0sVKx9M march-mate | use this to connect to the x2go server from your x2go client! march-mate | Please remember to change the above password as soon as possible! march-mate | ======================================================================== march-mate | /usr/lib/python2.7/dist-packages/supervisor/options.py:298: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
Store away the passwords for root and mate.
Install your Favorite X2go Client
X2go is a VERY secure remote desktop client. It combines the best of X Windows and SSH.
The main webpage has most of the clients available to download.
Or, on MacOS with HomeBrew:
brew cask install x2goclient
Fire up X2go
Here is our suggestion on how to configure your session:
1. Start a new session
2. Fill out session names
- Host names
- Login name
- SSH port
- Make sure the command is MATE for the mate desktop.
3. Adjust the screen geometry
4. Disable the sound
5. Fire up the session
Remember the password from text dump above (the output from the docker-compose).
If it works, you'll see a desktop like this:
Happy desktop computing!