I thought I might take a moment to talk about my web hosting setup.
I run a decent amount of websites (roughly 12 or so) and some of them quite popular. Popular enough that, long ago, I’d outgrown shared or VPS hosting packages. I tried dedicated for a bit, which was nice but expensive. So, in the end, I built a kick ass server and sent it off for colocation. There’s nothing like knowing the machine you built and getting the best in prices.
However, one of the great perks about shared/vps type hosting is that they come with all the “extras” already hooked up for you – web server installed and setup, databases ready to go, and an email server prepared. I can not emphasize how under appreciated that last item on the list is. After 3 years of self hosting, I can say that, without a doubt in my mind, email services are the toughest part of running a web setup.
Email is not only complex from a theoretical point (understanding MTX’s, routing, user/virtual local/remote delivery, and more) but also very difficult to setup — relying on a large number of interdependent packages that (in my experience) aren’t very easy to get tied together. (Take this with a grain of salt as I am not a trained Linux Master, but I’ve got enough experience to compile a webserver, php, and mysql in a morning where as getting a mailserver up takes me a day with precompiled code and a tutorial.)
However, you still have to be able to provide email for the websites you host so I had two options:
- Take all my email and do a simple ‘dump’ off to some other service like GMail.
- Figure it out.
I’m too much of a control freak (somewhat a part of deciding to self-host), so I went with 2. However, I didn’t want to break my primary hosting machine with all this mail server gunk. Plus, my main server has a habit of needing down time or location shifts and I did not want to deal with server backups directly.
To solve these problems, I spend 20$ a month on a VPS slice from SliceHost. Amazing service, fast, great control panel, automatic complete system backups, and overall a 100% awesome experience. I use this slice for specificaly hosting my email (and Trac/SVN) services. All of my domains point to this machine to deal with email. I had managed to cobble this together with Ubuntu 6.06 last year to take any mail (for any domain!) and save it for a single user — it took me nearly 3 days to get that working right.
Obviously, that solution is somewhat lame: What if I want other users? What if one domain needs mail to go else where? I couldn’t address any of these options really.
In addition to these dilemmas, the Ubunut 6 was rocking Trac0.9 and python2.4 — ew. Time to upgrade.
5 minutes later (that’s how long it takes Slicehost to completely reimage your VPS for a completely bare OS install — wow) I was up and rocking Ubuntu 8 and its shinny, new repositories.
Using two tutorials, Complete Mailserver Setup in Ubuntu 8.04 and Trac on Hardy Heron, I’ve got the machine now setup to server as a Trac/Subversion hosting machine as well as a mailserver capable of gracefully handling mail for multiple domains and users as defined by a pleasant-to-work-with mysql database.
With the Trac/SVN/Email server and the larger Web/Database server setup, I’ve not got a complete, fully self-hosted solution and I’m ecstatic about having all the pieces tied together.














