Today I reconfigured a server I maintain for the Office of Residential Life and Housing. It broke yesterday because of a database issue, but I’ve taken this as an opportunity to rebuild and improve it with an included email server. I have it mostly up and running now, but it’s been a long, slow process that took far longer than I expected it to (as a sidenote, this would have been far easier if the backups I had were up-to-date. Always check your backups!)
Building an email server is more difficult than I expected. I almost expected to just run
sudo apt-get install postfix and have an email server up and running; sure, it would need some configuration, but I’d be able to start sending and receiving mail almost immediately. And yes, that might be true if I installed something like Mail-in-a-Box or iRedMail, but I decided that that was too easy, jumped into the deep end, and immediately started configuring a mail server using Postfix, Dovecot, MySQL, and Spamassassin (and would have been instantly lost if it hadn’t been for this awesome guide). So I spent twelve hours copying and adapting code to my purpose, rewriting databases, adding users, restarting when I messed up.
It was absolutely awesome.
There’s something about taking the blank screen of a terminal, typing commands across it, and making something work. When you reload the page and it actually works the way you want it to, there is an immense feeling of satisfaction and accomplishment. You took something that was blank and empty, and turned it into something useful. There’s no feeling quite like it in the world.
That said, I’m totally using one of the ready-to-deploy email servers next time. Making something work is fantastic when you have the time to do that, but sometimes you just really need to have whatever you’re working on to be up and running.
Listing image by RobH, from Wikimedia. Used under the Creative Commons Attribution-Share Alike 3.0 Unported license.