Don’t ask me what lxd does. Or what lxc does. Or how lxd relates to lxc. I just know that lxd (or lxc – this confuses the hell out of me) is an awesome piece of software.

Having snagged a new vanity domain in the .uk release, I decided to bite the bullet and join the fediverse. I proposed to build my own mastodon instance. This is a Pandora’s Box of a piece of software; therein lies the evils of Ruby on Rails, Node, React and a hundred other blights and horrors. I’m too long in the tooth to inflict that on my base install, so chose to build and deploy in a container on my VPS.

lxc launch ubuntu:18.04 mastodon had my pristine environment up and running in seconds. I logged in, apt update && apt full-upgraded everything then summoned the beast in a series of incantations copied and pasted from the mastodon build wiki. All was going well until my poor VPS gave up the ghost, memory exhausted from compiling the assets. “You’ll need a lot of RAM for this”, said the wiki, and I was defeated.

But at the bottom of Pandora’s Jar remains Hope. “What if…”, thought I, “…I built this elsewhere and sent the container to my VPS?”. I consulted the Oracle and the entrails appeared favourable. I could do this!

I splashed out a few cents on one of the more luxurious Digital Ocean droplets for an hour, built the app, copied the container to my VPS, set up my proxy server and I was done. It was stupidly easy. Really, truly, stupidly easy. Thanks LXD developers. I owe you all a pint.