My Platform
Several years ago I started a small business hosting Internet Radio stations. From the proceeds, I have purchased three rack servers which I use to host virtual server instances.
I use VMWare Server for virtualisation. I find this helps me extract as much power from my physical hardware as possible. I have virtualised the following server types, creating them by hand from fresh installations of Scientific Linux:
- Apache HTTP server
- IceCast streaming server
- MySQL database server
- Postfix mail server (With Dovecot for IMAP)
- Squid proxying server
- Subversion version control server
MailBox - A Better Mail Server
While using Postfix with a virtual user, SMTP authentication, Dovecot IMAP configuration, I decided it might be interesting to develop a custom front end for the setup; one customised to my requirements. Calling this project the MailBox project, I designed a web based front end which uses MySQL for access control and storage. I then created a daemon in PHP using pctnl which monitors the database, and on changes, reloads the Postfix and Dovecot configuration files and reloads the respective servers.
The system is secured by username and password, and takes advantage of SMS token authentication. The response time to the creation of a new email address or mailbox is less than one second, and the stability is such that the server runs for more than a year without requiring a restart.
As a fully virtualised server, the machine can be stopped, started, moved or copied with ease.
SoundBox - A Better Streaming Server
In a similar vein to the MailBox project above, I created an administrative front end for the IceCast streaming server, called the SoundBox.
This builds on the existing functionality by having multiple user accounts (User accounts are not a feature of the IceCast server itself) with defineable permissions. The web front end also includes the ability to download and restore from encrypted backup files, and to replicate settings in real time from one SoundBox to another (a feature designed using SOAP web services and a PHP daemon).
The SoundBox can also send a weekly stats email to system administrators, giving listener hour totals for each day of the past week, as well as listener numbers.