This site provides the following access keys:

Brandan Lennox's

Moving to Linode

Here’s an embarrassing story.

I used to host a friend’s WordPress blog on a subdomain of, since I was already paying for a shared host at Site5 and he didn’t care about the domain name. Site5 recently warned me that the WordPress installation was outdated, so I asked him if he still needed it at all, since he hadn’t written anything in a few years1. He said he didn’t need it, so he’d export his data and I could shut down the subdomain.

But then he wrote back and said he couldn’t get to WordPress. Actually, he couldn’t get to anything on at all.

Actually, my DNS records were wrong. I don’t remember changing them, and I don’t understand why they had the values that they did, but most offensively, I don’t even know how long my site was unreachable. Days? Months? No clue. I fixed the DNS entries, and a little while later, my domain was resolving again…

…to no avail, because the Rails app wouldn’t boot.

As a shared hosting environment, the default Ruby version at Site5 was 1.8.7 for an absurdly long time. At some point in the past couple of years, they started offering Ruby 2.0, but only through some arcane configuration in your .bashrc or RUBY_HOME or something. I clearly don’t remember how it works — hence the unbootable app — and their documentation server was down when I tried searching for clues.

I’ve been standing up Linux servers quite a lot over the past few years. Bringing up a Rails stack to host my tiny, untrafficked blog was not a daunting task to me. Inertia (and advance payment) kept me at Site5, but this was the final kick the ass I needed to move my site to a proper hosting environment.

To VPS, and Beyond!

After putting the baby to sleep last Tuesday, and before bedtime, I:

  • signed up for a Linode account,
  • installed CentOS 7.2, nginx/passenger, rbenv, Postgres, and monit,
  • migrated my existing SQLite database2 to Postgres,
  • deployed the code, and
  • updated my DNS records to point to Linode.

Literally an evening’s worth of work, without reading a word of Linode’s documentation, and I was on a stable, secure, up-to-date environment that I control from top to (almost) bottom. I should’ve done this years ago!

The next night, I moved over a couple of other services I used to host at Site5. Now I wish I had the time to work on some more side projects, but I guess I can wait until Rowan is old enough to want to work on them with me.


  1. For shame!
  2. That’s right. Production site hosted on SQLite.