My Virtual Desktop

I use a MacBook Pro at work, and a variety of Windowses at home, but the majority of my personal programming and hackery happens on a couple of machines called Play and Beta.

Play is an LXC container running on my HP Microserver, and Beta is a KVM virtual machine running somewhere on the iWeb Private Cloud in Manchester.

Beta does the real work: qpsmtpd, Exim and Dovecot to handle my mail, Apache for this blog, and any other long running daemons that I could consider “production” (as production as things get when you’re doing this for yourself; typically meaning something my brother or wife will miss if it breaks).

Play has the checkouts of my personal git projects, my virtualenvs, vimrc, Git Annex: all that jazz. It’s a well appointed Debian Jessie install with all the packages to make local development comfortable.

In a way, it’s my ‘ghetto’ box- all of my other containers and machines are minimal, only running daemons they need to do their jobs, and with spartan vi and bash configurations. If anything doesn’t fit into the roles my other boxes are defined for, it goes on Play.

Because terminal emulators are a mixed bunch, and I’m particular about everything from font, to keybindings to colour scheme, I run vncserver on Play with a light window manager (mwm, because I’m old school), and it guarantees that I can connect to the same session from work or home, and pick up exactly where I left off.

Play runs BitTorrent Sync, now that I’ve moved away from Dropbox, so I can have the same files accessible for anywhere, and move files in and out of my synced folders if I need to transfer things between devices. I even have Sync running on my phone, so I can get my photos off easily.

It means I can use my old Windows XP machine (which has some limited life left in it) to do real work, by basically using it as a full screen wireless VNC viewer (which, by the way, is a gadget I would buy if it came with an 8 hour battery life).

Play is IPv6 connected and I have v6 at home, in the datacentre and at work so I can quickly spin up daemons for testing without having to worry about forwarding ports, and it’s all firewalled off to trusted locations.

From everywhere else, I can SSH tunnel my VNC session and reap most of the benefits, meaning I can work from basically any computer with a copy of VNC on it. A handy tips for OSX machines is that you can run

open 'vnc://[2a01:348:2e0:dead::6]:5902/'

to bring up the built-in VNC client.

Outside of terminal work, having a separate Chromium install you can use from another machine is great when you don’t trust the browser on the random machine you happen to be using, or when you want to see the view of a site from “outside” of your current network.