Provisions a mail server stack
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Mail stack, zero to hero in under five minutes

Scripts for Sprinkle, the provisioning tool

How to get your sprinkle on:

  • Get a brand spanking new slice / host (Debian or Ubuntu please, other apt-based sytems might work too)
  • Install sudo if you are on Debian
  • Create yourself a user (use adduser), add yourself to the /etc/sudoers file
  • Set your slices url / ip address in deploy.rb (config/deploy.rb.example provided)
  • Set username in config/deploy.rb if it isn't the same as your local machine (config/deploy.rb.example provided)

From your local system (from the mail-stack directory), run:

sprinkle -c -s config/install.rb

Extra options: -t option runs as a test to see if it errors or not, but does no real changes. -v option runs with verbose messages.

After you've waited for everything to run, you should have a provisioned slice. Go forth and install your custom configurations.

My app isn't running!?

No superfluous configuation is included, these scripts focus purely on slice installation.

You will find the 'superfluous configuration' how to at Note this document is for MySQL specifically. If you select postgres the configuration will need additional tailoring.

Wait, what does all this install?

  • Postfix (Apt)
  • Courier IMAP (Apt)
  • MySQL (Apt) or PostgreSQL (Apt)
  • Amavisd-new (Apt)
  • SpamAssassin (Apt)
  • ClamAV (Apt)
  • Postgrey (Apt)
  • SASL (config)
  • TLS (Apt)
  • Shorewall (Apt)


  • Ruby
  • Capistrano
  • Sprinkle (
  • An Ubuntu or Debian based VPS



Don't run this on a system that has already been deemed "in production", its not malicious, but there is a fair chance that you'll ass something up monumentally. You have been warned.