Every Now and Then
Those who are around me for large portions of my “down time” know that I am an avid technical reading enthusiast, meaning that I have devised a clever-sounding term for masochistically poring over countless pages of systems documentation under the guise of preparation for various “projects,” of which perhaps only 20% even are begun past the conceptual planning phase.
At this point, alas, my “Home Toaster” project has been declared effectively successful, meaning that anything that hasn’t been done can be done, or has been done. Either way, I’ve decided that anything I haven’t done doesn’t merit doing until I actually make the stupid server. If that makes sense.
Since many of you are becoming hungry for a Pop Tart™ at this point, I must explain that the home toaster has virtually nothing to do with delicious pastries hot and fresh from your toaster. My experience with the server administrator lexicon comes from perhaps definition #2 from here and, regrettably more specifically, this one.
But I hate qmail, so I’m ignoring that its author coined the term in basically the same respect as I’m using it.
My toaster is a nice little Slackware 11.0 install that invokes more of Pat’s famed Better Judgment than I have ever before been able to use. In that, it picks up more of the Slackware default “equipment” than I have ever found cause to use in the mail server world.
The rundown is as follows:
- Sendmail, the famed senior Great Satan of all mail servers (SMTP), in a bit of an “appliance mode,” if the cursed thing has something that simple. Sendmail accepts messages originating from the local machine (think: web form submits on the local Apache [see way below] or simply me just screwing around with localhost-originated mail). It also picks up mail from fetchmail (also see below) and hands it off to procmail (see below…sorry) for equally stupid and monolithic delivery.
The “appliance mode” idea comes from the concept of a smart host, which means that any mail my machine is stumped as to how to deliver (like, mail with a destination of gmail), is simply passed on to our ISP’s mail server for “smart” processing.
The anti-everything vitriol comes from being a fully converted, Bible-thumping Postfix and maildrop user. But neither of these come with Slackware, and they’re a bit much for the job I’m doing.
- Procmail, the famed senior Great Satan of local delivery agents (LDAs), doing nothing but dropping mail into the home directory in the much-beloved maildir format.
- Dovecot, compiled from source (no native Slackware package), as the much-beloved maildir-compliant IMAP, IMAPs(ecure), POP3, and POP3s server. Dovecot serves up the mail to webmail and Outlook/Thunderbird. My router will only export IMAPs and POP3s, since I want to be speaking SSL outside the LAN.
- Fetchmail, which is a cute little program that connects to POP3 and IMAP servers and downloads mail to the local system, passing it to the local SMTP server (Sendmail) for local delivery. This system allows for the consolidation of a set of personal inboxes into a single inbox, available anywhere via webmail or IMAP/POP3.
- Apache, MySQL, PHP + RoundCube, which has been mentioned on this blog. RoundCube speaks to Dovecot and displays my e-mail with AJAX-y fanciness. It also originates mail through my lovely Sendmail instance.
RoundCube is beautiful. It uses the native PHP IMAP library provided by IlohaMail, which is my non-AJAX pick for PHP webmail.
- Samba, for file sharing that speaks the native MS SMB (Server Message Block) protocol, which we all know and love as File and Printer sharing. The concept is a personal P: drive and a family-wide S: drive.
- Various FTP, SSH, rsync, and other remote-access provisions for hobbying around, making backups, and running the server without a monitor.
I’ve taken too much time and space here, but suffice it to say that this was such a fun project I have been seeking to re-open its file and make it more complicated for fun.