I don’t exactly consider myself a bad-ass system administrator. In fact, to be honest, I’m a pretty poor one. I like programming computers, not maintaining them, and the hoops that system administrators have to jump through to get everything configured and running smoothly give me headaches. Granted, machines under my dominion usually end up stable after a week or two of heavy dogfooding, and, so far as I know, no machine I’ve administered has ever been hacked (knock on wood), but administration is most definitely not my forte.

So when I decided to move to Linode, I did so with a little bit of trepidation. Yes, I wanted more flexibility than Dreamhost offered, and yes, I wanted full control over a server so I could run whatever I felt like, but at the same time, I was extremely nervous about whether I’d actually be able to get everything working properly.

Mostly, I ended up having an easier go of it than I anticipated. Debian 4 has been a great distro and was wonderfully easy to set up. sudo apt-get install libapache2-mod-php5 php5-mysql helped me get WordPress back up and running very quickly. Getting mail operational using dovecot and exim4 with TLS proved more of a challenge, but I eventually got that working too, and even figured out how to get my self-signed certs permanently accepted by Thunderbird and my awesome Nokia N800 (more on that some other day). But I had two major problems: I was getting identified as spam by all the major hosting providers, and I could not for the life of me get Apache virtual hosting doing what I wanted.

The first drove me completely bonkers: even though I verified repeatedly that I had set up valid SPF records in DNS, Gmail kept nailing everything I sent as spam with no explanation whatsoever. Nothing I could come up with helped. At the same time I was trying to get inside Gmail’s head, I was also trying to make bitquabit.com point to, well, bitquabit.com, but make code.bitquabit.com point to an encrypted site that hosted my Mercurial repositories. Try as I might, I simply could not make a configuration that did what I wanted. I ended up with all virtual hosts authenticated, or the code subdomain burning out, or Apache rejecting my configuration entirely. I finally caved in and asked Michael Gorsuch, our sysadmin, if he could lend me a helping hand.

Michael’s awesome. Rather than tell me he was too busy, which I would have completely understood, and rather than just pointing me to clear documentation, which is what I had hoped for, he actually wrote tutorials of his own for his website that explained how to do what I was trying to accomplish. After reading the tutorials and getting a quick lecture on PTR records, I finally managed to get everything up. Everything’s working perfectly. No more spam blocks, my repositories are live, and I even managed to cram a few extras features in there as well (specifically, authenticated WebDAV). I don’t know of any other sysadmins who would’ve taken the time to help me like that, so thank you, Michael.

All you readers, go check out his blog. It’s a pretty good read. (And after this weekend’s redesign, it’s pretty pretty, too.)

What’s left? I’m not completely sure. The immediate impetus for moving to Linode was to enable me to rewrite this blog in Squeak using Seaside and Pier or HttpView2. Long-term, I wanted to be able to clean up and begin publishing some small web apps I’ve written in Seaside. Regardless of what I end up doing, I’ll be sure to let you know as soon as there’s something to click on.