Cloud

For a long time, I have been running an Ubuntu desktop in my basement “office”. However, lately, I’ve been using it less and less, in favor of my laptop. It runs a local web server which hosts a private wiki that we use for household stuff (recipes, scanned documents, etc); it also has two monitors, which occasionally comes in handy when I’m doing something that requires a lot of screen real estate. And, it runs Gnucash, my financial software of choice. But for the most part, it functions as a print and file server, and that’s about it.

A couple of months ago, I had an epiphany. It occurred to me that I don’t need this PC in the basement. I might use it one or two days a month, but for the most part, it sits there sucking up power. So, I came up with a plan:

  • Get a DVI adapter cable for my laptop so I can run it with an external monitor, which should solve my screen real estate issue.
  • Spin up an AWS EC2 t2.nano instance to run the wiki, and possibly, Gnucash.
  • Retire the PC, and get a Raspberry Pi or similar device to take over as print server and file server.

So far, I’ve got the AWS instance up and running, and moving the wiki over to it was surprisingly easy. I have to worry a little bit more about security now, as the AWS instance is available from anywhere on the Internet. My old web server was only accessible over our home LAN.

This AWS instance is the first “personal” web server I’ve ever had. Previously, I used public web space on a server hosted by my employer (a University). But, I’m trying to migrate things away from there, in an effort to separate my “work” and “personal” online identities. To that end, I’m also using the new AWS instance to host all of the content that was previously on the University’s server.

Lastly, I used to host this blog at wordpress.com, but now that I’ve got my own server, I figured there was no reason not to host my own WordPress instance. So, I moved the blog over as well.

I have to give a shout-out to Let’s Encrypt, a free online Certificate Authority. Before they came around, I would have had to shell out big bucks for a SSL certificate.

I thought Gnucash was going to be a sticking point. It’s not really a cloud-friendly app. I didn’t really want to install a full X-Windows environment on a t2.nano instance, just to have somewhere to run Gnucash. That seemed like killing a fly with a sledgehammer. Initially, I tried running it on the Mac via X11 forwarding. I set up XQuartz on the Mac, installed gnucash on the t2.nano, and tried it out. I was not happy with the performance at all. I ended up running the Mac-native version of Gnucash, and storing the data file on Dropbox. That seems to work OK, and gives me a centralized repository for the data file, while allowing me to run Gnucash on multiple Mac desktops (providing I remember to exit when I’m finished with it — it does not deal well with multiple instances accessing the data file simultaneously).

Speaking of Dropbox, I’ve just started using that as well. Although there are a couple of annoying things about it, I think it’s going to work well for me. It fits in well with how I like to work (read: it works well with the shell) and also supports Linux natively, which was a must-have for me. I’ll likely write something up about Dropbox once I’ve used it for a little longer.

For now, I still have the PC sitting in the basement. I still have to buy a Raspberry Pi, install Linux on it, and set it up as a print server. It’ll also run a 3TB USB disk that I’ll use as an offline backup for my Dropbox files, as well as VMs, and other assorted things that are too large for Dropbox. Stay tuned!!